{"version":3,"sources":["../src/lib/api/services/base-service.ts","../src/lib/common/constants/application-id.ts","../src/lib/common/constants/common-keys.ts","../src/lib/common/constants/device-levels.ts","../src/lib/common/constants/encrypted-storage-keys.ts","../src/lib/common/constants/levels.ts","../src/lib/common/enums/file-format.ts","../src/lib/common/enums/info-type.ts","../src/lib/common/enums/witness-types.ts","../src/lib/common/interfaces/attachment.ts","../src/lib/common/interfaces/check-in.ts","../src/lib/common/interfaces/device.ts","../src/lib/common/interfaces/event.ts","../src/lib/common/interfaces/ipfs.ts","../src/lib/common/interfaces/qr.ts","../src/lib/common/interfaces/subject.ts","../src/lib/common/interfaces/wallet.ts","../src/lib/common/utils/auth-utils.ts","../src/lib/common/utils/create-query-params.ts","../src/lib/common/utils/debounce.ts","../src/lib/common/utils/format-date.ts","../src/lib/common/utils/format-number.ts","../src/lib/common/utils/get-error-message.ts","../src/lib/common/utils/make-sample-geolocation.ts","../src/lib/common/utils/make-sample-weather-data.ts","../src/lib/asset/asset-attachment.utils.ts","../src/lib/asset/asset.service.utils.ts","../src/lib/asset/asset.service.ts","../src/lib/asset/asset.service.interfaces.ts","../src/lib/asset/constants.ts","../src/lib/asset/interfaces/chain-type-enum.ts","../src/lib/asset/interfaces/customer-base.ts","../src/lib/asset/interfaces/i-chain.service.ts","../src/lib/asset/interfaces/verify-type-enum.ts","../src/lib/asset/interfaces/ownership-history.ts","../src/lib/asset/asset.utils.ts","../src/lib/asset/chain-asset/chain-asset.service.ts","../src/lib/asset/chain-asset/chain-asset.utils.ts","../src/lib/asset/chain-service/chain-service.service.ts","../src/lib/asset/chain.utils.ts","../src/lib/asset/enums.ts","../src/lib/asset/s2c-asset.service.ts","../src/lib/biometrics/biometrics.service.ts","../src/lib/biometrics/enums.ts","../src/lib/check-in/check-in-service.ts","../src/lib/check-in/interfaces.ts","../src/lib/check-in/utils.ts","../src/lib/common-admin/common-admin.service.ts","../src/lib/common-admin/common-admin.service.interfaces.ts","../src/lib/core-events/enums.ts","../src/lib/core-events/event.service.ts","../src/lib/device/device.service.ts","../src/lib/inventory/inventory.service.ts","../src/lib/marketplace/enums.ts","../src/lib/marketplace/interfaces/bid.ts","../src/lib/marketplace/services/bid.service.ts","../src/lib/marketplace/services/categories.service.ts","../src/lib/marketplace/services/listing.service.ts","../src/lib/marketplace/services/order.service.ts","../src/lib/marketplace/services/order.service.interfaces.ts","../src/lib/marketplace/services/types.service.ts","../src/lib/marketplace/services/wishlist.service.ts","../src/lib/menu/menu.service.ts","../src/lib/notifications/interfaces.ts","../src/lib/notifications/notification.service.ts","../src/lib/organization/organization.service.ts","../src/lib/organization-location/organization-location.service.ts","../src/lib/reports/enums.ts","../src/lib/reports/reports.service.ts","../src/lib/users/enums.ts","../src/lib/users/interfaces/being-id.ts","../src/lib/users/interfaces/document.ts","../src/lib/users/interfaces/profile.ts","../src/lib/users/services/address.service.ts","../src/lib/users/services/payment-details.service.ts","../src/lib/users/services/profile.service.ts","../src/lib/users/services/shipping-address.service.ts","../src/lib/users/services/buyer-profile.service.ts","../src/lib/users/services/creator-profile.service.ts","../src/lib/users/services/document-types.service.ts","../src/lib/users/services/documents.service.ts","../src/lib/users/services/feedback.service.ts","../src/lib/users/services/feedback.service.interfaces.ts","../src/lib/users/services/role.service.ts","../src/lib/users/services/seller-profile.service.ts","../src/lib/users/services/user.service.ts","../src/lib/users/services/user.service.interfaces.ts","../src/lib/web3/web3-service.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\n\nexport type BaseServiceOptions = {\n  // If this is not passed then the service will create\n  // its own axios instance.\n  axiosInstance?: AxiosInstance;\n  apiUrl: string;\n};\n\nexport class BaseService {\n  private axiosInstance: AxiosInstance;\n  protected apiUrl!: string;\n  protected coreApiServicePrefix: string;\n  protected coreApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    this.axiosInstance =\n      opts.axiosInstance ??\n      axios.create({\n        timeout: 15000,\n        validateStatus: (status) => status >= 200 && status < 300,\n      });\n    this.apiUrl = opts.apiUrl;\n    this.coreApiServicePrefix = 'core-events';\n    this.coreApiUrl = `${this.apiUrl}/${this.coreApiServicePrefix}`;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  protected async beforeQuery(params?: object) {}\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  protected async beforeMutation(data: object) {}\n\n  // API Generic functions\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  public async get<TRes, TParams extends object = NonNullable<unknown>>(\n    url: string,\n    params?: TParams,\n    options?: AxiosRequestConfig<TParams>\n  ) {\n    this.beforeQuery(params);\n    return this.axiosInstance.get(url, { params, ...options }).then((res) => res.data as TRes);\n  }\n\n  public async post<TRes, TVars extends object>(url: string, data: TVars, config?: AxiosRequestConfig<TVars>) {\n    this.beforeMutation(data);\n    return this.axiosInstance.post(url, data, config).then((res) => res.data as TRes);\n  }\n\n  public async put<TRes, TVars extends object>(url: string, data: TVars, config?: AxiosRequestConfig<TVars>) {\n    this.beforeMutation(data);\n    return this.axiosInstance.put(url, data, config).then((res) => res.data as TRes);\n  }\n\n  public async patch<TRes, TVars extends object>(url: string, data: TVars) {\n    this.beforeMutation(data);\n    return this.axiosInstance.patch(url, data).then((res) => res.data as TRes);\n  }\n\n  public async delete<TRes, TParams extends object = NonNullable<unknown>>(\n    url: string,\n    params?: TParams,\n    config?: AxiosRequestConfig\n  ) {\n    this.beforeQuery(params);\n    return this.axiosInstance.delete(url, { params, ...config }).then((res) => res.data as TRes);\n  }\n}\n","interface AppIds {\n  [key: string]: string;\n}\n\nexport const APP_ID: AppIds = {\n  CHAINIT: 'chainit',\n  SPORTAFI: 'sportafi',\n  ARTLOCK: 'art_lock',\n  PAIRED: 'paired',\n  SITESUPER: 'site_super',\n  S2C: 's2c',\n  GREENLIGHT_DATA: 'gld',\n  ANYTIME_CASH: 'anytime_cash',\n};\n\nexport const DEFAULT_APP_ID = APP_ID.CHAINIT;\n","export const DEFAULT_ORG_ID = '00000000-0000-0000-0000-000000000000';\n","export const DEVICE_LEVELS = [\n  { level: 1, label: 'Stationary Kiosk on BIT Trusted Network', color: '#6BAF23', bgColor: '#d3e9bb' },\n  { level: 2, label: 'Floating Kiosk on BIT Trusted Network', color: '#0C682A', bgColor: '#8BE7A9' },\n  { level: 3, label: 'Verifed Personal Devices on Public Network', color: '#02381B', bgColor: '#81B79A' },\n  { level: 4, label: 'Unverifed Personal Devices on Public Network', color: '#191617', bgColor: '#989596' },\n];\n","export const ENCRYPTED_STORAGE_KEYS = {\n  accessToken: 'accessToken',\n  bitToken: 'bitToken',\n  refreshToken: 'refreshToken',\n  chainItNftWalletAddress: 'CHAINIT_NFT_WALLET_ADDRESS',\n  codeVerifier: 'codeVerifier',\n  state: 'state',\n  sessionToken: 'sessionToken',\n  expiresIn: 'expiresIn',\n  idToken: 'idToken',\n  hasProfile: 'hasProfile',\n  introPassed: 'introPassed',\n  deviceId: 'deviceId',\n  mintPlatform: 'mintPlatform',\n  isLoggingDisabled: 'isLoggingDisabled',\n  incodeUserId: 'incodeUserId',\n  organizationId: 'organizationId',\n  themeMode: 'themeMode',\n  shippingDetails: 'shippingDetails',\n  authStep: 'authStep',\n  authEmails: 'authEmails',\n  incodeInterviewId: 'incodeInterviewId',\n  incodeToken: 'incodeToken',\n  selfCustodyWalletAddress: 'selfCustodyWalletAddress',\n  selfCustodyWalletMnemonic: 'selfCustodyWalletMnemonic',\n  selfCustodyWalletPrivateKey: 'selfCustodyWalletPrivateKey',\n};\n","export const BEING_ID_LEVELS = [\n  { level: 1, label: 'Government Witness', description: 'Government-Issued ID Created' },\n  { level: 2, label: 'Government Real ID', description: 'Government Validation Added' },\n  { level: 3, label: 'Secondary Government ID', description: 'Multiple IDs Added' },\n  { level: 4, label: 'Witness Confirmation', description: 'VDT Created at Kiosk' },\n  { level: 5, label: 'Multiple Events', description: 'Higher Level Witnesses Added' },\n  { level: 6, label: 'Human', description: 'Account Created, Biometric Template Recorded' },\n];\n\nexport const HARDWARE_LEVELS = [\n  { level: 1, label: 'Stationary Kiosk on BIT Trusted Network', color: '#6BAF23', bgColor: '#d3e9bb' },\n  { level: 2, label: 'Floating Kiosk on BIT Trusted Network', color: '#0C682A', bgColor: '#8BE7A9' },\n  { level: 3, label: 'Verifed Personal Devices on Public Network', color: '#02381B', bgColor: '#81B79A' },\n  { level: 4, label: 'Unverifed Personal Devices on Public Network', color: '#191617', bgColor: '#989596' },\n];\n","export enum FileFormatEnum {\n  CSV = 'CSV',\n  PDF = 'PDF'\n}","export enum InfoTypeEnum {\n  Who = 'Who',\n  What = 'What',\n  When = 'When',\n  Where = 'Where',\n}\n","export enum WitnessTypeEnum {\r\n  Witness = 'witness',\r\n  Buyer = 'buyer',\r\n  Seller = 'seller',\r\n}\r\n","// Old version of AttachmentData interface\n// which is still used by check-in APIs\nexport interface OldAttachmentData {\n  id: string;\n  mimeType: string;\n  docType: AttachmentDocType;\n  classification: AttachmentClassification;\n  name: string;\n  description: string;\n}\n\nexport interface AttachmentData {\n  docId: string;\n  mimeType: string;\n  docType: AttachmentDocType;\n  classification: AttachmentClassification;\n  name: string;\n  description: string;\n  url: string;\n  thumbUrl: string;\n  isMain?: boolean;\n}\n\nexport type AttachmentDocType = 'PHOTO' | 'PDF';\n\nexport enum AttachmentType {\n  TokenDocument = 'TOKEN_DOCUMENT',\n  TokenPhoto = 'TOKEN_PHOTO',\n  VerificationPhoto = 'VERIFICATION_PHOTO',\n  WitnessPhoto = 'WITNESS_PHOTO',\n}\n\nexport enum AttachmentClassification {\n  Face = 'FACE',\n  GovtId = 'GOVTID',\n  FaceAndGovtId = 'FACEANDGOVTID',\n  QrCode = 'QRCODE',\n  AssetPhoto = 'ASSET_PHOTO',\n  AssetVerificationPhoto = 'ASSET_VERIFICATION_PHOTO',\n  AssetWitnessPhoto = 'ASSET_WITNESS_PHOTO',\n  ServicePhoto = 'SERVICE_PHOTO',\n  ServiceVerificationPhoto = 'SERVICE_VERIFICATION_PHOTO',\n  ServiceWitnessPhoto = 'SERVICE_WITNESS_PHOTO',\n  Other = 'OTHER',\n  AssetDocument = 'ASSET_DOCUMENT',\n  ServiceDocument = 'SERVICE_DOCUMENT',\n}\n\nexport interface CreateAttachmentInputData {\n  mimeType: string;\n  docType: AttachmentDocType;\n  classification: AttachmentClassification;\n  name: string;\n  description: string;\n  data?: string;\n  isMain?: boolean;\n}\n\nexport interface CreateQrAttachmentInputData {\n  docType: AttachmentDocType;\n  classification: AttachmentClassification;\n  data: string;\n  name?: string;\n  description?: string;\n}\n\nexport interface UpdateAttachmentInputData {\n  mimeType?: string;\n  docType?: AttachmentDocType;\n  classification: AttachmentClassification;\n  name?: string;\n  description?: string;\n  docId: string;\n  data?: string;\n  isMain?: boolean;\n}\n\nexport interface UploadedAttachmentData {\n  mimeType: string;\n  docType: AttachmentDocType;\n  classification: AttachmentClassification;\n  docId: string;\n  name: string;\n  description: string;\n  url?: string;\n  isMain: boolean;\n}\n\nexport enum EAttachmentUploadStatus {\n  New = 'NEW',\n  Uploaded = 'UPLOADED',\n  Error = 'ERROR',\n}\n","export enum RelationTypeEnum {\n  Official = 'CHECKIN_OFFICIAL',\n  Witness = 'CHECKIN_WITNESS',\n  Inspector = 'CHECKIN_INSPECTOR',\n  Archive = 'CHECKIN_ARCHIVE',\n  Buyer = 'CHECKIN_BUYER',\n  Seller = 'CHECKIN_SELLER',\n  ChildVdt = 'CHILD_VDT',\n  ParentVdt = 'PARENT_VDT',\n}\n","import { GeolocationData } from './geolocation';\n\nexport enum DeviceTypeIdEnum {\n  STATIONARY_KIOSK = 1,\n  MOBILE_KIOSK = 2,\n  TABLET_KIOSK = 3,\n  PHONE = 4,\n  TABLET = 5,\n}\n\nexport enum DeviceTypeEnum {\n  STATIONARY_KIOSK = 'STATIONARY_KIOSK',\n  MOBILE_KIOSK = 'MOBILE_KIOSK',\n  TABLET_KIOSK = 'TABLET_KIOSK',\n  PHONE = 'PHONE',\n  TABLET = 'TABLET',\n}\n\nexport type DeviceData = {\n  deviceId: string;\n  deviceName: string;\n  deviceType: DeviceTypeEnum;\n  geolocation: GeolocationData;\n  ipAddress?: string;\n  date: string;\n  hardwareLevel?: number;\n};\n","export interface EventData {\n  eventType: string;\n  eventId: string;\n}\n\nexport enum StepEnum {\n  DATA = 'DATA',\n  PHOTO = 'PHOTO',\n  CONFIRM = 'CONFIRM',\n  OFFICIAL = 'OFFICIAL',\n  QRCODE = 'QRCODE',\n  RFID = 'RFID',\n  PRIVACY = 'PRIVACY',\n  WITNESS = 'WITNESS',\n  DOCUMENT = 'DOCUMENT',\n  REFERENCE_VDTS = 'REFERENCE_VDTS',\n  VDT_MINTED = 'VDT_MINTED',\n}\n\nexport type EventRelationType = 'CHECKIN_OFFICIAL' | 'CHECKIN_WITNESS';\n","import { DeviceRefVdt, UserRefVdt } from './reference-vdt';\n\nexport enum TraitTypeEnum {\n  Type = 'Type',\n  TypeWitness = 'Type-Witness',\n  Who = 'Who',\n  WhoBiometrics = 'Who-Biometrics',\n  What = 'What',\n  When = 'When',\n  Where = 'Where',\n  WhereDevice = 'Where-Device',\n}\n\nexport interface VdtAttribute {\n  trait_type: TraitTypeEnum;\n  value: string;\n}\n\nexport interface IpfsMetadata {\n  ipfs: string;\n  name: string;\n  image: string;\n  qrCode: { image: string; url: string };\n  eventId: string;\n  refVdts: {\n    userVdt: UserRefVdt;\n    deviceVdt: DeviceRefVdt;\n  };\n  vdtType: string;\n  bitSysId: string;\n  attributes: VdtAttribute[];\n  description: string;\n  beingIdLevel: {\n    current: {\n      activeAt: Date;\n      endedAt?: Date;\n      level: string;\n    };\n    history: {\n      activeAt: Date;\n      endedAt?: Date;\n      level: string;\n    }[];\n  };\n}\n","export enum QrPackageTypeEnum {\n  OBJECTS = 'OBJECTS',\n  SERVICES = 'SERVICES',\n  USERS = 'USERS',\n  USER_DEVICES = 'USER_DEVICES',\n  USER_OBJECTS = 'USER_OBJECTS',\n  USER_SERVICES = 'USER_SERVICES',\n  ORGANIZATIONS = 'ORGANIZATIONS',\n  DEVICES = 'DEVICES',\n  ORG_USERS = 'ORG_USERS',\n  ORG_DEVICES = 'ORG_DEVICES',\n  ORG_OBJECTS = 'ORG_OBJECTS',\n  ORG_SERVICES = 'ORG_SERVICES',\n  WITNESS = 'WITNESS',\n  OBJECT_WITNESSES = 'OBJECT_WITNESSES',\n  SERVICE_WITNESSES = 'SERVICE_WITNESSES',\n}\n","export enum ReferenceType {\n  PHONE = 'PHONE',\n  DRIVERS_LICENSE = 'DRIVERS_LICENSE',\n  EMPLOYEE_ID = 'EMPLOYEE_ID',\n  AUTH0_IDENTITY = 'AUTH0_IDENTITY',\n  END_USER_ID = 'END_USER_ID',\n  ADMIN_USER_ID = 'ADMIN_USER_ID',\n}\n\nexport interface SubjectDataReferenceItem {\n  type: ReferenceType;\n  value: string;\n}\n\nexport interface SubjectData {\n  subjectType: string;\n  references: SubjectDataReferenceItem[];\n  orgId?: string;\n}\n\nexport enum SubjectTypeEnum {\n  EMPLOYEE = 'EMPLOYEE',\n  DRIVER = 'DRIVER',\n  USER = 'USER',\n  ASSET_OWNER = 'ASSET_OWNER',\n}\n","export enum WalletPlatformEnum {\n  Ethereum = \"ethereum\",\n  Polygon = \"polygon\",\n}\n","import { AuthClaims } from '../interfaces/auth-claims';\nimport jwtDecode from 'jwt-decode';\n\nexport async function getAuth0Id(claims: AuthClaims, opts?: { keepPrefix: boolean }) {\n  if (opts?.keepPrefix) return claims.sub;\n  return claims.sub.replace('auth0|', '');\n}\n\nexport async function getAuthEmail(claims: AuthClaims) {\n  return claims['https://blackinktech.io/schemas/claims/email'];\n}\n\nexport function isTokenExpired(token: string) {\n  try {\n    // If token is undefined / invalid, this throws\n    // \"InvalidTokenError: Invalid token specified\"\n    const claims = jwtDecode<AuthClaims>(token);\n    return Date.now() / 1000 > claims.exp;\n  } catch (err) {\n    return false;\n  }\n}\n","import { SerializableValue } from '../interfaces';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const createQueryParams = (params?: Record<any, SerializableValue>) => {\n  if (!params) return '';\n  return Object.keys(params)\n    .filter((k) => typeof params[k] !== 'undefined')\n    .map((k) => {\n      // This assertion is fine because we have the undefined check above\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      const value = params[k]!;\n      if (Array.isArray(value)) {\n        if (value.length === 0) return '';\n        return encodeURIComponent(k) + '=' + encodeURIComponent(value.join(','));\n      }\n      else if (typeof value === 'object') {\n        return encodeURIComponent(k) + '=' + JSON.stringify(value);\n      }\n      return encodeURIComponent(k) + '=' + encodeURIComponent(value);\n    })\n    .join('&');\n};\n","// Source: https://decipher.dev/30-seconds-of-typescript/docs/debounce/\nexport const debounce = <TFunction extends (...args: any[]) => any>(fn: TFunction, ms = 300) => {\n  let timeoutId: ReturnType<typeof setTimeout>;\n  return function (this: any, ...args: any[]) {\n    clearTimeout(timeoutId);\n    // @ts-ignore\n    timeoutId = setTimeout(() => fn.apply(this, args), ms);\n  };\n};","export function formatDate(date: string) {\n  return new Date(date).toLocaleDateString('en-US', {\n    day: '2-digit',\n    month: '2-digit',\n    year: 'numeric',\n    hour: 'numeric',\n    minute: '2-digit',\n  });\n}","export function formatNumber(n: string) {\n  const sanitizedValue = n.replace(/[^0-9.]/g, '').replace(/^0+(?=\\d)/, '');\n  const parts = sanitizedValue.toString().split('.');\n  parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n  return parts.join('.');\n}","import axios from 'axios';\nimport { ApiServiceError } from '../../api/interfaces/api-service-error';\n\n/**\n * This is a no-man's land function that tries\n * to handle every possible error scenario from ChainIT frontend & backend.\n * Handles simple error messages, axios errors, and now FATAL server error objects\n */\nexport function getErrorMessage(err: unknown) {\n  if (!err) return '';\n\n  // First, check if the error is an Axios error\n  if (axios.isAxiosError(err) || (err as any)?.response) {\n    const axiosError = err as ApiServiceError;\n    // If response.data.message is not available then check for message\n    const message = axiosError.response?.data?.message;\n\n    // Backend returns an error message\n    if (typeof message === 'string') {\n      return message;\n    }\n    // Backend returns a really bad internal server error object\n    // (e.g. { query: \"UPDATE ...\", parameters: [...], driverError: {...} })\n    else if (typeof message === 'object') {\n      // Usually, backend returns message as string array with the errors... usually.\n      if (Array.isArray(message) && (message as any[]).every(m => typeof m === 'string')) {\n        return (message as string[]).join(', ');\n      }\n      let fatalErrorMessage = JSON.stringify(message);\n      // If the message comes as an object,\n      // there is usually error details in a neighboring \"error\" property.\n      const details = (axiosError.response?.data as any)?.error;\n      // Prepend to fatal error object\n      if (details) fatalErrorMessage = details + fatalErrorMessage;\n      // Returns the error details + fatal error object\n      return fatalErrorMessage;\n    }\n    // If none of the above work try accessing first-level message\n    else if (axiosError.message) {\n      return axiosError.message;\n    }\n\n    // This error isn't an axios error,\n    // start checking for other properties below.\n  }\n\n  // Second, check if the error is an RTK error\n  if (err && typeof err === 'object' && 'status' in err && 'data' in err) {\n    if (Object.prototype.hasOwnProperty.call(err.data, 'message')) {\n      return (err.data as { message: string }).message;\n    }\n  }\n\n  // Next, check if the error is of type Error\n  if (err instanceof Error) {\n    const error = err as Error;\n    return error.message;\n  }\n\n  // Next, check if the error has a property called message\n  // (it can have message but not be of type Error (e.g. Geolocation error))\n  if (Object.prototype.hasOwnProperty.call(err, 'message')) {\n    return (err as { message: string }).message;\n  }\n\n  // Next, check if the error is just a string\n  if (typeof err === 'string') {\n    return err;\n  }\n\n  // Last resort, return a hardcoded unknown error message\n  return 'Unknown error';\n}\n","export function makeSampleGeolocation() {\n  return { latitude: 0, longitude: 0, meanSeaLevel: 0 };\n}\n","export function makeSampleWeatherData() {\n  return {\n    AbsHumidity: 0,\n    AirDensity: 0,\n    AvgCorrectedWindDir: 0,\n    AvgCorrectedWindSpeed: 0,\n    AvgRelativeWindDir: 0,\n    AvgRelativeWindSpeed: 0,\n    CompassHeading: 0,\n    CorrectedGustDirection: 0,\n    CorrectedGustSpeed: 0,\n    CorrectedWindDir: 0,\n    CorrectedWindSpeed: 0.92,\n    Dewpoint: 75.2,\n    GPSHeading: '',\n    GPSLocation: '+32.843528:-080.015936:+0017.50',\n    GPSSpeedOverGround: '',\n    GPSStatusError: false,\n    HeatIndex: 0,\n    PositionOfTheSun: 0,\n    PrecipIntensity: '',\n    RainPresent: false,\n    Pressure: 1019.7,\n    PressureAtSeaLevel: 0,\n    PressureAtStation: 0,\n    RelGustDir: 0,\n    RelGustSpeed: 0,\n    RelHumidity: 84,\n    RelWindDir: 241,\n    RelWindSpeed: 0.92,\n    SensorStatusError: false,\n    SolarNoonTime: '',\n    SolarRadiation: '0001',\n    SunriseTime: '',\n    SunsetTime: '',\n    SunshineHours: 0,\n    Temperature: 80.4,\n    TotalPrecip: '00000.000',\n    TwilightAstronomical: '',\n    TwilightCivil: '',\n    TwilightNautical: '',\n    WetBulbTemperature: 0,\n    WindChill: 0,\n    WindSensorError: false,\n    XTilt: 0,\n    YTilt: 0,\n    ZOrientation: '',\n  };\n}\n","import { BaseService } from '../api/services/base-service';\nimport { UpdateAttachmentResponse, UploadedAttachmentData, createQueryParams } from '../common';\nimport { CreateAttachmentRequest, CreateAttachmentsPayload, UpdateAttachmentRequest } from './interfaces';\n\nexport interface GetAttachmentLinkOpts {\n  apiUrl: string;\n  id: string;\n  bitToken: string;\n  accessToken: string;\n  thumb?: boolean;\n}\n\nexport function getAttachmentLink(opts: GetAttachmentLinkOpts) {\n  const params = {\n    thumb: opts.thumb ? 'true' : undefined,\n    bit_token: opts.bitToken,\n    access_token: opts.accessToken,\n  };\n  return `${opts.apiUrl}/core-events/v1/chain-assets/attachments/${opts.id}/view?${createQueryParams(params)}`;\n}\n\ninterface CreateAndUploadAttachmentsOpts {\n  service: BaseService;\n  chainApiUrl: string;\n  req: CreateAttachmentsPayload;\n}\n\nexport async function createAndUploadAttachments(\n  opts: CreateAndUploadAttachmentsOpts\n): Promise<UploadedAttachmentData[]> {\n  const { service, chainApiUrl, req } = opts;\n  const { eventId, req: input, onUpload } = req;\n  // 1. Prepare array of attachments to initialize\n  const docs = input.docs\n    // Exclude attachments that are already initialized\n    // .filter((d) => !event.attachments.some((a) => a.classification === d.classification))\n    // Exclude image data first, as we're just initializing the attachments\n    .map((d) => ({ ...d, data: undefined }));\n\n  // Initialize attachments\n  const initializeInput = { ...input, docs };\n  const initializedAttachments = await service.post<UploadedAttachmentData[], CreateAttachmentRequest>(\n    `${chainApiUrl}/${eventId}/attachments`,\n    initializeInput\n  );\n\n  // 2. Update Attachments (upload / pass image data to the initialized attachments)\n  const updatedDocs: UploadedAttachmentData[] = [];\n  let i = 0;\n  for (const d of input.docs) {\n    onUpload?.(i + 1, input.docs.length);\n    const req: UpdateAttachmentRequest = {\n      application: input.application,\n      docs: [\n        {\n          mimeType: d.mimeType,\n          docType: d.docType,\n          classification: d.classification,\n          docId: initializedAttachments[i].docId,\n          name: d.name,\n          description: d.description,\n          data: d.data ?? '',\n          isMain: d.isMain,\n        },\n      ],\n    };\n    await service.put<UpdateAttachmentResponse, UpdateAttachmentRequest>(`${chainApiUrl}/${eventId}/attachments`, req, {\n      onUploadProgress: (e) => console.log('Upload attachment progress:', e),\n    });\n    i++;\n    // TODO: Please fix typing, just a quick fix for build error\n    updatedDocs.push(req.docs[0] as UploadedAttachmentData);\n  }\n  return updatedDocs;\n}\n","import { GetAssetsRequest } from './asset.service.interfaces';\n\nexport function makeGetAssetsParams(req?: Partial<GetAssetsRequest>): GetAssetsRequest {\n  return {\n    ...req,\n    $orderBy: req?.$orderBy ?? 'createdAt',\n    $order: req?.$order ?? 'desc',\n    $page: req?.$page ?? 1,\n    $perPage: req?.$perPage ?? 10,\n  };\n}\n","import { AxiosRequestHeaders } from 'axios';\nimport { BaseService, BaseServiceOptions } from '../api/services/base-service';\nimport { FileFormatEnum, FilteredRequest, PagedRequest, PagedResponse, createQueryParams } from '../common';\nimport {\n  AddReferenceVdtRequest,\n  AddReferenceVdtResponse,\n  CategoriesRequest,\n  CollectionReport,\n  CreateListingRequest,\n  CreateListingResponse,\n  GetActiveAssetTemplateRequest,\n  GetAssetGroupsResponse,\n  GetAssetWitnessesRequest,\n  GetAssetsRequest,\n  GetPublicWitnessesRequest,\n  SearchAssetTypesRequest,\n  ShareAssetRequest,\n} from './asset.service.interfaces';\nimport { makeGetAssetsParams } from './asset.service.utils';\nimport {\n  AssetCategory,\n  AssetTemplate,\n  AssetType,\n  AssetTypeStep,\n  AssetWitness,\n  ChainBaseEvent,\n  CustomerAsset,\n  FavoriteAsset,\n  OwnershipHistoryResponse,\n} from './interfaces';\n\ninterface AssetServiceOptions {\n  route: 'asset' | 'service';\n}\n\nexport class AssetService extends BaseService {\n  assetApiUrl: string;\n\n  constructor(opts: BaseServiceOptions & AssetServiceOptions) {\n    super(opts);\n    this.assetApiUrl = `${this.apiUrl}/assets/v1/${opts?.route}`;\n  }\n\n  list(req: GetAssetsRequest = {}) {\n    return this.get<PagedResponse<CustomerAsset>>(this.assetApiUrl, makeGetAssetsParams(req));\n  }\n\n  listPublic(req: GetAssetsRequest = {}) {\n    return this.get<PagedResponse<CustomerAsset>>(`${this.assetApiUrl}/tokens-public`, makeGetAssetsParams(req));\n  }\n\n  favorites(req: GetAssetsRequest = {}) {\n    return this.get<PagedResponse<FavoriteAsset>>(`${this.assetApiUrl}/list-favorite`, makeGetAssetsParams(req));\n  }\n\n  listGroup() {\n    return this.get<GetAssetGroupsResponse>(`${this.assetApiUrl}/group`);\n  }\n\n  listCategories(req: FilteredRequest<CategoriesRequest> = {}) {\n    return this.get<AssetCategory[]>(`${this.apiUrl}/assets/v1/asset-category/list`, req);\n  }\n\n  searchCategories(req: PagedRequest<CategoriesRequest> = {}) {\n    return this.get<PagedResponse<AssetCategory>>(`${this.apiUrl}/assets/v1/asset-category`, req);\n  }\n\n  getCategoryByName(name?: string) {\n    return this.get<AssetCategory>(`${this.apiUrl}/assets/v1/asset-category?name=${name}`);\n  }\n\n  getCategoryById(categoryId?: string, headers?: AxiosRequestHeaders) {\n    return this.get<AssetCategory>(`${this.apiUrl}/assets/v1/asset-category/${categoryId}`, undefined, { headers });\n  }\n\n  searchAssetTypes(req: PagedRequest<SearchAssetTypesRequest> = {}) {\n    return this.get<PagedResponse<AssetType>>(`${this.apiUrl}/assets/v1/asset-type`, req);\n  }\n\n  listAssetTypes(req: PagedRequest<SearchAssetTypesRequest> = {}) {\n    return this.get<AssetType[]>(`${this.apiUrl}/assets/v1/asset-type/list`, req);\n  }\n\n  getActiveAssetTemplate(req?: GetActiveAssetTemplateRequest, headers?: AxiosRequestHeaders) {\n    return this.get<AssetTemplate>(`${this.apiUrl}/assets/v1/asset-template/activated`, req, { headers });\n  }\n\n  getAssetType(assetTypeId: string, headers?: AxiosRequestHeaders) {\n    return this.get<AssetType>(`${this.apiUrl}/assets/v1/asset-type/${assetTypeId}`, undefined, { headers });\n  }\n\n  getAssetTypeSteps(assetTypeId: string) {\n    return this.get<AssetTypeStep>(`${this.apiUrl}/assets/v1/asset-type/${assetTypeId}/steps`);\n  }\n\n  share(eventId: string, data: ShareAssetRequest): Promise<any> {\n    return this.post<any, any>(`${this.assetApiUrl}/${eventId}/share`, data);\n  }\n\n  witnesses(req: GetAssetWitnessesRequest = {}) {\n    return this.get<PagedResponse<AssetWitness>>(`${this.assetApiUrl}/witnesses`, req);\n  }\n\n  witnessesPublic(req: GetPublicWitnessesRequest = {}) {\n    return this.get<PagedResponse<AssetWitness>>(`${this.assetApiUrl}/witnesses-public`, req);\n  }\n\n  addReferenceVdt(req: AddReferenceVdtRequest) {\n    return this.post<AddReferenceVdtResponse, AddReferenceVdtRequest>(`${this.assetApiUrl}/reference-vdt`, req);\n  }\n\n  createListing(props: CreateListingRequest) {\n    return this.post<CreateListingResponse, CreateListingRequest>(`${this.assetApiUrl}/listing`, props);\n  }\n\n  getAssetChainDetails(eventId: string) {\n    return this.get<ChainBaseEvent>(`${this.apiUrl}/core-events/v1/chain-assets/${eventId}`);\n  }\n\n  getOwnershipHistory(req: GetAssetsRequest = {}) {\n    const query = createQueryParams({ assetName: req.name, ...req });\n    return this.get<PagedResponse<OwnershipHistoryResponse>>(`${this.assetApiUrl}/ownership-history?${query}`);\n  }\n\n  getAssociatedAssets(req: GetAssetsRequest = {}) {\n    return this.get<PagedResponse<CustomerAsset>>(`${this.apiUrl}/assets/v1/asset/tokens-public`, req);\n  }\n\n  vdtReport(fileFormat: FileFormatEnum) {\n    return this.get<CollectionReport>(`${this.apiUrl}/assets/v1/asset/collection-report`, { fileFormat });\n  }\n}\n","import { FileFormatEnum, PagedRequest, RelationTypeEnum, StepEnum } from '../common';\nimport { BaseAddress } from '../users';\nimport { CategoryStatusEnum } from './constants';\nimport { SellingMethodEnum } from './enums';\nimport { AssetStatus, ChainTypeEnum, CustomerAsset } from './interfaces';\n\nexport type GetAssetsRequest = PagedRequest<{\n  ownerId?: string;\n  typeId?: string;\n  orgId?: string;\n  appName?: string[] | string;\n  name?: string;\n  status?: AssetStatus;\n  eventIdRef?: string;\n  isMinted?: boolean;\n  isListed?: boolean;\n  isVerifiedByWitness?: boolean;\n  isVerifiedByOfficial?: boolean;\n  sellingMethod?: SellingMethodEnum;\n  isFavorite?: boolean;\n}>;\n\nexport type GetPublicAssetsRequest = PagedRequest<{\n  ownerId?: string;\n  typeId?: string;\n  orgId?: string;\n  appName?: string;\n  name?: string;\n  status?: AssetStatus;\n  eventIdRef?: string;\n  isMinted?: boolean;\n  isVerifiedByWitness?: boolean;\n  isVerifiedByOfficial?: boolean;\n  sellingMethod?: SellingMethodEnum;\n}>;\n\nexport interface GetAssetsRes {\n  assets: CustomerAsset[];\n  page: number;\n  totalPages: number;\n}\nexport type GetAssetGroupsRes = {\n  [assetGroupName: string]: CustomerAsset[];\n}[];\n\nexport interface ShareAssetReq {\n  to: {\n    email: string;\n    name: string;\n  }[];\n}\n\nexport const chainServiceStatuses = ['INFO', 'PHOTO', 'OFFICIALS', 'QRCODE', 'RFID', 'WITNESS', 'MINTED'] as const;\n\nexport type GetAssetGroupsResponse = {\n  [assetGroupName: string]: CustomerAsset[];\n}[];\n\nexport interface ShareAssetRequest {\n  to: { email: string; name: string }[];\n}\n\nexport interface CategoriesRequest {\n  parentId?: string;\n  parentIds?: string[];\n  appName?: string;\n  name?: string;\n  isActive?: boolean;\n  state?: CategoryStatusEnum;\n  vdtType?: ChainTypeEnum;\n}\n\nexport interface SearchAssetTypesRequest {\n  categoryId?: string;\n  name?: string;\n  isActive?: boolean;\n  state?: CategoryStatusEnum;\n  vdtType?: ChainTypeEnum;\n}\n\nexport type GetActiveAssetTemplateRequest = {\n  typeId: string;\n  step: StepEnum;\n};\n\nexport type GetAssetWitnessesRequest = PagedRequest<{\n  userId?: string;\n  assetId?: string;\n}>;\n\nexport type GetPublicWitnessesRequest = PagedRequest<{\n  eventId?: string;\n  relationType?: RelationTypeEnum;\n}>;\n\nexport interface AddReferenceVdtRequest {\n  serviceId?: string;\n  assetId: string;\n  qrCodeRefId: string;\n  vdtType: ChainTypeEnum;\n  bitSysId: string;\n  relationType: RelationTypeEnum;\n  data?: { title: string };\n}\n\nexport interface AddReferenceVdtResponse {\n  assetId: string;\n  qrCodeRefId: string;\n  vdtType: ChainTypeEnum;\n  bitSysId: string;\n  relationType: RelationTypeEnum;\n  createdAt: string;\n  data: { title: string };\n}\n\nexport interface CreateListingRequest {\n  id: string;\n  sellingMethod: SellingMethodEnum;\n  price: number;\n  startAt?: string;\n  endAt?: string;\n  description: string;\n  isFreeShipping: boolean;\n  shippingDetail?: {\n    shipFrom: BaseAddress & {\n      phone: string;\n    };\n    weight: number;\n    length: number;\n    width: number;\n    height: number;\n    handlingFee: number;\n    unitOfMeasurement: string;\n    packagingType: string;\n  };\n  revenue: number;\n}\n\nexport interface CreateListingResponse {\n  id: string;\n  assetId: string;\n  sellerId: string;\n  sellerWallet: string;\n  listingType: string;\n  plstform: string;\n  chainName: string;\n  tokenId: string;\n  tokenContract: string;\n  startDate: string;\n  endDate: string;\n}\n\nexport interface ListFinalWithTypes {\n  appName: string;\n  $resolveImages?: boolean;\n}\n\nexport interface CollectionReport {\n  fileFormat: FileFormatEnum;\n  url: string;\n  fileName: string;\n}\n","import { StepEnum } from '../common/interfaces/event';\n\nexport const ASSET_STEPS = [\n  StepEnum.DATA,\n  StepEnum.PHOTO,\n  StepEnum.OFFICIAL,\n  StepEnum.QRCODE,\n  StepEnum.RFID,\n  StepEnum.PRIVACY,\n  StepEnum.WITNESS,\n] as const;\n\n// Probably remove this\nexport const assetStatuses = ['INFO', 'PHOTO', 'OFFICIALS', 'QRCODE', 'RFID', 'WITNESS', 'MINTED'] as const;\n\n// RFID is intentionally placed here because we currently do not support that step.\nexport const SKIPPABLE_ASSET_STEPS = [StepEnum.RFID, StepEnum.OFFICIAL, StepEnum.WITNESS, StepEnum.CONFIRM];\nexport const ASSET_STATUSES = [\n  'CREATED',\n  'PHOTO_ADDED_STARTED',\n  'PHOTO_ADDED_FAILED',\n  'PHOTO_ADDED',\n  'OFFICIAL_VERIFYING_STARTED',\n  'OFFICIAL_VERIFYING_FAILED',\n  'OFFICIAL_VERIFIED',\n  'QR_BINDING_STARTED',\n  'QR_BINDING_FAILED',\n  'QR_BOUND',\n  'RFID_BINDING_STARTED',\n  'RFID_BINDING_FAILED',\n  'RFID_BOUND',\n  'PRIVACY_STARTED',\n  'PRIVACY_FAILED',\n  'PRIVACY_DONE',\n  'REGISTERING_STARTED',\n  'REGISTERING_FAILED',\n  'REGISTERED',\n  'MINTING_STARTED',\n  'MINTING_FAILED',\n  'MINTED',\n  'INCOMPLETE',\n  'COMPLETED',\n] as const;\n\nexport enum CategoryStatusEnum {\n  Normal = 'NORMAL',\n  Fixed = 'FIXED',\n}\n","export enum ChainTypeEnum {\n  Objects = 'OBJECTS',\n  Services = 'SERVICES',\n  Files = 'FILES',\n  OrgObjects = 'ORG-OBJECTS',\n  OrgServices = 'ORG-SERVICES',\n  OrgFiles = 'ORG-FILES',\n}\nexport enum ReportTypeEnum {\n  Seller = 'Seller',\n  Buyer = 'Buyer',\n}\n\nexport enum FileTypeEnum {\n  PDF = 'PDF',\n  CSV = 'CSV',\n}\n\nexport enum AssetStatusEnum {\n  CREATED = 'CREATED',\n  PHOTO_ADDED_STARTED = 'PHOTO_ADDED_STARTED',\n  PHOTO_ADDED_FAILED = 'PHOTO_ADDED_FAILED',\n  PHOTO_ADDED = 'PHOTO_ADDED',\n  DOCUMENT_ADDED_STARTED = 'DOCUMENT_ADDED_STARTED',\n  DOCUMENT_ADDED_FAILED = 'DOCUMENT_ADDED_FAILED',\n  DOCUMENT_ADDED = 'DOCUMENT_ADDED',\n  OFFICIAL_VERIFYING_STARTED = 'OFFICIAL_VERIFYING_STARTED',\n  OFFICIAL_VERIFYING_FAILED = 'OFFICIAL_VERIFYING_FAILED',\n  OFFICIAL_VERIFIED = 'OFFICIAL_VERIFIED',\n  QR_BINDING_STARTED = 'QR_BINDING_STARTED',\n  QR_BINDING_FAILED = 'QR_BINDING_FAILED',\n  QR_BOUND = 'QR_BOUND',\n  RFID_BINDING_STARTED = 'RFID_BINDING_STARTED',\n  RFID_BINDING_FAILED = 'RFID_BINDING_FAILED',\n  RFID_BOUND = 'RFID_BOUND',\n  PRIVACY_STARTED = 'PRIVACY_STARTED',\n  PRIVACY_FAILED = 'PRIVACY_FAILED',\n  PRIVACY_DONE = 'PRIVACY_DONE',\n  WITNESS_VERIFYING_STARTED = 'WITNESS_VERIFYING_STARTED',\n  WITNESS_VERIFYING_FAILED = 'WITNESS_VERIFYING_FAILED',\n  WITNESS_VERIFIED = 'WITNESS_VERIFIED',\n  REGISTERING_STARTED = 'REGISTERING_STARTED',\n  REGISTERING_FAILED = 'REGISTERING_FAILED',\n  REGISTERED = 'REGISTERED',\n  MINTING_STARTED = 'MINTING_STARTED',\n  MINTING_FAILED = 'MINTING_FAILED',\n  MINTED = 'MINTED',\n  REFERENCE_VDTS_STARTED = 'REFERENCE_VDTS_STARTED',\n  REFERENCE_VDTS_FAILED = 'REFERENCE_VDTS_FAILED',\n  REFERENCE_VDTS_COMPLETED = 'REFERENCE_VDTS_COMPLETED',\n  CONFIRMED = 'CONFIRMED',\n}\n","import { AttachmentClassification, RelationTypeEnum, StepEnum } from '../../common';\nimport { ASSET_STATUSES } from '../constants';\nimport { SellingMethodEnum } from '../enums';\nimport { AssetTypeStep } from './asset-template';\nimport { AssetWitness } from './asset-witness';\nimport { ChainTypeEnum } from './chain-type-enum';\n\nexport interface BaseTypePropertyData {\n  id: string | number;\n  name: string;\n  value: string;\n}\n\nexport interface BaseType {\n  id: string;\n  name: string;\n  categoryId: number;\n  image: string | null;\n}\n\nexport interface CustomerAssetWitness {\n  assetId: string;\n  witnessId: string;\n  relationType: RelationsTypeEnum;\n  witness: AssetWitness;\n}\n\nexport interface CustomerAsset {\n  id: string;\n  appName: string;\n  typeId: string;\n  typeName: string;\n  status: AssetStatus;\n  level: AssetLevelEnum;\n  name: string;\n  ownerId: string;\n  orgId: string;\n  serializedSteps: SerializedStep[];\n  serializedProps: SerializedProp[];\n  serializedImages: SerializedImage[];\n  serializedDocuments: SerializedImage[];\n  serializedCategories: string[];\n  qrCodeRef?: string | null;\n  rfIdRef?: string | null;\n  eventIdRef: string;\n  city?: string | null;\n  state?: string | null;\n  country?: string | null;\n  isMinted: boolean;\n  isVerifiedByWitness: boolean;\n  createdAt: string;\n  updatedAt: string;\n  mintedAt: string;\n  isFavorite: boolean;\n  isVerifiedByOfficial: boolean;\n  sellingMethod: SellingMethodEnum | null;\n  referenceVDT: AssetReferenceVDTResponse[];\n  witness: WitnessCustomerAssetResponse[];\n  createdBy: string;\n  categoryId?: string;\n  assetWitness?: CustomerAssetWitness[];\n}\n\nexport interface S2CCustomerAsset extends CustomerAsset {\n  typeDetail: {\n    id: string;\n    name: string;\n    description: string;\n    categoryId: string;\n    readyForUse: true;\n    imageUrl: string;\n    isActive: true;\n    steps: AssetTypeStep[];\n    vdtType: ChainTypeEnum;\n    orgId: string;\n  };\n  isOpen?: boolean;\n}\n\nexport interface AssetReferenceVDTResponse {\n  assetId?: string;\n  serviceId?: string;\n  qrCodeRefId: string;\n  vdtType: ChainTypeEnum;\n  bitSysId: string;\n  relationType: RelationTypeEnum;\n  createdAt: string;\n  data: { title: string };\n}\n\nexport interface WitnessCustomerAssetResponse {\n  id: string;\n  relationType: RelationTypeEnum;\n  userId: string;\n  name: string;\n  email: string;\n  firstName: string;\n  lastName: string;\n  avatarUrl: string;\n  serializedImages: SerializedImage[];\n  serializedProps: SerializedProp[];\n  eventIdRef: string;\n  isMinted: boolean;\n  city: string;\n  state: string;\n  country: string;\n  locationAccuracy: 'exact' | 'city';\n  geolocation: {\n    longitude: number;\n    latitude: number;\n    meanSeaLevel: number;\n  };\n  createdAt: string;\n  mintedAt: string;\n  approved: boolean;\n  updatedAt: string;\n  orgId: string;\n}\n\nexport enum RelationsTypeEnum {\n  CHECKIN_OFFICIAL = 'CHECKIN_OFFICIAL',\n  CHECKIN_WITNESS = 'CHECKIN_WITNESS',\n  CHECKIN_INSPECTOR = 'CHECKIN_INSPECTOR',\n  CHECKIN_BUYER = 'CHECKIN_BUYER',\n  CHECKIN_SELLER = 'CHECKIN_SELLER',\n  PARENT_VDT = 'PARENT_VDT',\n  CHILD_VDT = 'CHILD_VDT',\n}\n\nexport type AssetStatus = (typeof ASSET_STATUSES)[number];\n// export type AssetSteps = (typeof ASSET_STEPS)[number];\n\nexport enum AssetLevelEnum {\n  A_PLUS = 'A+',\n  A = 'A',\n  A_MINUS = 'A-',\n  B_PLUS = 'B+',\n  B = 'B',\n  B_MINUS = 'B-',\n  C_PLUS = 'C+',\n  C = 'C',\n  C_MINUS = 'C-',\n}\n\nexport interface SerializedStep {\n  step?: StepEnum;\n  order: number;\n  typeId: string;\n  enabled: boolean;\n  finished: boolean;\n  isRequired: boolean;\n}\n\nexport interface SerializedProp {\n  id: string;\n  name: string;\n  value: string;\n}\n\nexport interface SerializedImage {\n  name: string;\n  docId: string;\n  docType: string;\n  mimeType: string;\n  description: string;\n  classification: AttachmentClassification;\n  isMain: boolean;\n}\n\nexport enum VerifyType {\n  NOT_VERIFIED = 'notVerified',\n  OFFICIAL_VERIFIED = 'verifiedByOfficial',\n  SELF_VERIFIED = 'selfVerified',\n}\n\nexport type MintStatus = 'MINTING_STARTED' | 'MINTING_FAILED' | 'MINTED';\n\nexport interface FavoriteAsset extends CustomerAsset {\n  isDeleted: boolean;\n}\n","import { CustomerAsset, RelationsTypeEnum, WitnessAsset } from '.';\nimport {\n  ApplicationData,\n  CreateAttachmentInputData,\n  CreateQrAttachmentInputData,\n  DeviceData,\n  PagedRequest,\n  PagedResponse,\n  QrPackageTypeEnum,\n  UpdateAttachmentInputData,\n  UpdateAttachmentResponse,\n  UploadedAttachmentData,\n} from '../../common';\nimport { Event } from '../../core-events';\nimport { AddReferenceVdtRequest, ShareAssetRequest } from '../asset.service.interfaces';\nimport { ChainBaseEvent, ChainBaseEventData, ChainBaseEventMetadata, CreateChainBaseRequest } from './chain-base';\nimport { EventGroupItem } from './event-group-item';\n\nexport interface IChainService {\n  chainApiUrl: string;\n  create: (req: CreateChainBaseRequest) => Promise<ChainBaseEvent>;\n  createAttachments: (req: CreateAttachmentsPayload) => Promise<UploadedAttachmentData[]>;\n  createQrAttachment: (eventId: string, req: CreateQrAttachmentRequest) => Promise<void>;\n  getEvent: (eventId: string) => Promise<ChainBaseEvent>;\n  getChildEvents: (eventId: string) => Promise<EventGroupItem[]>;\n  getDetailsByEvent: (eventId: string) => Promise<CustomerAsset>;\n  getDetails: (assetId: string) => Promise<CustomerAsset>;\n  assetByQr: (qrId: string) => Promise<ChainBaseEvent>;\n  getAttachmentImageUrl: (attId: string, thumb?: boolean) => string;\n  getWitnesses: (req: GetWitnessAssetsRequest) => Promise<PagedResponse<WitnessAsset>>;\n  update: (eventId: string, req: UpdateChainBaseDetailsRequest) => Promise<ChainBaseEvent>;\n  updateMetadata: (eventId: string, req: UpdateMetadataRequest) => Promise<ChainBaseEventData>;\n  updateLocationPrivacy: (eventId: string, req: UpdateLocationPrivacyRequest) => Promise<void>;\n  linkQr: (qrId: string, req: LinkQrRequest) => Promise<QrPackageCodeResponse>;\n  generateQr: (req: GenerateQrRequest) => Promise<QrPackageCodeResponse>;\n  deleteAttachments: (attId: string) => Promise<any>;\n  addReferenceVdt: (req: AddReferenceVdtRequest) => Promise<AddReferenceVdtRequest>;\n  updateAttachments: (eventId: string, req: UpdateAttachmentRequest) => Promise<UpdateAttachmentResponse>;\n  updateConfirmStatus: (eventId: string) => Promise<void>;\n  deleteReferenceVdt: (id: string, qrCodeRefId: string) => Promise<void>;\n  eventByQr: (qrId: string) => Promise<Event>;\n  updateFavorite: (req: UpdateFavoriteRequest) => Promise<void>;\n  share: (eventId: string, data: ShareAssetRequest) => Promise<void>;\n}\n\nexport interface CreateAttachmentsPayload {\n  // This is needed to know which Asset Anchoring Event\n  // we are adding the attachments for\n  eventId: string;\n  // This is the input passed to the API (see above)\n  req: CreateAttachmentRequest;\n  // This doesn't seem to even be used\n  chainType?: string;\n  onUpload?: (index: number, total: number) => void;\n}\n\nexport interface CreateAttachmentRequest {\n  application: ApplicationData;\n  device: DeviceData;\n  eventId: string;\n  docs: CreateAttachmentInputData[];\n}\n\nexport interface UpdateAttachmentRequest {\n  application: ApplicationData;\n  docs: UpdateAttachmentInputData[];\n}\n\nexport interface CreateQrAttachmentRequest {\n  application: ApplicationData;\n  device: DeviceData;\n  docs: CreateQrAttachmentInputData[];\n}\n\nexport interface UpdateChainBaseDetailsRequest {\n  date: string;\n}\n\nexport interface UpdateMetadataRequest {\n  metadata: ChainBaseEventMetadata;\n}\n\nexport enum LocationAccuracy {\n  Exact = 'exact',\n  City = 'city',\n  State = 'state',\n  Country = 'country',\n}\n\nexport interface UpdateLocationPrivacyRequest {\n  locationAccuracy: LocationAccuracy;\n  city?: string;\n  state?: string;\n  country?: string;\n}\n\nexport interface LinkQrRequest {\n  eventId: string;\n  device: DeviceData;\n  isAdminAsset?: boolean;\n}\n\nexport interface QrPackageCodeResponse {\n  id: string;\n  eventId?: string;\n  package?: {\n    id: string;\n    isSystem: boolean;\n    isCategoryDefault: boolean;\n    type: QrPackageTypeEnum;\n    name: string;\n    url: string;\n    qrCodeTotalCount: number;\n    createdBy: string;\n    createdAt: string;\n  };\n}\n\nexport interface GenerateQrRequest {\n  application: ApplicationData;\n  type: QrPackageTypeEnum;\n  categoryId?: string;\n  orgId?: string;\n}\n\nexport type GetWitnessAssetsRequest = PagedRequest<{\n  name?: string;\n  id?: string;\n  userId: string;\n  relationType?: RelationsTypeEnum;\n  isMinted?: boolean;\n  categoryId?: string;\n}>;\n\nexport interface UpdateFavoriteRequest {\n  ids: string[];\n  isFavorite: boolean;\n}\n","export enum VerifyTypeEnum {\n  NOT_VERIFIED = 'notVerified',\n  OFFICIAL_VERIFIED = 'verifiedByOfficial',\n  OFFICIAL_REJECTED = 'rejectedByOfficial',\n  SELF_VERIFIED = 'selfVerified',\n}\n","import { CustomerAsset } from \"./customer-base\";\n\nexport enum EOrderStatus {\n  Created = \"CREATED\",\n  ShippingInfo = \"SHIPPING_INFO\",\n  PaymentCompleted = \"PAYMENT_COMPLETED\",\n  PaymentFailed = \"PAYMENT_FAILED\",\n  Confirmed = \"CONFIRMED\",\n  Canceled = \"CANCELED\",\n  OrderShipped = \"ORDER_SHIPPED\",\n  OrderDelivered = \"ORDER_DELIVERED\",\n  OwnershipTransferStarted = \"OWNERSHIP_TRANSFER_STARTED\",\n  OwnershipTransferCompleted = \"OWNERSHIP_TRANSFER_COMPLETED\",\n  OwnershipTransferFailed = \"OWNERSHIP_TRANSFER_FAILED\",\n  OrderUndelivered = \"ORDER_UNDELIVERED\",\n  OrderSuccess = \"ORDER_SUCCESS\",\n  Return = \"RETURN\",\n  ReturnShipped = \"RETURN_SHIPPED\",\n  ReturnDelivered = \"RETURN_DELIVERED\",\n  ReturnUndelivered = \"RETURN_UNDELIVERED\",\n  Refund = \"REFUND\",\n  RefundCompleted = \"REFUND_COMPLETED\",\n  RefundFailed = \"REFUND_FAILED\",\n}\n\nexport interface OrderDataDataResponse {\n  id: string;\n  listingId: string;\n  assetId: string;\n  sellerId: string;\n  buyerId: string;\n  price: number;\n  status: EOrderStatus;\n  createdAt: Date;\n  updatedAt: Date;\n  ownershipChangedAt: Date;\n}\n\nexport interface OwnershipHistoryResponse {\n  id: string;\n  assetId: string;\n  ownerId: string;\n  orderData: OrderDataDataResponse;\n  orgId: string;\n  asset: CustomerAsset;\n  createdAt: string;\n}\n\n","import { StepEnum } from '../common';\nimport { ASSET_STATUSES } from './constants';\nimport { AssetStatus, CustomerAsset, VerifyTypeEnum, WitnessCustomerAssetResponse } from './interfaces';\n\nexport function getAssetStatusIndex(status: AssetStatus) {\n  return ASSET_STATUSES.indexOf(status);\n}\n\nexport function isAssetStatusBefore(currentStatus: AssetStatus, targetStatus: AssetStatus) {\n  return getAssetStatusIndex(currentStatus) < getAssetStatusIndex(targetStatus);\n}\n\nexport function isAssetStatusAfter(currentStatus: AssetStatus, targetStatus: AssetStatus) {\n  return getAssetStatusIndex(currentStatus) > getAssetStatusIndex(targetStatus);\n}\n\nexport function isAssetStatusFinished(currentStatus: AssetStatus, targetStatus: AssetStatus) {\n  return getAssetStatusIndex(currentStatus) >= getAssetStatusIndex(targetStatus);\n}\n\n/**\n * There is a backend logical bug that causes BITDEV-1389:\n * - Token's status updates to \"PHOTO_ADDED\" after witness verification\n *\n * The workaround for the above bug is to\n * manually check \"serializedSteps\" instead of \"status\" property.\n *\n * See function directly below for the workaround version\n * (exact same function but without the status checks).\n */\nexport function getAssetVerifyStatus(a: CustomerAsset) {\n  // Ideal: verified by official\n  if (\n    isAssetStatusFinished(a.status, 'OFFICIAL_VERIFIED') &&\n    a.serializedSteps.find((sc) => sc.step === StepEnum.OFFICIAL && sc.finished === true) &&\n    a.status !== 'OFFICIAL_VERIFYING_FAILED'\n  ) {\n    return VerifyTypeEnum.OFFICIAL_VERIFIED;\n  }\n\n  // Typical: skipped official verification; in other words: self verified\n  // Note: if the status just finished, make sure it wasn't a failure\n  if (\n    isAssetStatusFinished(a.status, 'OFFICIAL_VERIFIED') &&\n    a.serializedSteps.find((sc) => sc.step === StepEnum.OFFICIAL && sc.finished === false) &&\n    a.status !== 'OFFICIAL_VERIFYING_FAILED'\n  ) {\n    return VerifyTypeEnum.SELF_VERIFIED;\n  }\n\n  // Chain Token flow hasn't reached this stage yet - not yet verified\n  if (isAssetStatusBefore(a.status, 'OFFICIAL_VERIFYING_STARTED')) {\n    return VerifyTypeEnum.NOT_VERIFIED;\n  }\n\n  return VerifyTypeEnum.NOT_VERIFIED;\n}\n\nexport function getAssetVerifyStatusBySteps(a: CustomerAsset) {\n  // Ideal: verified by official\n  if (\n    a.serializedSteps?.find((sc) => sc.step === StepEnum.OFFICIAL && sc.finished === true) &&\n    a.status !== 'OFFICIAL_VERIFYING_FAILED'\n  ) {\n    if (getAssetVerifyRejected(a.witness)) return VerifyTypeEnum.OFFICIAL_VERIFIED;\n    return VerifyTypeEnum.OFFICIAL_REJECTED;\n  }\n\n  // Typical: skipped official verification; in other words: self verified\n  // Note: if the status just finished, make sure it wasn't a failure\n  if (\n    a.serializedSteps?.find((sc) => sc.step === StepEnum.OFFICIAL && sc.finished === false) &&\n    a.status !== 'OFFICIAL_VERIFYING_FAILED'\n  ) {\n    return VerifyTypeEnum.SELF_VERIFIED;\n  }\n\n  // New scenario: some categories can have NO official step at all, for some reason\n  if (!a.serializedSteps?.find((sc) => sc.step === StepEnum.OFFICIAL)) return VerifyTypeEnum.SELF_VERIFIED;\n\n  return VerifyTypeEnum.NOT_VERIFIED;\n}\n\nexport function getAssetVerifyRejected(data: WitnessCustomerAssetResponse[]) {\n  const witness = Array.isArray(data)\n    ? (data\n        .sort((a, b) => new Date(a.updatedAt).getTime() - new Date(b.updatedAt).getTime())\n        .pop() as WitnessCustomerAssetResponse)\n    : { approved: false };\n  return witness.approved;\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { FilterParams, PagedResponse, UpdateAttachmentResponse, createQueryParams } from '../../common';\nimport { Event } from '../../core-events';\nimport { createAndUploadAttachments } from '../asset-attachment.utils';\nimport { AddReferenceVdtRequest, ShareAssetRequest } from '../asset.service.interfaces';\nimport {\n  ChainAssetEvent,\n  ChainAssetEventData,\n  CreateAttachmentsPayload,\n  CreateChainAssetRequest,\n  CreateQrAttachmentRequest,\n  CustomerAsset,\n  EventGroupItem,\n  GenerateQrRequest,\n  GetWitnessAssetsRequest,\n  IChainService,\n  LinkQrRequest,\n  QrPackageCodeResponse,\n  UpdateAttachmentRequest,\n  UpdateChainAssetDetailsRequest,\n  UpdateFavoriteRequest,\n  UpdateLocationPrivacyRequest,\n  UpdateMetadataRequest,\n  WitnessAsset,\n} from '../interfaces';\n\nexport class ChainAssetService extends BaseService implements IChainService {\n  chainApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.chainApiUrl = `${this.apiUrl}/${this.coreApiServicePrefix}/v1/chain-assets`;\n  }\n\n  create(req: CreateChainAssetRequest) {\n    return this.post<ChainAssetEvent, CreateChainAssetRequest>(this.chainApiUrl, req);\n  }\n\n  createAttachments(req: CreateAttachmentsPayload) {\n    return createAndUploadAttachments({ service: this, chainApiUrl: this.chainApiUrl, req });\n  }\n\n  createQrAttachment(eventId: string, req: CreateQrAttachmentRequest) {\n    return this.post<void, CreateQrAttachmentRequest>(`${this.chainApiUrl}/${eventId}/qr`, req);\n  }\n\n  getEvent(eventId: string) {\n    return this.get<ChainAssetEvent>(`${this.chainApiUrl}/${eventId}`);\n  }\n\n  getChildEvents(eventId: string) {\n    return this.get<EventGroupItem[]>(`${this.chainApiUrl}/${eventId}/child-events`);\n  }\n\n  getDetailsByEvent(eventId: string) {\n    return this.get<CustomerAsset>(`${this.apiUrl}/assets/v1/asset/${eventId}/event`);\n  }\n\n  getDetails(assetId: string) {\n    return this.get<CustomerAsset>(`${this.apiUrl}/assets/v1/asset/${assetId}`);\n  }\n\n  assetByQr(qrId: string) {\n    return this.get<ChainAssetEvent>(`${this.coreApiUrl}/v1/qrcode/${qrId}/asset-info`);\n  }\n\n  eventPublicByQr(qrId: string) {\n    return this.get<ChainAssetEvent>(`${this.coreApiUrl}/v1/qrcode/${qrId}/asset-info-public`);\n  }\n\n  getAttachmentImageUrl(attachmentId: string, thumb?: boolean) {\n    const query = createQueryParams({ thumb: thumb ? 'true' : undefined });\n    return `${this.chainApiUrl}/attachments/${attachmentId}/view?${query}`;\n  }\n\n  getWitnesses(req: GetWitnessAssetsRequest) {\n    const query = createQueryParams({ assetId: req.id, assetName: req.name, ...req });\n    return this.get<PagedResponse<WitnessAsset>>(`${this.apiUrl}/assets/v1/witness/witnesses-asset?${query}`);\n  }\n\n  update(eventId: string, req: UpdateChainAssetDetailsRequest) {\n    return this.put<ChainAssetEvent, UpdateChainAssetDetailsRequest>(`${this.chainApiUrl}/${eventId}/details`, req);\n  }\n\n  updateMetadata(eventId: string, req: UpdateMetadataRequest) {\n    return this.post<ChainAssetEventData, UpdateMetadataRequest>(`${this.chainApiUrl}/${eventId}/metadata`, req);\n  }\n\n  updateLocationPrivacy(eventId: string, req: UpdateLocationPrivacyRequest) {\n    return this.patch<void, UpdateLocationPrivacyRequest>(`${this.chainApiUrl}/${eventId}/privacy`, req);\n  }\n\n  linkQr(qrId: string, req: LinkQrRequest) {\n    return this.put<QrPackageCodeResponse, LinkQrRequest>(`${this.coreApiUrl}/v1/qrcode/${qrId}/link`, req);\n  }\n\n  generateQr(req: GenerateQrRequest) {\n    return this.post<QrPackageCodeResponse, GenerateQrRequest>(`${this.coreApiUrl}/v1/qrcode/system-generated`, req);\n  }\n\n  deleteAttachments(attId: string) {\n    return this.delete<any>(`${this.chainApiUrl}/${attId}/attachments`);\n  }\n\n  addReferenceVdt(req: AddReferenceVdtRequest) {\n    return this.post<AddReferenceVdtRequest, AddReferenceVdtRequest>(\n      `${this.apiUrl}/assets/v1/asset/reference-vdt`,\n      req\n    );\n  }\n\n  updateAttachments(eventId: string, req: UpdateAttachmentRequest) {\n    return this.put<UpdateAttachmentResponse, UpdateAttachmentRequest>(\n      `${this.chainApiUrl}/${eventId}/attachments`,\n      req\n    );\n  }\n  updateConfirmStatus(eventId: string) {\n    return this.patch<void, object>(`${this.apiUrl}/assets/v1/asset/${eventId}/confirm`, {});\n  }\n\n  deleteReferenceVdt(id: string, qrCodeRefId: string) {\n    return this.delete<void>(`${this.apiUrl}/assets/v1/asset/${id}/reference-vdt/${qrCodeRefId}`);\n  }\n\n  eventByQr(qrId: string) {\n    return this.get<Event>(`${this.coreApiUrl}/v1/qrcode/${qrId}/event-info`);\n  }\n\n  updateFavorite(req: UpdateFavoriteRequest) {\n    return this.patch<void, UpdateFavoriteRequest>(`${this.chainApiUrl}/favorite`, req);\n  }\n\n  share(eventId: string, data: ShareAssetRequest): Promise<any> {\n    return this.post<void, ShareAssetRequest>(`${this.apiUrl}/assets/v1/asset/${eventId}/share`, data);\n  }\n}\n","import {\n  AttachmentClassification,\n  CreateAttachmentInputData,\n  CreateQrAttachmentInputData,\n  DEFAULT_APP_ID,\n  DeviceTypeEnum,\n  GeolocationData,\n  makeSampleGeolocation,\n} from '../../common';\nimport { CreateAttachmentsPayload, CreateQrAttachmentRequest } from '../interfaces';\n\ninterface MakeCreateAttachmentRequestOpts {\n  appId?: string;\n  eventId: string;\n  deviceId?: string;\n  deviceName?: string;\n  deviceType?: DeviceTypeEnum;\n  geolocation?: GeolocationData;\n  ipAddress?: string;\n  docs?: CreateAttachmentInputData[];\n  chainType?: string;\n}\n\n// This is a helper function that constructs the proper Asset Anchoring Attachment input\nexport function makeCreateAttachmentsRequest(opts: MakeCreateAttachmentRequestOpts): CreateAttachmentsPayload {\n  return {\n    eventId: opts.eventId,\n    req: {\n      application: { id: opts.appId ?? DEFAULT_APP_ID },\n      docs: opts.docs ?? [],\n      eventId: opts.eventId,\n      device: {\n        date: new Date().toISOString(),\n        deviceId: opts?.deviceId ?? '',\n        deviceName: opts?.deviceName ?? '',\n        geolocation: opts?.geolocation ?? makeSampleGeolocation(),\n        ipAddress: opts?.ipAddress ?? '',\n        deviceType: opts?.deviceType ?? DeviceTypeEnum.PHONE,\n      },\n    },\n    chainType: opts.chainType ?? '',\n  };\n}\n\ninterface MakeCreateQrAttachmentRequestOpts {\n  qrImageBase64: string;\n  appId?: string;\n  eventId: string;\n  deviceId?: string;\n  deviceName?: string;\n  deviceType?: DeviceTypeEnum;\n  geolocation?: GeolocationData;\n  ipAddress?: string;\n  docs?: CreateQrAttachmentInputData[];\n}\n\nexport function makeCreateQrAttachmentRequest(opts: MakeCreateQrAttachmentRequestOpts): CreateQrAttachmentRequest {\n  return {\n    application: { id: opts?.appId ?? DEFAULT_APP_ID },\n    device: {\n      date: new Date().toISOString(),\n      deviceId: opts.deviceId ?? '',\n      deviceName: opts.deviceName ?? '',\n      deviceType: opts.deviceType ?? DeviceTypeEnum.PHONE,\n      geolocation: opts.geolocation ?? makeSampleGeolocation(),\n      ipAddress: opts?.ipAddress ?? '',\n    },\n    docs: [\n      {\n        docType: 'PHOTO',\n        classification: AttachmentClassification.QrCode,\n        data: opts.qrImageBase64,\n      },\n    ],\n  };\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { ChainTypeEnum, ShareAssetRequest } from '../../asset';\nimport { PagedResponse, UpdateAttachmentResponse, createQueryParams } from '../../common';\nimport { Event } from '../../core-events';\nimport { createAndUploadAttachments } from '../asset-attachment.utils';\nimport { AddReferenceVdtRequest } from '../asset.service.interfaces';\nimport {\n  ChainServiceEvent,\n  ChainServiceEventData,\n  CreateAttachmentsPayload,\n  CreateChainServiceRequest,\n  CreateQrAttachmentRequest,\n  CustomerAsset,\n  EventGroupItem,\n  GenerateQrRequest,\n  GetWitnessAssetsRequest,\n  IChainService,\n  LinkQrRequest,\n  QrPackageCodeResponse,\n  S2CCustomerAsset,\n  UpdateAttachmentRequest,\n  UpdateChainServiceDetailsRequest,\n  UpdateFavoriteRequest,\n  UpdateLocationPrivacyRequest,\n  UpdateMetadataRequest,\n  WitnessAsset,\n} from '../interfaces';\n\nexport class ChainServiceService extends BaseService implements IChainService {\n  chainApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.chainApiUrl = `${this.apiUrl}/${this.coreApiServicePrefix}/v1/chain-services`;\n  }\n\n  create(req: CreateChainServiceRequest) {\n    return this.post<ChainServiceEvent, CreateChainServiceRequest>(this.chainApiUrl, req);\n  }\n\n  createAttachments(req: CreateAttachmentsPayload) {\n    return createAndUploadAttachments({ service: this, chainApiUrl: this.chainApiUrl, req });\n  }\n\n  createQrAttachment(eventId: string, req: CreateQrAttachmentRequest) {\n    return this.post<void, CreateQrAttachmentRequest>(`${this.chainApiUrl}/${eventId}/qr`, req);\n  }\n\n  getEvent(eventId: string) {\n    return this.get<ChainServiceEvent>(`${this.chainApiUrl}/${eventId}`);\n  }\n\n  getChildEvents(eventId: string) {\n    return this.get<EventGroupItem[]>(`${this.chainApiUrl}/${eventId}/child-events`);\n  }\n\n  getDetailsByEvent(eventId: string) {\n    return this.get<CustomerAsset>(`${this.apiUrl}/assets/v1/service/${eventId}/event`);\n  }\n\n  getDetails(serviceId: string) {\n    return this.get<CustomerAsset>(`${this.apiUrl}/assets/v1/service/${serviceId}`);\n  }\n\n  assetByQr(qrId: string) {\n    return this.get<ChainServiceEvent>(`${this.coreApiUrl}/v1/qrcode/${qrId}/service-info`);\n  }\n\n  getAttachmentImageUrl(attachmentId: string, thumb?: boolean) {\n    const query = createQueryParams({ thumb: thumb ? 'true' : undefined });\n    return `${this.chainApiUrl}/attachments/${attachmentId}/view?${query}`;\n  }\n\n  getWitnesses(req: GetWitnessAssetsRequest) {\n    const query = createQueryParams({ serviceId: req.id, serviceName: req.name, ...req });\n    return this.get<PagedResponse<WitnessAsset>>(`${this.apiUrl}/assets/v1/witness/witnesses-service?${query}`);\n  }\n\n  update(eventId: string, req: UpdateChainServiceDetailsRequest) {\n    return this.put<ChainServiceEvent, UpdateChainServiceDetailsRequest>(`${this.chainApiUrl}/${eventId}/details`, req);\n  }\n\n  updateMetadata(eventId: string, req: UpdateMetadataRequest) {\n    return this.post<ChainServiceEventData, UpdateMetadataRequest>(`${this.chainApiUrl}/${eventId}/metadata`, req);\n  }\n\n  updateLocationPrivacy(eventId: string, req: UpdateLocationPrivacyRequest) {\n    return this.patch<void, UpdateLocationPrivacyRequest>(`${this.chainApiUrl}/${eventId}/privacy`, req);\n  }\n\n  linkQr(qrId: string, req: LinkQrRequest) {\n    return this.put<QrPackageCodeResponse, LinkQrRequest>(`${this.coreApiUrl}/v1/qrcode/${qrId}/link`, req);\n  }\n\n  generateQr(req: GenerateQrRequest) {\n    return this.post<QrPackageCodeResponse, GenerateQrRequest>(`${this.coreApiUrl}/v1/qrcode/system-generated`, req);\n  }\n\n  deleteAttachments(attachmentId: string) {\n    return this.delete(`${this.chainApiUrl}/${attachmentId}/attachments`);\n  }\n\n  addReferenceVdt(req: AddReferenceVdtRequest) {\n    return this.post<AddReferenceVdtRequest, AddReferenceVdtRequest>(\n      `${this.apiUrl}/assets/v1/service/reference-vdt`,\n      req\n    );\n  }\n\n  updateAttachments(eventId: string, req: UpdateAttachmentRequest) {\n    return this.put<UpdateAttachmentResponse, UpdateAttachmentRequest>(\n      `${this.chainApiUrl}/${eventId}/attachments`,\n      req\n    );\n  }\n\n  updateConfirmStatus(eventId: string) {\n    return this.post<void, object>(`${this.apiUrl}/assets/v1/service/${eventId}/confirm`, {});\n  }\n\n  deleteReferenceVdt(id: string, qrCodeRefId: string) {\n    return this.delete<void>(`${this.apiUrl}/assets/v1/service/${id}/reference-vdt/${qrCodeRefId}`);\n  }\n\n  getS2CEventByQrId(qrId: string, vdtType: ChainTypeEnum, orgId?: string) {\n    const query = createQueryParams({ vdtType, orgId });\n    return this.get<S2CCustomerAsset[]>(`${this.apiUrl}/assets/v1/service/s2c/qr/${qrId}?${query}`);\n  }\n\n  eventByQr(qrId: string) {\n    return this.get<Event>(`${this.coreApiUrl}/v1/qrcode/${qrId}/event-info`);\n  }\n\n  updateFavorite(req: UpdateFavoriteRequest) {\n    return this.patch<void, UpdateFavoriteRequest>(`${this.chainApiUrl}/favorite`, req);\n  }\n\n  share(eventId: string, data: ShareAssetRequest): Promise<any> {\n    return this.post<void, ShareAssetRequest>(`${this.apiUrl}/assets/v1/service/${eventId}/share`, data);\n  }\n}\n","import {\n  AttachmentClassification,\n  AttachmentData,\n  AttachmentType,\n  DEFAULT_APP_ID,\n  DeviceTypeEnum,\n  GeolocationData,\n  ReferenceType,\n  RelationTypeEnum,\n  SubjectTypeEnum,\n  WeatherData,\n  makeSampleGeolocation,\n  makeSampleWeatherData,\n} from '../common';\nimport {\n  AssetTypePropertyData,\n  BaseTypePropertyData,\n  ChainAssetEventData,\n  ChainBaseEventData,\n  ChainBaseEventMetadata,\n  ChainServiceEventData,\n  ChainTypeEnum,\n  CreateChainAssetRequest,\n  CreateChainBaseRequest,\n  CreateChainServiceRequest,\n  EventGroupItem,\n  FindMainPhotoByTypeClassOpts,\n  ServiceTypePropertyData,\n  UpdateChainAssetDetailsRequest,\n  UpdateChainBaseDetailsRequest,\n  UpdateChainServiceDetailsRequest,\n} from './interfaces';\n\nexport class ChainUtils {\n  static getName(data: ChainBaseEventData) {\n    if ('assetName' in data) return (data as ChainAssetEventData).assetName ?? '';\n    if ('serviceName' in data) return (data as ChainServiceEventData).serviceName ?? '';\n    return '';\n  }\n\n  static getNameFromProperties(props: BaseTypePropertyData[]) {\n    if (props.some((p) => 'isAssetName' in p)) {\n      const assetData = props as AssetTypePropertyData[];\n      return assetData.find((p) => p.isAssetName)?.value ?? assetData.find((p) => p.value !== '')?.value ?? '';\n    }\n    if (props.some((p) => 'isServiceName' in p)) {\n      const serviceData = props as ServiceTypePropertyData[];\n      return serviceData.find((p) => p.isServiceName)?.value ?? serviceData.find((p) => p.value !== '')?.value ?? '';\n    }\n    return '';\n  }\n\n  static getCategories(data: ChainBaseEventData) {\n    if ('assetCategory' in data) return (data as ChainAssetEventData).assetCategory ?? [];\n    if ('serviceCategory' in data) return (data as ChainServiceEventData).serviceCategory ?? [];\n    return [];\n  }\n\n  static getProperties(data: ChainBaseEventData): BaseTypePropertyData[] {\n    if ('assetProperties' in data) return (data as ChainAssetEventData).assetProperties ?? [];\n    if ('serviceProperties' in data) return (data as ChainServiceEventData).serviceProperties ?? [];\n    return [];\n  }\n\n  static getMimeType(mimeType: string) {\n    return mimeType === 'application/pdf' ? AttachmentType.TokenDocument : AttachmentType.TokenPhoto;\n  }\n\n  static findMainPhotoByTypeClass<TPhotos extends Pick<AttachmentData, 'classification' | 'isMain'>>(opts: FindMainPhotoByTypeClassOpts<TPhotos>) {\n    const { photos, chainType, attachmentType } = opts;\n    return photos\n      ?.filter(\n        (p) => p.classification === ChainUtils.getAttachmentClassification(chainType, attachmentType) && p.isMain\n      )\n      ?.pop();\n  }\n\n  static getAttachmentClassification(chainType: ChainTypeEnum, attachmentType: AttachmentType) {\n    const classifications = {\n      [AttachmentType.TokenDocument]: {\n        [ChainTypeEnum.Services]: AttachmentClassification.ServiceDocument,\n        [ChainTypeEnum.Objects]: AttachmentClassification.AssetDocument,\n        [ChainTypeEnum.Files]: AttachmentClassification.AssetDocument,\n      },\n      [AttachmentType.TokenPhoto]: {\n        [ChainTypeEnum.Services]: AttachmentClassification.ServicePhoto,\n        [ChainTypeEnum.Objects]: AttachmentClassification.AssetPhoto,\n        [ChainTypeEnum.Files]: AttachmentClassification.AssetPhoto,\n      },\n      [AttachmentType.VerificationPhoto]: {\n        [ChainTypeEnum.Services]: AttachmentClassification.ServiceVerificationPhoto,\n        [ChainTypeEnum.Objects]: AttachmentClassification.AssetVerificationPhoto,\n        [ChainTypeEnum.Files]: AttachmentClassification.AssetVerificationPhoto,\n      },\n      [AttachmentType.WitnessPhoto]: {\n        [ChainTypeEnum.Services]: AttachmentClassification.ServiceWitnessPhoto,\n        [ChainTypeEnum.Objects]: AttachmentClassification.AssetWitnessPhoto,\n        [ChainTypeEnum.Files]: AttachmentClassification.AssetWitnessPhoto,\n      },\n    };\n    // @ts-ignore TODO: fix TS type\n    return classifications[attachmentType]?.[chainType] || null;\n  }\n\n  static getType(data: ChainBaseEventData) {\n    let name = '';\n    let id = '';\n    if ('assetType' in data) {\n      const assetData = data as ChainAssetEventData;\n      id = assetData.metadata?.assetTypeId ?? '';\n      name = assetData.assetType ?? '';\n    }\n    if ('serviceType' in data) {\n      const serviceData = data as ChainServiceEventData;\n      id = serviceData.metadata?.serviceTypeId ?? '';\n      name = (data as ChainServiceEventData).serviceType ?? '';\n    }\n    return { id, name };\n  }\n\n  static makeCreateChainRequest(opts: MakeCreateChainRequestOpts) {\n    const date = opts?.eventDate ?? new Date().toISOString();\n\n    const req: CreateChainBaseRequest = {\n      application: { id: opts?.appId ?? DEFAULT_APP_ID },\n      subject: {\n        subjectType: opts?.subjectType ?? SubjectTypeEnum.USER,\n        references: [\n          { type: ReferenceType.AUTH0_IDENTITY, value: opts.auth0Id },\n          { type: ReferenceType.END_USER_ID, value: opts.endUserId },\n        ],\n        orgId: opts?.orgId,\n      },\n      device: {\n        date,\n        deviceId: opts?.deviceId ?? '',\n        deviceName: opts?.deviceName ?? '',\n        geolocation: opts?.geolocation ?? makeSampleGeolocation(),\n        ipAddress: opts?.ipAddress ?? '',\n        deviceType: opts?.deviceType ?? DeviceTypeEnum.PHONE,\n      },\n      weather: opts?.weather ?? makeSampleWeatherData(),\n      data: { date },\n    };\n\n    if (opts?.chainType === ChainTypeEnum.Objects || opts?.chainType === ChainTypeEnum.Files) {\n      if (opts?.properties) {\n        opts.properties = (opts.properties as AssetTypePropertyData[])?.map((p) => ({\n          id: p.id,\n          name: p.name,\n          value: p.value,\n          isAssetName: p.isAssetName ?? false,\n        }));\n      }\n      (req as CreateChainAssetRequest).data.asset = {\n        assetType: opts?.type ?? '',\n        assetCategory: opts?.category ?? [],\n        assetName: opts?.name ?? '',\n        assetProperties: opts?.properties ?? [],\n        isFavorite: opts?.isFavorite,\n        metadata: {\n          ...(opts?.metadata ?? {}),\n          assetTypeId: opts?.typeId ?? '',\n        },\n      };\n    } else if (opts?.chainType === ChainTypeEnum.Services) {\n      if (opts?.properties) {\n        opts.properties = (opts.properties as ServiceTypePropertyData[])?.map((p) => ({\n          id: p.id,\n          name: p.name,\n          value: p.value,\n          isServiceName: p.isServiceName ?? false,\n        }));\n      }\n      (req as CreateChainServiceRequest).data.service = {\n        serviceType: opts?.type ?? '',\n        serviceCategory: opts?.category ?? [],\n        serviceName: opts?.name ?? '',\n        serviceProperties: opts?.properties ?? [],\n        isFavorite: opts?.isFavorite,\n        metadata: {\n          ...(opts?.metadata ?? {}),\n          serviceTypeId: opts?.typeId ?? '',\n        },\n      };\n    }\n\n    return req;\n  }\n\n  static makeUpdateChainRequest(opts: MakeUpdateChainRequestOpts) {\n    const req: UpdateChainBaseDetailsRequest = {\n      date: new Date().toISOString(),\n    };\n\n    if (opts.chainType === ChainTypeEnum.Objects) {\n      (req as UpdateChainAssetDetailsRequest).asset = {\n        assetType: opts?.type ?? '',\n        assetCategory: opts?.category ?? [],\n        assetName: opts?.name ?? '',\n        isFavorite: opts?.isFavorite,\n        assetProperties: opts?.properties ?? [],\n        metadata: opts?.metadata,\n      };\n    } else if (opts.chainType === ChainTypeEnum.Services) {\n      (req as UpdateChainServiceDetailsRequest).service = {\n        serviceType: opts?.type ?? '',\n        serviceCategory: opts?.category ?? [],\n        serviceName: opts?.name ?? '',\n        isFavorite: opts?.isFavorite,\n        serviceProperties: opts?.properties ?? [],\n        metadata: opts?.metadata,\n      };\n    }\n    return req;\n  }\n  static async isOfficialVerified(chainType: ChainTypeEnum, childEvents: EventGroupItem[]) {\n    if (chainType === ChainTypeEnum.Services) return false;\n    return childEvents.some((e) => e.relationType === RelationTypeEnum.Official);\n  }\n}\n\ninterface MakeCreateChainRequestOpts {\n  chainType: ChainTypeEnum;\n  appId?: string;\n  deviceId?: string;\n  deviceName?: string;\n  deviceType?: DeviceTypeEnum;\n  geolocation?: GeolocationData;\n  ipAddress?: string;\n  weather?: WeatherData;\n  eventDate?: string;\n  type?: string;\n  category?: string[];\n  name?: string;\n  properties?: BaseTypePropertyData[];\n  typeId?: string;\n  metadata?: Partial<ChainBaseEventMetadata>;\n  subjectType?: SubjectTypeEnum;\n  auth0Id: string;\n  endUserId: string;\n  orgId?: string;\n  isFavorite?: boolean;\n}\n\ninterface MakeUpdateChainRequestOpts {\n  chainType: ChainTypeEnum;\n  type?: string;\n  category?: string[];\n  name?: string;\n  isFavorite?: boolean;\n  properties?: BaseTypePropertyData[];\n  metadata?: Partial<ChainBaseEventMetadata>;\n}\n","export enum SellingMethodEnum {\n  /**\n   * I don't know why this is called \"Mint\",\n   * in product terms we just call it \"Fixed Price\"\n   */\n  Fixed = 'fixed',\n  Auction = 'auction',\n  Dutch = 'dutch_auction',\n  Inverse = 'inverse_auction'\n}\n\nexport enum MeasurementUnitEnum {\n  IN = 'IN',\n  CM = 'CM',\n}\n","import { BaseService } from '../api';\nimport { FilteredRequest } from '../common';\nimport { CategoriesRequest, ListFinalWithTypes } from './asset.service.interfaces';\nimport { AssetCategory } from './interfaces';\n\nexport class S2CAssetService extends BaseService {\n  listS2CCategories(req: FilteredRequest<CategoriesRequest> = {}) {\n    return this.get<AssetCategory[]>(`${this.apiUrl}/assets/v1/asset-category/s2c-sub`, req);\n  }\n\n  listS2CFinalType(req: ListFinalWithTypes) {\n    return this.get<AssetCategory[]>(`${this.apiUrl}/assets/v1/asset-category/final-with-types`, req);\n  }\n}\n","import jwtDecode from 'jwt-decode';\nimport { LoggerType } from '../common';\nimport { BiometricsModeEnum, BiometricsStorageKeyEnum } from './enums';\nimport { IIncodeService, IStorage, IncodeInitializeOptions } from './interfaces';\n\nexport type BiometricsServiceOptions = IncodeInitializeOptions & {\n  /**\n   * Web and Mobile have different implementations of IncodeSdk.\n   * \n   * Based on the platform being used, \n   * the appropriate service class needs to be passed here.\n   */\n  incodeService: IIncodeService;\n  /**\n   * Web and Mobile have different libraries / services \n   * for storing persistent data in a key/value store.\n   * \n   * Based on the platform being used, \n   * the asessionTokenppropriate storage instance needs to be passed here.\n   */\n  storage: IStorage;\n  /** Optional `LoggerType` object to be able to see our debug / info logs */\n  logger?: LoggerType;\n}\n\nexport interface SignInOptions {\n  /**\n   * Session Token from BIT Authentication flow.\n   * \n   * If this is passed, we try the following:\n   * - If user's `email` matches email persisted from the previous session,\n   * - \n   */\n  sessionToken?: string;\n}\n\nexport class BiometricsService {\n  /** Platform-specific Incode service class */\n  public incode: IIncodeService;\n  /** Platform-specific storage (e.g. `localStorage`, `EncryptedStorage`) */\n  private storage?: IStorage;\n\n  // Local variables\n  private mode: BiometricsModeEnum | null = null;\n\n  // Incode-related variables\n  private sessionToken?: string;\n\n  private logger?: LoggerType;\n\n  constructor(private options: BiometricsServiceOptions) {\n    this.logger = options.logger;\n    this.incode = options.incodeService;\n    this.storage = options.storage;\n  }\n\n  /**\n   * Two reasons why this method needs to be called separately and is `async`\n   * \n   * Web - needs to call `warmup()` which is `async`\n   * \n   * Mobile - `IncodeSdk.initialize(...)` is `async`\n   */\n  async initialize() {\n    const initOptions = {\n      apiKey: this.options.apiKey,\n      apiUrl: this.options.apiUrl,\n      isMobileEmulator: this.options.isMobileEmulator,\n      waitForTutorials: this.options.waitForTutorials\n    };\n    this.logger?.debug('Initializing Incode SDK:', JSON.stringify(initOptions));\n    await this.incode.initialize(initOptions);\n  }\n\n  async signIn() {\n    this.mode = BiometricsModeEnum.SignIn;\n  }\n\n  async signUp(options?: SignInOptions) {\n    if (this.sessionToken) {\n      this.logger?.debug('Decoding session token:', jwtDecode(this.sessionToken));\n      const email = (jwtDecode(this.sessionToken) as any)['email'];\n      const prevSessionEmail = await this.storage?.getItem(BiometricsStorageKeyEnum.AuthEmails) ?? '';\n      // if (email !== prevSessionEmail) setInterviewId(null);\n      // if (email) setSignUpEmail(email);\n    }\n  }\n}","export enum BiometricsModeEnum {\n  SignIn = 'sign-in',\n  SignUp = 'sign-up',\n}\n\n/**\n * Key values used to store persistent data for future Biometrics sessions\n */\nexport enum BiometricsStorageKeyEnum {\n  /**\n   * I don't remember why we have to store the email\n   * that the user used for authenticating.\n   */\n  AuthEmails = 'authEmails',\n}","import { BaseService, BaseServiceOptions } from '../api/services/base-service';\nimport { UpdateLocationPrivacyRequest } from '../asset';\nimport {\n  PagedRequest,\n  PagedResponse,\n  UpdateAttachmentResponse,\n  ViewAttachmentResponse,\n  createQueryParams,\n} from '../common';\nimport {\n  CreateCheckInEventRequest,\n  GetCheckInEventsRequest,\n  UpdateCheckInAttachmentRequest,\n} from './check-in-service.interfaces';\nimport { CheckInEvent } from './interfaces';\n\nexport class CheckInService extends BaseService {\n  checkinApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.checkinApiUrl = `${this.coreApiUrl}/v1/checkin`;\n  }\n\n  createCheckIn(req: CreateCheckInEventRequest) {\n    return this.post<CheckInEvent, CreateCheckInEventRequest>(this.checkinApiUrl, req);\n  }\n\n  getEvent(eventId: string) {\n    return this.get<CheckInEvent>(`${this.checkinApiUrl}/${eventId}`);\n  }\n\n  getCheckInEvents(req?: PagedRequest<GetCheckInEventsRequest>) {\n    return this.get<PagedResponse<CheckInEvent>, PagedRequest<GetCheckInEventsRequest>>(\n      this.checkinApiUrl + `?${createQueryParams(req)}`\n    );\n  }\n\n  updateAttachment(req: UpdateCheckInAttachmentRequest) {\n    return this.put<UpdateAttachmentResponse, UpdateCheckInAttachmentRequest>(\n      `${this.checkinApiUrl}/${req.eventId}/attachments`,\n      req\n    );\n  }\n\n  getAttachmentImage(attId: string, thumb?: boolean) {\n    const query = createQueryParams({ id: attId, thumb: thumb ? 'true' : undefined });\n    return this.get<ViewAttachmentResponse, { path: string }>(`${this.checkinApiUrl}/attachments/view?${query}`);\n  }\n\n  updateLocationPrivacy(eventId: string, req: UpdateLocationPrivacyRequest) {\n    return this.patch<void, UpdateLocationPrivacyRequest>(`${this.checkinApiUrl}/${eventId}/privacy`, req);\n  }\n}\n","import { ChainBaseEventMetadata } from '../asset';\nimport {\n  ApplicationData,\n  AttachmentData,\n  CreateAttachmentInputData,\n  DeviceData,\n  EventData,\n  GeolocationData,\n  RootEventData,\n  SubjectData,\n  SubjectDataReferenceItem,\n} from '../common';\n\nexport interface CheckInEventInput {\n  application: ApplicationData;\n  rootEvent: RootEventData;\n  subject: SubjectData;\n  device: DeviceData;\n  data: {\n    date: string;\n    geolocation: GeolocationData;\n    attachments: CreateAttachmentInputData[];\n  };\n  event: EventData;\n}\n\nexport interface CheckInEvent {\n  id: string;\n  eventType: string;\n  application: string;\n  device: DeviceData;\n  status: string;\n  subjectType: string;\n  attachments: AttachmentData[];\n  eventDate?: string;\n  subjectReferences: SubjectDataReferenceItem[];\n  properties?: CheckInProperty[];\n  metadata?: Partial<ChainBaseEventMetadata>;\n}\n\nexport interface CheckInProperty {\n  id: string;\n  name: string;\n  value: string;\n}\n\nexport enum VerificationTypeEnum {\n  Reject = 'Reject',\n  Official = 'Official',\n  Witness = 'Witness',\n  Buyer = 'Buyer',\n  Seller = 'Seller',\n  Review = 'Review',\n  Inspection = 'Inspection',\n  Archive = 'Archive',\n}\n","import {\n  AttachmentClassification,\n  CreateAttachmentInputData,\n  DEFAULT_APP_ID,\n  DeviceTypeEnum,\n  GeolocationData,\n  ReferenceType,\n  RelationTypeEnum,\n  SubjectDataReferenceItem,\n  SubjectTypeEnum,\n  makeSampleGeolocation,\n} from '../common';\nimport { CreateCheckInEventRequest, UpdateCheckInAttachmentRequest } from './check-in-service.interfaces';\nimport { CheckInProperty } from './interfaces';\n\nexport interface MakeCreateCheckInEventRequestOpts {\n  appId?: string;\n  reference?: SubjectDataReferenceItem;\n  deviceId?: string;\n  deviceName?: string;\n  deviceType?: DeviceTypeEnum;\n  geolocation?: GeolocationData;\n  ipAddress?: string;\n  attachments?: CreateAttachmentInputData[];\n  properties?: CheckInProperty[];\n  auth0Id?: string;\n  orgId?: string;\n  subjectType?: SubjectTypeEnum;\n  parentEvent?: CreateCheckInEventRequest['event'];\n  approved?: boolean;\n  categoryId?: string;\n}\n\nexport function makeCreateCheckInEventRequest(opts?: MakeCreateCheckInEventRequestOpts): CreateCheckInEventRequest {\n  const date = new Date().toISOString();\n  const references: SubjectDataReferenceItem[] = [];\n  if (opts?.reference) references.push(opts.reference);\n  if (opts?.auth0Id) {\n    references.push({\n      type: ReferenceType.AUTH0_IDENTITY,\n      value: opts.auth0Id,\n    });\n  }\n  return {\n    application: { id: opts?.appId ?? DEFAULT_APP_ID },\n    subject: {\n      // Accepted values for now are only \"EMPLOYEE\", \"DRIVER\"\n      subjectType: opts?.subjectType ?? 'EMPLOYEE',\n      references,\n      orgId: opts?.orgId,\n    },\n    device: {\n      date,\n      deviceType: opts?.deviceType ?? DeviceTypeEnum.PHONE,\n      deviceId: opts?.deviceId ?? '',\n      deviceName: opts?.deviceName ?? '',\n      geolocation: opts?.geolocation ?? makeSampleGeolocation(),\n      ipAddress: opts?.ipAddress ?? '',\n    },\n    event: opts?.parentEvent,\n    data: {\n      date,\n      properties: opts?.properties,\n      attachments: opts?.attachments,\n      approved: opts?.approved,\n      categoryId: opts?.categoryId,\n    },\n  };\n}\n\nexport interface MakeUpdateCheckInAttachmentRequestOpts {\n  appId?: string;\n  eventId: string;\n  geolocation: GeolocationData;\n  attachmentId: string;\n  name?: string;\n  imageBase64: string;\n  classification: AttachmentClassification;\n  isMain?: boolean;\n  eventToken?: string;\n  relationType?: RelationTypeEnum;\n}\n\nexport function makeUpdateCheckInAttachmentRequest(\n  opts: MakeUpdateCheckInAttachmentRequestOpts\n): UpdateCheckInAttachmentRequest {\n  return {\n    application: { id: opts?.appId ?? DEFAULT_APP_ID },\n    eventId: opts.eventId,\n    geolocation: opts.geolocation,\n    docs: [\n      {\n        docId: opts.attachmentId,\n        data: opts.imageBase64,\n        docType: 'PHOTO',\n        classification: opts.classification,\n        name: opts.name ?? '',\n        description: '',\n        mimeType: 'image/png',\n        isMain: !!opts.isMain,\n      },\n    ],\n    eventToken: opts.eventToken,\n    relationType: opts.relationType,\n  };\n}\n","import { BaseService } from '../api/services/base-service';\nimport { FilteredRequest } from '../common/interfaces';\nimport { ActionReason, ReasonsRequest, ListApplicationsRequest, Application } from './common-admin.service.interfaces';\n\nexport class CommonAdminService extends BaseService {\n  listReasons(req: FilteredRequest<ReasonsRequest>) {\n    return this.get<ActionReason[]>(`${this.apiUrl}/common-admin/v1/reasons/list`, req);\n  }\n\n  listApplications(req: FilteredRequest<ListApplicationsRequest>) {\n    return this.get<Application[]>(`${this.apiUrl}/common-admin/v1/applications/list`, req);\n  }\n}\n","import { FilteredRequest } from '../common/interfaces';\n\nexport interface ReasonsRequest {\n  actions?: ActionType[];\n  name?: string;\n  isActive?: boolean;\n  createdBy?: string;\n  $ids?: string[];\n  $orderBy?: string;\n  $order?: 'asc' | 'desc';\n}\n\nexport interface ActionReason {\n  id: string;\n  createdBy: string;\n  action: string;\n  name: string;\n  description: string;\n  isActive: boolean;\n  createdAt: string;\n}\n\nexport enum ActionType {\n  OfficialRejectVerification = 'OFFICIAL_REJECT_VERIFICATION',\n  SellerRejectOrder = 'SELLER_REJECT_ORDER',\n  SellerRejectBid = 'SELLER_REJECT_BID',\n  BuyerRejectDelivery = 'BUYER_REJECT_DELIVERY',\n  UserArchiveS2CToken = 'USER_ARCHIVE_S2S_TOKEN',\n}\n\nexport type ListApplicationsRequest = FilteredRequest<{\n  name?: string;\n  friendlyName?: string;\n  names?: string[];\n  $resolveImages?: boolean;\n}>;\n\nexport interface Application {\n  name: string;\n  friendlyName: string;\n  description: string;\n  logoUrl: string | null;\n  isEncrypted: boolean;\n  createdAt: string;\n  updatedAt: string;\n}","export enum CoreEventTypeEnum {\n  CHAIN_SERVICES = 'CHAIN_SERVICES',\n  CHAIN_OBJECTS = 'CHAIN_OBJECT',\n}\n","import { BaseService, BaseServiceOptions } from '../api/services/base-service';\nimport { FilterParams, PagedResponse, SubjectTypeEnum, WeatherData } from '../common';\n\nexport enum EEventStatus {\n  Initialized = 'INITIALIZED',\n  Uploading = 'UPLOADING',\n  Completed = 'COMPLETED',\n  ForVerification = 'FOR_VERIFICATION',\n  Verified = 'VERIFIED',\n}\n\nexport interface Event {\n  id: string;\n  deviceId: string;\n  appName: string;\n  deviceDate: string;\n  subjectType: SubjectTypeEnum;\n  eventTypeId: string;\n  createdBy: string;\n  latitude: number;\n  longitude: number;\n  meanSeaLevel: number;\n  ipAddress: string;\n  status: EEventStatus;\n  eventDate: string;\n  createdAt: string;\n  weather: WeatherData;\n}\n\nexport class EventService extends BaseService {\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n  }\n\n  getEventById(eventId?: string) {\n    return this.get<Event>(`${this.apiUrl}/core-events/v1/events/${eventId}`);\n  }\n\n  searchEvents(req?: FilterParams) {\n    return this.get<PagedResponse<Event>>(`${this.apiUrl}/core-events/v1/events`, req);\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../api/services/base-service';\nimport { PagedResponse } from '../common';\nimport {\n  InitDeviceVdtRequest,\n  RegisterAdminDeviceRequest,\n  RegisterDeviceRequest,\n  SearchDevicesRequest,\n  ValidateDeviceRequest,\n  ValidateDeviceResponse,\n} from './device.service.interfaces';\nimport { Device } from './interfaces';\n\nexport class DeviceService extends BaseService {\n  protected deviceApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.deviceApiUrl = `${this.apiUrl}/devices/v1/devices`;\n  }\n\n  searchDevices(req: SearchDevicesRequest) {\n    return this.get<PagedResponse<Device>>(this.deviceApiUrl, req);\n  }\n\n  registerDevice(req: RegisterDeviceRequest) {\n    return this.post<Device, RegisterDeviceRequest>(`${this.deviceApiUrl}/register`, req);\n  }\n\n  registerAdminDevice(req: RegisterAdminDeviceRequest) {\n    return this.post<Device, RegisterAdminDeviceRequest>(`${this.deviceApiUrl}/admin/register`, req);\n  }\n\n  getAdminDeviceByExternalId(externalId: string) {\n    return this.get<Device>(`${this.deviceApiUrl}/admin/${externalId}`);\n  }\n\n  validateDevice(req: ValidateDeviceRequest) {\n    return this.post<ValidateDeviceResponse, ValidateDeviceRequest>(`${this.deviceApiUrl}/validate`, req);\n  }\n\n  getDeviceByExternalId(externalId: string) {\n    return this.get<Device>(`${this.deviceApiUrl}/${externalId}`);\n  }\n\n  unregisterDevice(externalId: string) {\n    return this.delete<void>(`${this.deviceApiUrl}/${externalId}/unregister`);\n  }\n\n  initDeviceVdt(req: InitDeviceVdtRequest) {\n    return this.post<void, InitDeviceVdtRequest>(`${this.deviceApiUrl}/init-vdt`, req);\n  }\n\n  getDeviceInfoById(deviceId: string) {\n    return this.get<Device>(`${this.deviceApiUrl}/${deviceId}/info`);\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../api';\nimport { PagedRequest, PagedResponse } from '../common';\nimport {\n  AddInventoryItemRequest,\n  DeleteInventoryItemRequest,\n  Inventory,\n  InventoryItem,\n  InventoryItemRequest,\n} from './inventory.service.interfaces';\n\nexport class InventoryService extends BaseService {\n  protected inventoryApiUrl: string;\n  protected inventoryItemApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.inventoryApiUrl = `${this.apiUrl}/assets/v1/inventory`;\n    this.inventoryItemApiUrl = `${this.apiUrl}/assets/v1/inventory-item`;\n  }\n\n  getInventoryByOrgId(orgId: string) {\n    return this.get<Inventory>(`${this.inventoryApiUrl}/organization/${orgId}`);\n  }\n\n  addInventoryItem(req: AddInventoryItemRequest) {\n    return this.post<InventoryItem, AddInventoryItemRequest>(`${this.inventoryItemApiUrl}`, req);\n  }\n\n  getInventoryItem(req: PagedRequest<InventoryItemRequest>) {\n    return this.get<PagedResponse<InventoryItem>>(`${this.inventoryItemApiUrl}`, req);\n  }\n\n  deleteInventoryItem(req: DeleteInventoryItemRequest) {\n    return this.delete<void>(`${this.inventoryItemApiUrl}/${req.inventoryId}/archive/${req.qrCodeId}`, undefined, {\n      headers: { orgId: req.orgId },\n    });\n  }\n}\n","export enum ListedStatusEnum {\n  MINTED = 'MINTED',\n  LISTING_STARTED = 'LISTING_STARTED',\n  LISTING_FAILED = 'LISTING_FAILED',\n  LISTED = 'LISTED',\n  DELIST_STARTED = 'DELIST_STARTED',\n  DELIST_FAILED = 'DELIST_FAILED',\n  DELISTED = 'DELISTED',\n  ORDER_STARTED = 'ORDER_STARTED',\n  ORDER_COMPLETED = 'ORDER_COMPLETED',\n  ORDER_FAILED = 'ORDER_FAILED',\n}\n\nexport enum BidStatusEnum {\n  PENDING = 'PENDING',\n  REJECTED = 'REJECTED',\n  ACCEPTED = 'ACCEPTED',\n  RETRACTED = 'RETRACTED',\n}\n\nexport enum OrderStatusEnum {\n  CREATED = 'CREATED',\n  PAYMENT_COMPLETED = 'PAYMENT_COMPLETED',\n  PAYMENT_FAILED = 'PAYMENT_FAILED',\n  CANCELLED = 'CANCELLED',\n  ORDER_SHIPPED = 'ORDER_SHIPPED',\n  ORDER_DELIVERED = 'ORDER_DELIVERED',\n  OWNERSHIP_TRANSFER_STARTED = 'OWNERSHIP_TRANSFER_STARTED',\n  OWNERSHIP_TRANSFER_COMPLETED = 'OWNERSHIP_TRANSFER_COMPLETED',\n  OWNERSHIP_TRANSFER_FAILED = 'OWNERSHIP_TRANSFER_FAILED',\n  ORDER_UNDELIVERED = 'ORDER_UNDELIVERED',\n  ORDER_SUCCESS = 'ORDER_SUCCESS',\n  RETURN = 'RETURN',\n  RETURN_SHIPPED = 'RETURN_SHIPPED',\n  RETURN_DELIVERED = 'RETURN_DELIVERED',\n  RETURN_UNDELIVERED = 'RETURN_UNDELIVERED',\n  REFUND = 'REFUND',\n  REFUND_COMPLETED = 'REFUND_COMPLETED',\n  REFUND_FAILED = 'REFUND_FAILED',\n  ONGOING = 'ON_GOING',\n  COMPLETED = 'COMPLETED',\n}\n","import { CustomerAsset } from '../../asset';\nimport { BidStatusEnum } from '../enums';\nimport { Listing } from './listing';\n\nexport interface Bid {\n  id: string;\n  listingId: string;\n  status: BidStatusEnum;\n  price: number;\n  paymentExpireTime: string;\n  rejectReason: string;\n  reasonDescription: string;\n  createdAt: string;\n  createdBy: string;\n  listing?: Listing;\n  asset?: CustomerAsset;\n}\n\nexport enum BidReasonsEnum {\n  OTHER = 'Other',\n  REJECT_REASON = 'rejectReason',\n  REJECT_DESCRIPTION = 'rejectDescription',\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse } from '../../common';\nimport { Bid } from '../interfaces';\nimport { AddBidRequest, RejectBidRequest, SearchBidsRequest } from './bid.service.interfaces';\n\nexport class BidService extends BaseService {\n  bidsApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.bidsApiUrl = `${this.apiUrl}/marketplace/v1/bids`\n  }\n\n  search(req: SearchBidsRequest) {\n    return this.get<PagedResponse<Bid>, SearchBidsRequest>(this.bidsApiUrl, req);\n  }\n\n  create(req: AddBidRequest) {\n    return this.post<Bid, AddBidRequest>(this.bidsApiUrl, req);\n  }\n\n  reject(req: RejectBidRequest) {\n    return this.patch<Bid, RejectBidRequest>(this.bidsApiUrl, req);\n  }\n\n  getById(id: string) {\n    return this.get<Bid>(`${this.bidsApiUrl}/${id}`);\n  }\n\n  accept(id: string) {\n    return this.patch<Bid, object>(`${this.bidsApiUrl}/${id}`, {});\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse } from '../../common';\nimport {\n  Category\n} from '../interfaces';\nimport { ListCategoriesRequest, SearchCategoriesRequest } from './categories.service.interfaces';\n\nexport class CategoriesService extends BaseService {\n  catsApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.catsApiUrl = `${this.apiUrl}/marketplace/v1/categories`;\n  }\n\n  list(req: ListCategoriesRequest = {}) {\n    return this.get<Category[], ListCategoriesRequest>(`${this.catsApiUrl}/list`, req);\n  }\n\n  search(req: SearchCategoriesRequest = {}) {\n    return this.get<PagedResponse<Category>, SearchCategoriesRequest>(this.catsApiUrl, req);\n  }\n\n  getById(id: string) {\n    return this.get<Category>(`${this.catsApiUrl}/${id}`);\n  }\n\n  listFromAssets() {\n    return this.post<Category[], object>(`${this.catsApiUrl}/load`, {});\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { createQueryParams } from '../../common';\nimport { Listing, ListingWithAsset } from '../interfaces';\nimport {\n  EditPriceRequest,\n  GetListingsReportRequest,\n  SearchListingsRequest,\n  SearchListingsResponse,\n} from './listing.service.interfaces';\n\nexport class ListingService extends BaseService {\n  listingApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.listingApiUrl = `${this.apiUrl}/marketplace/v1/listings`;\n  }\n\n  search(req: SearchListingsRequest = {}) {\n    return this.get<SearchListingsResponse>(this.listingApiUrl, req);\n  }\n\n  editPrice(req: EditPriceRequest) {\n    return this.put<Listing, EditPriceRequest>(this.listingApiUrl, req);\n  }\n\n  reportDownloadUrl(req: GetListingsReportRequest) {\n    return this.get<SearchListingsResponse, GetListingsReportRequest>(`${this.listingApiUrl}/reports`, req);\n  }\n\n  getById(id: string) {\n    return this.get<Listing>(`${this.listingApiUrl}/${id}`);\n  }\n\n  removeById(id: string) {\n    return this.delete<Listing>(`${this.listingApiUrl}/${id}`);\n  }\n\n  getPublic(id: string) {\n    return this.get<Listing>(`${this.listingApiUrl}/${id}/public`);\n  }\n\n  getByAssetId(assetId: string) {\n    return this.get<ListingWithAsset>(`${this.listingApiUrl}/${assetId}/asset`);\n  }\n\n  getPublicByAssetId(assetId: string) {\n    return this.get<ListingWithAsset>(`${this.listingApiUrl}/${assetId}/public`);\n  }\n\n  removeByAssetId(assetId: string) {\n    return this.delete<void>(`${this.listingApiUrl}/${assetId}/asset`);\n  }\n\n  listingView(listingId: string) {\n    return this.put<boolean, object>(`${this.listingApiUrl}/${listingId}/viewed`, {});\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse } from '../../common';\nimport {\n  Order,\n  OrderStatistics,\n  OrderStore,\n  Question,\n  SalesTax,\n  SalesTaxRequest,\n  ShippingCost,\n  ShippingCostReq,\n  TotalSales,\n} from '../interfaces';\nimport { SearchListingsResponse } from './listing.service.interfaces';\nimport {\n  CancelOrderRequest,\n  DeliveredRequest,\n  GetOrdersReportRequest,\n  GetOrdersRequest,\n  GetSalesStatsRequest,\n  GetTotalSalesRequest,\n  OrderPaymentDetailsRequest,\n  OrderPaymentDetailsResponse,\n  OrderPaymentRequest,\n  SearchOrderStoreRequest,\n  SearchQuestionRequest,\n  ShippingOrderRequest,\n} from './order.service.interfaces';\n\nexport class OrdersService extends BaseService {\n  orderApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.orderApiUrl = `${this.apiUrl}/marketplace/v1/orders`;\n  }\n\n  reportDownloadUrl(req: GetOrdersReportRequest) {\n    return this.get<SearchListingsResponse, GetOrdersReportRequest>(`${this.orderApiUrl}/reports/order`, req);\n  }\n\n  search(req: GetOrdersRequest = {}) {\n    return this.get<PagedResponse<Order>, GetOrdersRequest>(this.orderApiUrl, req);\n  }\n\n  searchStore(req: SearchOrderStoreRequest = {}) {\n    return this.get<PagedResponse<OrderStore>, SearchOrderStoreRequest>(`${this.orderApiUrl}/search-store`, req);\n  }\n\n  searchQuestion(req: SearchQuestionRequest = {}) {\n    return this.get<PagedResponse<Question>>(`${this.orderApiUrl}/search-question`, req);\n  }\n\n  orderPayment(req: OrderPaymentRequest) {\n    return this.post<Order, OrderPaymentRequest>(`${this.orderApiUrl}/order-payment`, req);\n  }\n\n  shipping(req: ShippingOrderRequest) {\n    return this.put<Order, ShippingOrderRequest>(`${this.orderApiUrl}/shipping`, req);\n  }\n\n  delivered(req: DeliveredRequest) {\n    return this.put<Order, DeliveredRequest>(`${this.orderApiUrl}/delivered`, req);\n  }\n\n  cancel(req: CancelOrderRequest) {\n    return this.put<Order, CancelOrderRequest>(`${this.orderApiUrl}/${req.id}/cancel`, req);\n  }\n\n  getById(id: string) {\n    return this.get<Order>(`${this.orderApiUrl}/${id}`);\n  }\n\n  totalSales(req: GetTotalSalesRequest) {\n    return this.get<TotalSales>(`${this.orderApiUrl}/total-sales`, req);\n  }\n\n  salesTax(req: SalesTaxRequest) {\n    return this.get<SalesTax>(`${this.orderApiUrl}/sales-tax`, req);\n  }\n\n  shippingCost(req: ShippingCostReq) {\n    return this.get<ShippingCost[]>(`${this.orderApiUrl}/shipping-cost`, req);\n  }\n\n  stats(req: GetSalesStatsRequest) {\n    return this.get<OrderStatistics[]>(`${this.orderApiUrl}/stats`, req);\n  }\n\n  getPaymentDetails(req: OrderPaymentDetailsRequest) {\n    return this.get<OrderPaymentDetailsResponse>(`${this.orderApiUrl}/payment-details`, req);\n  }\n}\n","import { FileFormatEnum, FilteredRequest, PagedRequest } from '../../common';\nimport { PaymentTypeEnum } from '../../users';\nimport { OrderStatusEnum } from '../enums';\nimport { BuyerBillingAddress, BuyerShippingAddress, ExtraCharges } from '../interfaces';\n\nexport enum OrderTypeEnum {\n  SELL = 'SELL',\n  BUY = 'BUY',\n}\n\nexport type GetOrdersReportRequest = FilteredRequest<{\n  buyerId?: string;\n  sellerId?: string;\n  from?: string;\n  to?: string;\n  status?: OrderStatusEnum;\n  fileFormat?: FileFormatEnum;\n}>;\n\nexport type GetOrdersRequest = PagedRequest<{\n  orderType?: OrderTypeEnum;\n  userId?: string;\n  assetId?: string;\n  status?: OrderStatusEnum;\n  orderState?: OrderStatusEnum;\n}>;\n\nexport interface CreateOrderRequest {\n  listingId: string;\n  concurrencyStamp: string;\n}\n\nexport interface CreateOrdersResponse {\n  id: string;\n  listingId: string;\n  assetId: string;\n  sellerId: string;\n  buyerId: string;\n  price: number;\n  status: string;\n  createdAt: string;\n  concurrencyStamp: string;\n}\n\nexport type SearchOrderStoreRequest = PagedRequest<{\n  orderId?: string;\n  operation?: string;\n  createdBy?: string;\n}>;\n\nexport type SearchQuestionRequest = PagedRequest<{\n  parentId?: string;\n  hint?: string;\n}>;\n\nexport type OrderShippingInfoRequest = Omit<ExtraCharges, 'id'> & {\n  id: string;\n  concurrencyStamp: string;\n  shippingAddress: BuyerShippingAddress;\n  billingAddress: BuyerBillingAddress;\n  service: string;\n  price: number;\n  assetPrice: number;\n};\n\nexport interface OrderPaymentRequest {\n  listingId: string;\n  concurrencyStamp: string;\n  shippingAddress: BuyerShippingAddress;\n  billingAddress: BuyerBillingAddress;\n  serviceCode: number;\n  paymentType: PaymentTypeEnum;\n  nameOnCard: string;\n  cardNumber: string;\n  cvv: string;\n  expiryDate: string;\n  // Only required if paymentType === PaymentTypeEnum.Paypal\n  paypalId: string;\n}\n\nexport interface ShippingOrderRequest {\n  id: string;\n  concurrencyStamp: string;\n  status: OrderStatusEnum;\n  courier?: string;\n  trackingId?: string;\n  image?: string;\n  rejectReason?: string;\n  reasonDescription?: string;\n}\n\nexport interface DeliveredRequest {\n  id: string;\n  concurrencyStamp: string;\n  status: OrderStatusEnum;\n  feedback: FeedbackRequest[];\n  image: string;\n  courier?: string;\n  trackingId?: string;\n}\n\nexport interface FeedbackRequest {\n  id: string;\n  answer: string;\n  parentId?: string;\n}\n\nexport interface GetTotalSalesRequest {\n  sellerId?: string;\n  orgId?: string;\n}\n\nexport interface GetSalesStatsRequest {\n  sellerId?: string;\n  orgId?: string;\n  year: string;\n}\n\nexport interface CancelOrderRequest {\n  id: string;\n  concurrencyStamp: string;\n  reasonId: string;\n  comment: string;\n}\n\nexport interface OrderPaymentDetailsRequest {\n  listingId: string;\n  serviceCode?: string;\n  country?: string;\n  city?: string;\n  state?: string;\n  zip?: string;\n}\n\nexport interface OrderPaymentDetailsResponse {\n  publicKey: string;\n  merchantRefNum: string;\n  sellingPrice: number;\n  amount: number;\n  amountPaysafe: number;\n  accountId: string;\n  gasFee: number;\n  costTax: number;\n  shippingCost: number;\n  handlingFee: number;\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse } from '../../common';\nimport { Type } from '../interfaces';\nimport { ListTypesRequest, SearchTypesRequest } from './types.service.interfaces';\n\nexport class TypesService extends BaseService {\n  typesApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.typesApiUrl = `${this.apiUrl}/marketplace/v1/types`;\n  }\n\n  list(req: ListTypesRequest = {}) {\n    return this.get<Type[], ListTypesRequest>(`${this.typesApiUrl}/list`, req);\n  }\n\n  search(req: SearchTypesRequest = {}) {\n    return this.get<PagedResponse<Type>, SearchTypesRequest>(this.typesApiUrl, req);\n  }\n\n  getById(id: string) {\n    return this.get<Type>(`${this.typesApiUrl}/${id}`);\n  }\n\n  listFromAssets() {\n    return this.post<Type[], object>(`${this.typesApiUrl}/load`, {});\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse } from '../../common';\nimport { Wishlist, WishlistExtended } from '../interfaces';\nimport { CreateWishlistRequest, SearchWishlistRequest } from './wishlist.service.interfaces';\n\nexport class WishlistService extends BaseService {\n  wishlistApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.wishlistApiUrl = `${this.apiUrl}/marketplace/v1/wishlists`;\n  }\n\n  search(req: SearchWishlistRequest = {}) {\n    return this.get<PagedResponse<WishlistExtended>, SearchWishlistRequest>(this.wishlistApiUrl, req);\n  }\n\n  add(req: CreateWishlistRequest) {\n    return this.post<Wishlist, CreateWishlistRequest>(this.wishlistApiUrl, req);\n  }\n\n  getByAssetId(assetId: string) {\n    return this.get<Wishlist>(`${this.wishlistApiUrl}/${assetId}`);\n  }\n\n  remove(id: string) {\n    return this.delete<Wishlist>(`${this.wishlistApiUrl}/${id}`);\n  }\n}\n","import { AxiosProgressEvent } from 'axios';\nimport { BaseService, BaseServiceOptions } from '../api';\nimport { PagedRequest, PagedResponse } from '../common/interfaces/pagination';\nimport {\n  AddIngredientsRequest,\n  Allergen,\n  AllergenDietaryRequest,\n  DeleteIngredientsRequest,\n  Dietary,\n  GetIngredientsRequest,\n  GetMenuItemMapRequest,\n  GetMenuItemRequest,\n  GetMenuRequest,\n  Ingredient,\n  Menu,\n  MenuExportRequest,\n  MenuItem,\n  MenuItemAllergen,\n  MenuItemDietary,\n  MenuItemMap,\n  MenuItemMapRequest,\n  MenuItemRequest,\n  MenuRequest,\n  MenuUpdateRequest,\n  UpdateIngredientsRequest,\n  UpdateMenuItemRequest,\n} from './menu.service.interfaces';\n\nexport class MenuService extends BaseService {\n  protected menuApiUrl: string;\n  protected menuItemApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.menuApiUrl = `${this.apiUrl}/assets/v1/menus`;\n    this.menuItemApiUrl = `${this.apiUrl}/assets/v1/menu-items`;\n  }\n\n  getMenu(req: PagedRequest<GetMenuRequest>) {\n    return this.get<PagedResponse<Menu>>(this.menuApiUrl, req);\n  }\n\n  addMenu(req: MenuRequest) {\n    return this.post<Menu, MenuRequest>(this.menuApiUrl, req);\n  }\n\n  getMenuById(id: string) {\n    return this.get<Menu>(`${this.menuApiUrl}/${id}`);\n  }\n\n  updateMenu(req: MenuUpdateRequest) {\n    return this.put<Menu, MenuUpdateRequest>(`${this.menuApiUrl}/${req.id}`, req);\n  }\n\n  deleteMenu(id: string) {\n    return this.patch<Menu, any>(`${this.menuApiUrl}/${id}/archive`, {});\n  }\n\n  getMenuItems(req: PagedRequest<GetMenuItemRequest>) {\n    return this.get<PagedResponse<MenuItem>>(this.menuItemApiUrl, req);\n  }\n\n  addMenuItems(req: MenuItemRequest) {\n    return this.post<MenuItem, MenuItemRequest>(this.menuItemApiUrl, req);\n  }\n\n  getAllergen(req: PagedRequest<GetMenuItemRequest>) {\n    return this.get<PagedResponse<Allergen>>(`${this.menuItemApiUrl}/allergens`, req);\n  }\n\n  getDietary(req: PagedRequest<GetMenuItemRequest>) {\n    return this.get<PagedResponse<Dietary>>(`${this.menuItemApiUrl}/dietaries`, req);\n  }\n\n  getMenuItemsById(req: { id: string }) {\n    return this.get<MenuItem>(`${this.menuItemApiUrl}/${req.id}`);\n  }\n\n  updateMenuItem(req: UpdateMenuItemRequest) {\n    return this.put<MenuItem, UpdateMenuItemRequest>(`${this.menuItemApiUrl}/${req.id}`, req);\n  }\n\n  deleteMenuItem(req: { id: string }) {\n    return this.patch<MenuItem, any>(`${this.menuItemApiUrl}/${req.id}/archive`, {});\n  }\n\n  getMenuItemMap(req: PagedRequest<GetMenuItemMapRequest>) {\n    return this.get<PagedResponse<MenuItemMap>>(`${this.menuItemApiUrl}/menu-item-map`, req);\n  }\n\n  addMenuItemMap(req: MenuItemMapRequest) {\n    return this.post<MenuItemMap[], MenuItemMapRequest>(`${this.menuItemApiUrl}/menu-item-map`, req);\n  }\n\n  updateMenuItemMap(req: MenuItemMapRequest) {\n    return this.put<MenuItemMap[], MenuItemMapRequest>(`${this.menuItemApiUrl}/menu-item-map`, req);\n  }\n\n  deleteMenuItemMap(req: { menuId: string; menuItemId: string }) {\n    return this.delete<void>(`${this.menuItemApiUrl}/${req.menuId}/menu-item-map/${req.menuItemId}`);\n  }\n\n  getMenuItemAllergen(req: PagedRequest<{ menuItemId: string }>) {\n    return this.get<PagedResponse<MenuItemAllergen>>(`${this.menuItemApiUrl}/menu-item-allergens`, req);\n  }\n\n  addMenuItemAllergen(req: AllergenDietaryRequest) {\n    return this.post<MenuItemAllergen[], AllergenDietaryRequest>(`${this.menuItemApiUrl}/menu-item-allergens`, req);\n  }\n\n  updateMenuItemAllergen(req: AllergenDietaryRequest) {\n    return this.put<MenuItemAllergen[], AllergenDietaryRequest>(`${this.menuItemApiUrl}/menu-item-allergens`, req);\n  }\n\n  getMenuItemDietary(req: PagedRequest<{ menuItemId: string }>) {\n    return this.get<PagedResponse<MenuItemDietary>>(`${this.menuItemApiUrl}/menu-item-dietaries`, req);\n  }\n\n  addMenuItemDietary(req: AllergenDietaryRequest) {\n    return this.post<MenuItemDietary[], AllergenDietaryRequest>(`${this.menuItemApiUrl}/menu-item-dietaries`, req);\n  }\n\n  updateMenuItemDietary(req: AllergenDietaryRequest) {\n    return this.put<MenuItemDietary[], AllergenDietaryRequest>(`${this.menuItemApiUrl}/menu-item-dietaries`, req);\n  }\n\n  getMenuItemIngredients(req: GetIngredientsRequest) {\n    return this.get<PagedResponse<Ingredient>>(`${this.menuItemApiUrl}/menu-item-ingredients`, req);\n  }\n\n  addMenuItemIngredients(req: AddIngredientsRequest) {\n    return this.post<Ingredient[], AddIngredientsRequest>(`${this.menuItemApiUrl}/menu-item-ingredients`, req);\n  }\n\n  updateMenuItemIngredients(req: UpdateIngredientsRequest) {\n    return this.put<Ingredient, UpdateIngredientsRequest>(`${this.menuItemApiUrl}/menu-item-ingredients`, req);\n  }\n\n  deleteMenuItemIngredients(req: DeleteIngredientsRequest) {\n    return this.delete<void>(`${this.menuItemApiUrl}/${req.typeId}/menu-item-ingredients/${req.menuItemId}`);\n  }\n\n  menuExportById(req: MenuExportRequest, onProgress: (progressEvent: AxiosProgressEvent) => void) {\n    return this.get<void, MenuExportRequest>(`${this.menuApiUrl}/export-menu`, req, { onDownloadProgress: onProgress });\n  }\n}\n","export enum NotificationStatusEnum {\n  Read = 'READ',\n  Unread = 'UNREAD',\n}\n\nexport interface Notification {\n  id: string;\n  userId: string;\n  title: string;\n  message: string;\n  status: NotificationStatusEnum;\n  metadata: Record<string, any>;\n  createdAt: string;\n}\n\nexport enum EndUserNotificationEventNameEnum {\n  AcceptFollowRequest = \"accept_follow_request\",\n  BlockEndUser = \"block_end_user\",\n  BlockEndUserByOrg = \"block_end_user_by_org\",\n  ChangeEmail = \"change_email\",\n  CustomerAssetReport = \"customer_asset_report\",\n  Following = \"following\",\n  InviteAdmin = \"invite_admin\",\n  InviteEndUser = \"invite_end_user\",\n  GldInviteEndUser = \"gld_invite_end_user\",\n  GldInviteExistingEndUser = \"gld_invite_existing_end_user\",\n  GldAddedToCustomerFile = \"gld_added_to_customer_file\",\n  GldCustomerIvdtCreated = \"gld_customer_ivdt_created\",\n  GldReceivedCustomerFileRequest = \"gld_received_customer_file_request\",\n  GldCancelledCustomerFileRequest = \"gld_cancelled_customer_file_request\",\n  GldShareCustomerFileRequestHistory = \"gld_share_customer_file_request_history\",\n  RecurringEmailReport = \"recurring_email_report\",\n  ResetPassword = \"reset_password\",\n  SendFollowRequest = \"send_follow_request\",\n  ShareAsset = \"share_asset\",\n  ShareEndUserDeepLink = \"share_end_user_deep_link\",\n  ShareOrganizationDeepLink = \"share_organization_deep_link\",\n  ShareIvdt = \"share_ivdt\",\n  UnblockEndUser = \"unblock_end_user\",\n  UnblockEndUserByOrg = \"unblock_end_user_by_org\",\n  RemoveEndUser = \"remove_end_user\",\n  VdtMinted = \"vdt_minted\",\n  VerifyEmail = \"verify_email\",\n  VerifyPhone = \"verify_phone\",\n  MarketplaceEmail = \"marketplace_email\",\n  ContactUs = \"contact_us\",\n  SuspendOrder = \"suspend_order\",\n  UnsuspendOrder = \"unsuspend_order\",\n  BuyerBuyNow = \"buyer_buy_now\",\n  SellerBuyerPaid = \"seller_buyer_paid\",\n  BuyerOrderAccepted = \"buyer_order_accepted\",\n  BuyerOrderShipped = \"buyer_order_shipped\",\n  BuyerOrderDelivered = \"buyer_order_delivered\",\n  BuyerVDTTransferred = \"buyer_vdt_transferred\",\n  SellerOrderCancelled = \"seller_order_cancelled\",\n  BuyerPaymentRefunded = \"buyer_payment_refunded\",\n  SellerItemDelivered = \"seller_item_delivered\",\n  SellerFundsTransferred = \"seller_funds_transferred\",\n  SellerVDTTransferred = \"seller_vdt_transferred\",\n  BuyerItemReceived = \"buyer_item_received\",\n  SellerOrderAccepted = \"seller_order_accepted\",\n  SellerOrderShipped = \"seller_order_shipped\",\n  BuyerOrderCancelled = \"buyer_order_cancelled\",\n  BuyerReturnDelivered = \"buyer_return_delivered\",\n  SellerReturnDelivered = \"seller_return_delivered\",\n  SellerOrderDelivered = \"seller_order_delivered\",\n  SellerItemListed = \"seller_item_listed\",\n  SellerFirstBid = \"seller_first_bid\",\n  SellerAllBiddersRejected = \"seller_all_bidders_rejected\",\n  SellerAuctionEnd = \"seller_auction_end\",\n  SellerDelistAsset = \"seller_delist_asset\",\n  SellerNewHighestBid = \"seller_new_highestBid\",\n  BuyerNoLongerHighestBid = \"buyer_no_longer_highest_bid\",\n  BuyerBidAccept = \"buyer_bid_accept\",\n  BuyerTopFiveBidders = \"buyer_top_five_bidders\",\n  BuyerAllOtherBidders = \"buyer_all_other_bidders\",\n  BuyerBidRejected = \"buyer_bid_rejected\",\n}\n\nexport interface EndUserNotificationEvent {\n  name: EndUserNotificationEventNameEnum;\n  description: string;\n  isSms: boolean;\n  isPush: boolean;\n  isEmail: boolean;\n}\n","import * as qs from 'qs';\nimport { BaseService } from '../api/services/base-service';\nimport { PagedResponse } from '../common';\nimport {\n  EndUserNotificationEvent,\n  EndUserNotificationEventNameEnum,\n  Notification,\n  NotificationStatusEnum,\n} from './interfaces';\nimport {\n  RegisterPushNotificationTokenRequest,\n  RegisterPushNotificationTokenResponse,\n  SearchEndUserNotificationEventsRequest,\n  SearchNotificationsRequest,\n  SendMultiPushRequest,\n  SendSinglePushRequest,\n  UpdateEndUserNotificationEventsRequest,\n  UpdateNotificationStatusRequest,\n} from './notification.service.interfaces';\n\nexport class NotificationService extends BaseService {\n  private notifApiUrl = `${this.apiUrl}/notifications/v1/notifications`;\n\n  searchNotifications(req?: SearchNotificationsRequest) {\n    return this.get<PagedResponse<Notification>>(`${this.apiUrl}/notifications/v1/notifications`, req);\n  }\n\n  listNotifications(req?: SearchNotificationsRequest) {\n    return this.get<Notification[]>(`${this.apiUrl}/notifications/v1/notifications/list`, req);\n  }\n\n  searchAdminNotifications(req?: SearchNotificationsRequest) {\n    return this.get<PagedResponse<Notification>>(`${this.apiUrl}/notifications/v1/admin-notifications`, req);\n  }\n\n  listAdminNotifications(req?: SearchNotificationsRequest) {\n    return this.get<Notification[]>(`${this.apiUrl}/notifications/v1/admin-notifications/list`, req);\n  }\n\n  getNotificationById(id: string) {\n    return this.get<Notification>(`${this.apiUrl}/notifications/v1/notifications/${id}`);\n  }\n\n  deleteNotifications(ids: string[]) {\n    return this.delete<void>(\n      `${this.apiUrl}/notifications/v1/notifications`,\n      { ids },\n      { paramsSerializer: (p) => qs.stringify(p) }\n    );\n  }\n\n  updateNotificationStatus(id: string, status: NotificationStatusEnum) {\n    const req: UpdateNotificationStatusRequest = { status };\n    return this.patch<Notification, UpdateNotificationStatusRequest>(\n      `${this.apiUrl}/notifications/v1/notifications/${id}/status`,\n      req\n    );\n  }\n\n  registerPushNotificationToken(req: RegisterPushNotificationTokenRequest) {\n    return this.post<RegisterPushNotificationTokenResponse, RegisterPushNotificationTokenRequest>(\n      `${this.apiUrl}/notifications/v1/push/register`,\n      req\n    );\n  }\n\n  testSinglePush(req: SendSinglePushRequest) {\n    return this.post<void, SendSinglePushRequest>(`${this.apiUrl}/notifications/v1/push/test-single-push`, req);\n  }\n\n  testMultiPush(req: SendMultiPushRequest) {\n    return this.post<void, SendMultiPushRequest>(`${this.apiUrl}/notifications/v1/push/test-multi-push`, req);\n  }\n\n  searchEndUserEvents(req?: SearchEndUserNotificationEventsRequest) {\n    return this.get<PagedResponse<EndUserNotificationEvent>>(`${this.notifApiUrl}/end-user-events`, req);\n  }\n\n  listEndUserEvents(req?: SearchEndUserNotificationEventsRequest) {\n    return this.get<EndUserNotificationEvent[]>(`${this.notifApiUrl}/end-user-events/list`, req);\n  }\n\n  updateEndUserEvents(name: EndUserNotificationEventNameEnum, req: UpdateEndUserNotificationEventsRequest) {\n    return this.put<EndUserNotificationEvent, UpdateEndUserNotificationEventsRequest>(\n      `${this.notifApiUrl}/end-user-events/${name}`,\n      req\n    );\n  }\n\n  updateAdminNotificationStatus(id: string, status: NotificationStatusEnum) {\n    const req: UpdateNotificationStatusRequest = { status };\n    return this.patch<Notification, UpdateNotificationStatusRequest>(\n      `${this.apiUrl}/notifications/v1/admin-notifications/${id}/status`,\n      req\n    );\n  }\n\n  clearAdminNotification() {\n    return this.post<boolean, object>(\n      `${this.apiUrl}/notifications/v1/admin-notifications/clear`,\n      {}\n    );\n  }\n}\n","import { BaseService } from '../api/services/base-service';\nimport { PagedResponse } from '../common';\nimport { OrganizationVdt } from '../web3';\nimport {\n  AddContactRequest,\n  AddContactResponse,\n  AddOrganizationAddressRequest,\n  AddOrganizationAddressResponse,\n  InitVdtRequest,\n  ListOrganizationRequest,\n  OrganizationAddressResponse,\n  OrganizationResponse,\n  OrganizationWallet,\n  SearchOrganizationAddressRequest,\n  ShareOrganizationDeepLinkRequest,\n  UpdateOrganizationRequest,\n} from './interfaces';\n\nexport class OrganizationService extends BaseService {\n  async getOrganizations() {\n    // The interface for this is missing\n    return this.get<any>(`${this.apiUrl}/common-admin/v1/organizations`, {}, { timeout: 5000 });\n  }\n\n  async getOrganizationList(params: ListOrganizationRequest) {\n    return this.get<OrganizationResponse[]>(`${this.apiUrl}/common-admin/v1/organizations/list`, params);\n  }\n\n  async getOrganization(orgId: string) {\n    return this.get<OrganizationResponse>(`${this.apiUrl}/common-admin/v1/organizations/${orgId}`, {});\n  }\n\n  async searchOrganizationAddresses(req: SearchOrganizationAddressRequest) {\n    return this.get<PagedResponse<OrganizationAddressResponse>>(\n      `${this.apiUrl}/common-admin/v1/organization-profiles/addresses`,\n      req\n    );\n  }\n\n  async getOrganizationMainAddress(orgId: string) {\n    return this.get<OrganizationAddressResponse>(\n      `${this.apiUrl}/common-admin/v1/organization-profiles/${orgId}/addresses/main`,\n      {}\n    );\n  }\n\n  async getWallet(orgId: string) {\n    return this.get<OrganizationWallet>(\n      `${this.apiUrl}/common-admin/v1/organizations/${orgId}/wallet`,\n      {},\n      { timeout: 5000 }\n    );\n  }\n\n  async initVdt(orgId: string, payload: InitVdtRequest) {\n    return this.post<void, InitVdtRequest>(\n      `${this.apiUrl}/common-admin/v1/organizations/${orgId}/initiate-vdt`,\n      payload,\n      { headers: { 'x-organization-id': orgId } }\n    );\n  }\n\n  async canSetupOrg(orgId: string) {\n    return this.get<boolean>(`${this.apiUrl}/common-admin/v1/organizations/${orgId}/can-setup`, {});\n  }\n\n  async getOrganizationVdt(orgId: string) {\n    return this.get<OrganizationVdt>(`${this.apiUrl}/web3/v1/nft/organization-vdt/${orgId}`, {});\n  }\n\n  async update(orgId: string, payload: UpdateOrganizationRequest) {\n    return this.put<void, UpdateOrganizationRequest>(`${this.apiUrl}/common-admin/v1/organizations/${orgId}`, payload, {\n      headers: { 'x-organization-id': orgId },\n    });\n  }\n\n  async addContact(orgId: string, payload: AddContactRequest) {\n    return this.post<AddContactResponse, AddContactRequest>(\n      `${this.apiUrl}/common-admin/v1/organizations/${orgId}/contacts`,\n      payload,\n      { headers: { 'x-organization-id': orgId } }\n    );\n  }\n\n  async addAddress(payload: AddOrganizationAddressRequest) {\n    return this.post<AddOrganizationAddressResponse, AddOrganizationAddressRequest>(\n      `${this.apiUrl}/common-admin/v1/organization-profiles/addresses`,\n      payload,\n      { headers: { 'x-organization-id': payload?.orgId } }\n    );\n  }\n\n  async shareDeepLink(orgId: string, req: ShareOrganizationDeepLinkRequest) {\n    return this.post<void, ShareOrganizationDeepLinkRequest>(\n      `${this.apiUrl}/common-admin/v1/organizations/${orgId}/share-deep-link`,\n      req\n    );\n  }\n}\n","import { BaseService } from '../api/services/base-service';\nimport {\n  AddLocationRequest,\n  ListLocationsRequest,\n  LocationResponse,\n  Location\n} from './interfaces';\n\nexport class OrganizationLocationService extends BaseService {\n  async getLocationList(params: ListLocationsRequest) {\n    return this.get<LocationResponse[]>(`${this.apiUrl}/common-admin/v1/organization-locations/list`, params);\n  }\n\n  async addLocation(orgId: string, req: AddLocationRequest) {\n    return this.post<LocationResponse, AddLocationRequest>(`${this.apiUrl}/common-admin/v1/organization-locations/${orgId}`, req);\n  }\n\n  async getLocation(params: {id: string, appName?: string }) {\n    return this.get<Location>(`/common-admin/v1/organization-locations/`+params.id, params);\n  }\n}\n","\nexport enum ReportHistoryStatusEnum {\n  REQUESTED = 'REQUESTED',\n  IN_PROGRESS = 'IN_PROGRESS',\n  COMPLETED = 'COMPLETED',\n  FAILED = 'FAILED',\n}\n\nexport enum ReportHistoryTypeEnum {\n  SELLER_LISTING = 'SELLER_LISTING',\n  SELLER_ORDERS = 'SELLER_ORDERS',\n  BUYER_ORDERS = 'BUYER_ORDERS',\n}","import { BaseService, BaseServiceOptions } from '../api/services/base-service';\nimport { PagedResponse } from '../common';\nimport { ReportHistory } from './interfaces';\nimport { SearchReportHistoriesRequest } from './reports.service.interfaces';\n\nexport class ReportsService extends BaseService {\n  reportsApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.reportsApiUrl = `${this.apiUrl}/reports/v1`;\n  }\n\n  searchHistories(req: SearchReportHistoriesRequest) {\n    return this.get<PagedResponse<ReportHistory>>(`${this.reportsApiUrl}/histories/search`, req);\n  }\n}\n","export enum UserTypeEnum {\n  EndUser = 'end-user',\n  Admin = 'admin',\n}\n\nexport enum ProfileTypeEnum {\n  Buyer = 'buyer',\n  Seller = 'seller',\n  Creator = 'creator',\n}\n\nexport enum UserRoleEnum {\n  SuperUser = 'super_user',\n  AdminUser = 'admin_user',\n  SystemUser = 'system_user',\n  BusinessUser = 'business_user',\n  MarketingUser = 'marketing_user',\n  CustomerSupportUser = 'cust_support_user',\n  TechSupportUser = 'tech_support_user',\n  ProductUser = 'product_user',\n  Client = 'client',\n  Official = 'official',\n  FirstOrgUser = 'first_org_user',\n  Member = 'member',\n}\n\nexport enum UserRoleIdEnum {\n  Client = 1,\n  Official = 2,\n  FirstOrgUser = 3,\n  Member = 4,\n  Inspector = 5,\n  Buyer = 6,\n  Seller = 6,\n}\n\nexport enum VerifyCredentialTypeEnum {\n  Pin = 'PIN',\n  Otp = 'OTP',\n  Face = 'FACE',\n  Fyc = 'FYC',\n}\n\nexport enum SocialMediaSiteTypeEnum {\n  Facebook = 'Facebook',\n  Twitter = 'Twitter',\n  Instagram = 'Instagram',\n  LinkedIn = 'LinkedIn',\n  Youtube = 'Youtube',\n  Github = 'Github',\n  Reddit = 'Reddit',\n  Pinterest = 'Pinterest',\n  Tumbler = 'Tumbler',\n}\n\nexport enum PaymentTypeEnum {\n  BankAccount = 'BankAccount',\n  NetBanking = 'NetBanking',\n  Card = 'Card',\n  Paypal = 'Paypal',\n}\n\nexport enum AddressTypeEnum {\n  Home = 'Home',\n  Office = 'Office',\n  Warehouse = 'Warehouse',\n  Company = 'Company',\n  Factory = 'Factory',\n  Others = 'Others',\n}\n\nexport enum DocumentStatusEnum {\n  Pending = 'Pending',\n  Verified = 'Verified',\n  Rejected = 'Rejected',\n}\n\nexport enum SellerTypeEnum {\n  Individual = 'Individual',\n  Company = 'Company',\n}\n\nexport enum ConsentActionTypesEnum {\n  Privacy = 'privacy',\n  Age = 'age',\n}\n","export enum BeingLevelEnum {\n  GovWitness = 1,\n  GovRealId = 2,\n  SecGovId = 3,\n  WitnessConfirm = 4,\n  MultiEvents = 5,\n  Human = 6,\n}\n\nexport interface BeingIdHistory {\n  level: number;\n  timestamp: string;\n}\n\nexport interface BeingId {\n  userId: string;\n  updatedAt: string;\n  level: number;\n  history: BeingIdHistory[];\n}","import { AttachmentData } from '../../common';\nimport { DocumentStatusEnum } from '../enums';\n\n// Intentionally has \"Bit\" prefix to avoid any mistakes with HTML's \"Document\"\nexport interface BitDocument {\n  id: string;\n  profileId: string;\n  typeId: number;\n  userId: string;\n  number: string;\n  status: DocumentStatusEnum;\n  createdAt: string;\n  updatedAt: string;\n  attachments: AttachmentData[];\n}\n\nexport enum EGovIdType {\n  Unknown = \"Unknown\",\n  Passport = \"Passport\",\n  Visa = \"Visa\",\n  DriverLicense = \"Drivers License\",\n  IdCard = \"Identification Card\",\n  Permit = \"Permit\",\n  Currency = \"Currency\",\n  ResidenceDoc = \"Residence Document\",\n  TravelDoc = \"Travel Document\",\n  BirthCert = \"Birth Certificate\",\n  VehicleReg = \"Vehicle Registration\",\n  Other = \"Other\",\n  WeaponLicense = \"Weapon License\",\n  TribalId = \"Tribal Identification\",\n  VoterId = \"Voter Identification\",\n  Military = \"Military\",\n  TaxId = \"Tax Identification\",\n  FederalId = \"Federal ID\",\n  MedicalCard = \"Medical Card\",\n}\n\nexport enum EFycCheckStatus {\n  Ok = \"OK\",\n  Fail = \"FAIL\",\n  Unknown = \"UNKNOWN\",\n}\n\nexport interface FycDocument {\n  userId: string,\n  govIdType: EGovIdType,\n  sessionId: string,\n  govIdName: string,\n  govIdDescription: string,\n  totalScoreStatus: EFycCheckStatus,\n  livenessScoreStatus: EFycCheckStatus,\n  faceRecognitionScoreStatus: EFycCheckStatus,\n  incodeIdValidationScoreStatus: EFycCheckStatus,\n  idOcrValidationScoreStatus: EFycCheckStatus,\n  governmentScoreStatus: EFycCheckStatus,\n  expireAt: string\n}","import { ApiResponse } from '../../api/interfaces/api-response';\nimport { IpfsMetadata } from '../../common';\nimport { SellerTypeEnum, SocialMediaSiteTypeEnum } from '../enums';\nimport { AddAddressRequest } from '../services';\nimport { BaseAddress } from './address';\nimport { EndUser } from './user';\n\nexport interface Profile {\n  id: string;\n  userId: string;\n  appName: string;\n  isDefault: boolean;\n  createdAt: string;\n  updateAt?: string;\n}\n\nexport interface SocialMediaSiteData {\n  type: SocialMediaSiteTypeEnum;\n  value: string;\n}\n\nexport interface CreatorProfile extends Profile {\n  officialSiteUrl?: string;\n  bio?: string;\n  socialMediaSites: SocialMediaSiteData[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BuyerProfile extends Profile { }\n\nexport interface SellerProfile extends Profile {\n  type: SellerTypeEnum;\n  taxId: string;\n}\n\nexport enum EAddressType {\n  Billing = 'Billing',\n  Home = 'Home',\n  Office = 'Office',\n  Warehouse = 'Warehouse',\n  Company = 'Company',\n  Factory = 'Factory',\n  Others = 'Others',\n}\n\nexport enum EBeingLevel {\n  GovWitness = 1,\n  GovRealId = 2,\n  SecGovId = 3,\n  WitnessConfirm = 4,\n  MultiEvents = 5,\n  Human = 6,\n}\n\ninterface SocialMedia {\n  type: string;\n  value: string;\n}\n\ninterface DocumentAttachments {\n  name: string;\n  data: string;\n}\n\ninterface BeingIdHistory {\n  level: number;\n  timestamp: string;\n}\n\nexport type ShippingDetails = {\n  id?: string;\n  type: EAddressType;\n  name: string;\n  address: string;\n  phoneNumber: string;\n  city: string;\n  state: string;\n  zip: string;\n  country: string;\n  shipInternationally: boolean;\n  isDefault?: boolean;\n};\n\nexport interface GetProfilePayload {\n  userId: string;\n}\n\nexport type GetEndUserAddressesPayload = {\n  userId?: string;\n  name?: string;\n  address?: string;\n  $ids?: string[];\n  $order?: string;\n};\n\nexport interface SocialMediaSite {\n  type: string;\n  value: string;\n}\n\nexport interface GetCreatorProfileRes {\n  id: string;\n  userId: string;\n  appName: string;\n  isDefault: boolean;\n  createdAt: string;\n  updateAt?: string;\n  officialSiteUrl?: string;\n  bio?: string;\n  socialMediaSites?: SocialMediaSite[];\n  // memberDetails: {\n  //   beingId: string;\n  //   beingIdGrad: string;\n  //   memberSince: string;\n  //   type: string;\n  //   user: string;\n  // };\n}\nexport type GetCreatorProfilesListRes = GetCreatorProfileRes[];\n\nexport interface GetSellerProfileRes {\n  document_ids: string[];\n  shippingDetails: [\n    {\n      address: string;\n      city: string;\n      country: string;\n      id: string;\n      name: string;\n      phone_number: string;\n      state: string;\n      type: string;\n      zip: string;\n    }\n  ];\n  id: string;\n  type: string;\n  userId: string;\n}\n\nexport type CreateProfileRes = ApiResponse<EndUser>;\n\nexport interface UpdateAvatarInput {\n  image: string;\n}\n\nexport interface UpdateFaceTemplateInput {\n  template: string;\n}\n\nexport interface VerifyCredentialsPayload {\n  email?: string;\n  photoBase64?: string;\n  userId?: string;\n  transactionId?: string;\n  token?: string;\n}\n\nexport interface VerifyCredentialsInput {\n  type: string;\n  faceCredentials?: {\n    email: string;\n    photo: string;\n  };\n  fycCredentials?: {\n    userId?: string;\n    transactionId?: string;\n    token?: string;\n  };\n}\n\nexport type VerifyCredentialsRes = ApiResponse<{ token: string }>;\n\nexport interface GetDeviceByIdPayload {\n  deviceId: string;\n}\n\nexport interface GetDeviceByExternalIdPayload {\n  externalId: string;\n}\n\nexport type RegisterDevicePayload = RegisterDeviceInput;\n\nexport interface RegisterDeviceInput {\n  appName: string;\n  owner: {\n    id: string;\n    isPersonal: boolean;\n  };\n  externalId: string;\n  name: string;\n  typeId: number;\n  deviceInfo?: {\n    model?: string;\n    os?: string;\n    imei?: string;\n    macAddress?: string;\n  };\n  locationId?: string;\n  latitude: number;\n  longitude: number;\n  meanSeaLevel: number;\n  platform: string;\n  recipientAddress: string;\n}\n\nexport interface GetDeviceVdtResponse {\n  platform: string;\n  immutableTime: string;\n  nftTokenId: string;\n  nftMetadataUrl: string;\n  nftSmartContractAddress: string;\n  immutableTransactionHash: string;\n  walletAddress: string;\n  deviceId: string;\n}\n\nexport interface CreatorProfilePayload {\n  id?: string;\n  officialSiteUrl?: string;\n  bio?: string;\n  socialMediaSites?: SocialMedia[];\n  isDefault: boolean;\n}\n\nexport interface CreateSellerProfilePayload {\n  type: 'Company' | 'Individual';\n  userId: string;\n  appName: string;\n  isDefault: boolean;\n}\n\nexport interface CreateSellerProfileRes {\n  id: string;\n  userId: string;\n  type: 'Company' | 'Individual';\n  shippingDetails: ShippingDetails[];\n  document_ids: [];\n  tin: string;\n  paymentDetails: {\n    bankName: string;\n    accountNumber: string;\n    bankIFSCCode: string;\n  };\n  createdAt: string;\n  updatedAt: string;\n}\n\nexport interface GetDocumentsTypesRes {\n  items: [\n    {\n      id: string;\n      name: string;\n      photoRequirements: [\n        {\n          name: string;\n        }\n      ];\n    }\n  ];\n  page: number;\n  perPage: number;\n  totalPages: number;\n  totalCount: number;\n}\n\nexport interface GetDocumentsRes {\n  attachments: [\n    {\n      name: string;\n      path: string;\n      url: string;\n    }\n  ];\n  id: string;\n  number: string;\n  status: string;\n  typeId: string;\n  userId: string;\n}\nexport interface CreateDocumentPayload {\n  userId: string;\n  typeId: number;\n  number: string;\n  attachments: DocumentAttachments[];\n}\n\nexport interface CreateDocumentRes {\n  id?: string;\n  userId: string;\n  typeId: string;\n  number: string;\n  attachments: [{ name: string; data: string; url?: string }];\n  status?: string;\n}\n\nexport type CreateAddressesRes = BaseAddress;\n\nexport type UpdateAddressPayload = AddAddressRequest & { id: string };\n\nexport type CreateShippingAddressesRes = BaseAddress & {\n  id?:string;\n  userId:string;\n  profileId: string;\n  isDefault: boolean;\n  phoneNumber: string;\n  shipInternationally?: boolean;\n};\n\nexport type CreateSellerDocumentPayload = CreateDocumentPayload & {\n  docId?: string;\n  profileId: string;\n};\n\nexport type CreateSellerDocumentRes = CreateDocumentRes & {\n  profileId: string;\n};\n\nexport type DeleteShippingAddressPayload = {\n  id: string;\n  profileId: string;\n};\n\nexport type PaymentDataProps = {\n  bankName?: string;\n  accountNumber?: string;\n  routingNumber?: string;\n  nameOnCard?: string;\n  cardNumber?: string;\n  expiryDate?: string;\n  cvv?: string;\n  username?: string;\n  email?: string;\n};\n\nexport type CreatePaymentPayload = {\n  userId?: string;\n  type?: string;\n  isDefault?: boolean;\n  profileId?: string;\n  paymentDetailId?: string;\n  data?: PaymentDataProps;\n};\n\nexport type CreatePaymentRes = CreatePaymentPayload & {\n  id?: string;\n  createdAt?: string;\n  updatedAt?: string;\n};\n\nexport type GetBuyerProfileRes = {\n  id: string;\n  userId: string;\n  appName: string;\n  isDefault: true;\n  createdAt: string;\n  updateAt: string;\n};\n\nexport type CreateBuyerProfilePayload = {\n  userId: string;\n  appName: string;\n  isDefault: boolean;\n};\n\nexport interface ValidateDevicePayload {\n  id: string;\n  externalId: string;\n  isPersonal: boolean;\n}\n\nexport interface GetOrganizationProfileRes {\n  id: string;\n  name: string;\n  description?: string;\n  contacts?: {\n    id: string;\n    name: string;\n    job: string;\n    email: string;\n    phone: string;\n  }[];\n  logoUrl?: string;\n  isSuper: string;\n  createdAt?: string;\n  updatedAt?: string;\n}\nexport interface GetOrganizationProfileByIdRes {\n  userId: string;\n  orgId: string;\n  startedAt: string;\n  jobTitle: string;\n  endedAt: string;\n}\nexport interface GetUserRolesRes {\n  global?: string[];\n  apps?: any;\n}\n\nexport interface UserVdtResponse {\n  platform: string;\n  immutableTime: string;\n  nftTokenId: string;\n  nftMetadataUrl: string;\n  nftSmartContractAddress: string;\n  immutableTransactionHash: string;\n  walletAddress: string;\n  userId: string;\n}\n\nexport interface UserVdtByQrIdResponse {\n  platform: string;\n  immutableTime: string;\n  nftTokenId: string;\n  nftMetadataUrl: string;\n  nftSmartContractAddress: string;\n  immutableTransactionHash: string;\n  walletAddress: string;\n  userId: string;\n  ipfsMetadata: IpfsMetadata;\n}\n\nexport interface GetUserBeingIdRes {\n  userId: string;\n  updatedAt: string;\n  level: number;\n  history: BeingIdHistory[];\n}\n\nexport interface SetUserBeingIdPayload {\n  userId: string;\n  level: number;\n}\n\nexport interface RecalculateUserBeingIdPayload {\n  userId: string;\n  sessionId?: number;\n  forceLevel?: boolean;\n}\n\nexport interface CompleteOnboardingPayload {\n  userId: string;\n  sessionId: string;\n}\n\nexport interface EndUserOrganizationResponse {\n  userId: string;\n  orgId: string;\n  startedAt: string;\n  jobTitle: string;\n  endedAt: string;\n}\n\nexport interface GetOrganizationsRes {\n  items: [\n    {\n      userId: string;\n      orgId: string;\n      startedAt: string;\n      jobTitle: string;\n      endedAt: string;\n    }\n  ];\n  page: number;\n  perPage: number;\n  totalPages: number;\n  totalCount: number;\n}\n\nexport interface OrganizationInviteResponse {\n  id: string;\n  type?: { description?: string };\n  email: string;\n  appName: string;\n  orgId: string;\n  jobTitle: string;\n  roleIds: string[];\n  createdAt: string;\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\r\nimport { UserTypeEnum } from '../enums';\r\nimport { UserAddress } from '../interfaces';\r\nimport {\r\n  AddAddressRequest,\r\n  EditAddressRequest,\r\n  ListAddressesRequest,\r\n  SearchAddressesRequest,\r\n} from './address.service.interfaces';\r\nimport { PagedResponse } from '../../common';\r\n\r\ntype AddressServiceOptions = BaseServiceOptions & { userType: UserTypeEnum };\r\n\r\nexport class AddressService extends BaseService {\r\n  protected addressApiUrl: string;\r\n\r\n  constructor(opts: AddressServiceOptions) {\r\n    super(opts);\r\n    this.addressApiUrl = `${this.apiUrl}/users/v1/${opts.userType}/addresses`;\r\n  }\r\n\r\n  searchAddresses(req: SearchAddressesRequest) {\r\n    return this.get<PagedResponse<UserAddress>>(this.addressApiUrl, req);\r\n  }\r\n\r\n  listAddresses(req: ListAddressesRequest) {\r\n    return this.get<UserAddress[]>(`${this.addressApiUrl}/list`, req);\r\n  }\r\n\r\n  addAddress(req: AddAddressRequest) {\r\n    return this.post<UserAddress, AddAddressRequest>(`${this.addressApiUrl}`, req);\r\n  }\r\n\r\n  getMainAddress() {\r\n    return this.get<UserAddress>(`${this.addressApiUrl}/main`);\r\n  }\r\n\r\n  getAddressById(id: string) {\r\n    return this.get<UserAddress>(`${this.addressApiUrl}/${id}`);\r\n  }\r\n\r\n  editAddress(id: string, req: EditAddressRequest) {\r\n    return this.put<UserAddress, EditAddressRequest>(`${this.addressApiUrl}/${id}`, req);\r\n  }\r\n\r\n  removeAddress(id: string) {\r\n    return this.delete<void>(`${this.addressApiUrl}/${id}`);\r\n  }\r\n}\r\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PaymentInfo } from '../interfaces';\nimport { AddPaymentDetailRequest, EditPaymentDetailRequest, ListPaymentDetailsRequest } from './payment-details.service.interfaces';\n\nexport type PaymentDetailsServiceOptions = BaseServiceOptions & { profileApiUrl: string };\n\nexport class PaymentDetailsService extends BaseService {\n  private profileApiUrl: string;\n\n  constructor(opts: PaymentDetailsServiceOptions) {\n    super(opts);\n    this.profileApiUrl = opts.profileApiUrl;\n  }\n\n  listPaymentDetails(profileId: string, req: ListPaymentDetailsRequest) {\n    return this.get<PaymentInfo[]>(`${this.profileApiUrl}/${profileId}/payment-details`, req);\n  }\n\n  addPaymentDetails(profileId: string, req: AddPaymentDetailRequest) {\n    return this.post<PaymentInfo, AddPaymentDetailRequest>(`${this.profileApiUrl}/${profileId}/payment-details`, req);\n  }\n\n  getDefaultPaymentDetails(profileId: string) {\n    return this.get<PaymentInfo>(`${this.profileApiUrl}/${profileId}/payment-details/default`);\n  }\n\n  getPaymentDetailsById(profileId: string, paymentDetailId: string) {\n    return this.get<PaymentInfo>(`${this.profileApiUrl}/${profileId}/payment-details/${paymentDetailId}`);\n  }\n\n  editPaymentDetails(profileId: string, paymentDetailId: string, req: EditPaymentDetailRequest) {\n    return this.put<PaymentInfo, EditPaymentDetailRequest>(`${this.profileApiUrl}/${profileId}/payment-details/${paymentDetailId}`, req);\n  }\n\n  removePaymentDetails(profileId: string, paymentDetailId: string) {\n    return this.delete<void>(`${this.profileApiUrl}/${profileId}/payment-details/${paymentDetailId}`);\n  }\n}","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { ProfileTypeEnum, UserTypeEnum } from '../enums';\nimport { Profile } from '../interfaces';\nimport { AddProfileRequest, EditProfileRequest, ListProfilesRequest } from './profile.service.interfaces';\n\nexport type ProfileServiceOptions = BaseServiceOptions & { profileType: ProfileTypeEnum };\n\nexport class ProfileService<TProfile extends Profile> extends BaseService {\n  protected profileApiUrl: string;\n\n  constructor(opts: ProfileServiceOptions) {\n    super(opts);\n    // Examples:\n    // - /users/v1/end-user/buyer\n    // - /users/v1/end-user/seller\n    // - /users/v1/end-user/creator\n    this.profileApiUrl = `${this.apiUrl}/users/v1/${UserTypeEnum.EndUser}/${opts.profileType}`;\n  }\n\n  listProfiles(req: ListProfilesRequest) {\n    return this.get<TProfile[]>(`${this.profileApiUrl}/list`, req);\n  }\n\n  getDefaultProfile() {\n    return this.get<TProfile>(`${this.profileApiUrl}/default`);\n  }\n\n  getProfileById(id: string) {\n    return this.get<TProfile>(`${this.profileApiUrl}/${id}`);\n  }\n\n  editProfile(id: string, req: EditProfileRequest) {\n    return this.put<TProfile, EditProfileRequest>(`${this.profileApiUrl}/${id}`, req);\n  }\n\n  removeProfile(id: string) {\n    return this.delete<void>(`${this.profileApiUrl}/${id}`);\n  }\n\n  addProfile(req: AddProfileRequest) {\n    return this.post<TProfile, AddProfileRequest>(`${this.profileApiUrl}`, req);\n  }\n}","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { ShippingAddress } from '../interfaces';\nimport {\n  ProfileAddShippingAddressRequest,\n  EditShippingAddressRequest,\n  ListShippingAddressesRequest,\n} from './shipping-address.service.interfaces';\n\nexport type ShippingAddressServiceOptions = BaseServiceOptions & { profileApiUrl: string };\n\nexport class ShippingAddressService extends BaseService {\n  private profileApiUrl: string;\n\n  constructor(opts: ShippingAddressServiceOptions) {\n    super(opts);\n    this.profileApiUrl = opts.profileApiUrl;\n  }\n\n  listShippingAddresses(profileId: string, req: ListShippingAddressesRequest) {\n    return this.get<ShippingAddress[]>(`${this.profileApiUrl}/${profileId}/shipping-addresses`, req);\n  }\n\n  addShippingAddress(profileId: string, req: ProfileAddShippingAddressRequest) {\n    return this.post<ShippingAddress, ProfileAddShippingAddressRequest>(\n      `${this.profileApiUrl}/${profileId}/shipping-addresses`,\n      req\n    );\n  }\n\n  getDefaultShippingAddress(profileId: string) {\n    return this.get<ShippingAddress>(`${this.profileApiUrl}/${profileId}/shipping-addresses/default`);\n  }\n\n  getShippingAddressById(profileId: string, addressId: string) {\n    return this.get<ShippingAddress>(`${this.profileApiUrl}/${profileId}/shipping-addresses/${addressId}`);\n  }\n\n  editShippingAddress(profileId: string, addressId: string, req: EditShippingAddressRequest) {\n    return this.put<ShippingAddress, EditShippingAddressRequest>(\n      `${this.profileApiUrl}/${profileId}/shipping-addresses/${addressId}`,\n      req\n    );\n  }\n\n  removeShippingAddress(profileId: string, addressId: string) {\n    return this.delete<void>(`${this.profileApiUrl}/${profileId}/shipping-addresses/${addressId}`);\n  }\n}\n","import { BaseServiceOptions } from '../../api/services/base-service';\nimport { ProfileTypeEnum } from '../enums';\nimport { BuyerProfile, CreatePaymentRes, CreateShippingAddressesRes } from '../interfaces';\nimport { PaymentDetailsService } from './payment-details.service';\nimport { WithPaymentDetails } from './payment-details.service.interfaces';\nimport { ProfileService } from './profile.service';\nimport { AddProfileRequest, AddShippingAddressRequest, EditProfileRequest } from './profile.service.interfaces';\nimport { CreateBuyerProfilePayload, CreatePaymentPayload, GetBuyerProfileRes } from '../interfaces';\nimport { ShippingAddressService } from './shipping-address.service';\nimport { WithShippingAddress } from './shipping-address.service.interfaces';\n\ntype EditBuyerProfileRequest = EditProfileRequest;\ntype AddBuyerProfileRequest = AddProfileRequest;\n\nexport class BuyerProfileService\n  extends ProfileService<BuyerProfile>\n  implements WithPaymentDetails, WithShippingAddress\n{\n  paymentDetails: PaymentDetailsService;\n  shippingAddress: ShippingAddressService;\n\n  constructor(opts: BaseServiceOptions) {\n    super({ ...opts, profileType: ProfileTypeEnum.Buyer });\n    this.paymentDetails = new PaymentDetailsService({ ...opts, profileApiUrl: this.profileApiUrl });\n    this.shippingAddress = new ShippingAddressService({ ...opts, profileApiUrl: this.profileApiUrl });\n  }\n\n  editProfile(id: string, req: EditBuyerProfileRequest) {\n    return this.put<BuyerProfile, EditBuyerProfileRequest>(`${this.profileApiUrl}/${id}`, req);\n  }\n\n  addProfile(req: AddBuyerProfileRequest) {\n    return this.post<BuyerProfile, AddBuyerProfileRequest>(this.profileApiUrl, req);\n  }\n\n  getBuyerProfile() {\n    return this.get<GetBuyerProfileRes>(`${this.apiUrl}/users/v1/end-user/buyer/default`, {}, { timeout: 5000 });\n  }\n\n  getBuyerProfilebyId(buyerId: string) {\n    return this.get<GetBuyerProfileRes>(`${this.apiUrl}/users/v1/end-user/buyer/${buyerId}`, {}, { timeout: 5000 });\n  }\n\n  getBuyerAddresses(profileId: string) {\n    return this.get<CreateShippingAddressesRes[]>(\n      `${this.apiUrl}/users/v1/end-user/buyer/${profileId}/shipping-addresses`,\n      {},\n      { timeout: 5000 }\n    );\n  }\n\n  getBuyerPaymentDetails(profileId: string) {\n    return this.get<CreatePaymentRes[]>(\n      `${this.apiUrl}/users/v1/end-user/buyer/${profileId}/payment-details`,\n      {},\n      { timeout: 5000 }\n    );\n  }\n\n  createBuyerProfile(payload: CreateBuyerProfilePayload) {\n    return this.post<GetBuyerProfileRes, CreateBuyerProfilePayload>(`${this.apiUrl}/users/v1/end-user/buyer`, payload, {\n      timeout: 5000,\n    });\n  }\n  updateBuyerProfile(payload: CreateBuyerProfilePayload) {\n    return this.patch<GetBuyerProfileRes, CreateBuyerProfilePayload>(`${this.apiUrl}/users/v1/end-user/buyer`, payload);\n  }\n  addBuyerAddress(payload: AddShippingAddressRequest) {\n    return this.post<CreateShippingAddressesRes, AddShippingAddressRequest>(\n      `${this.apiUrl}/users/v1/end-user/buyer/${payload.profileId}/shipping-addresses`,\n      payload,\n      { timeout: 5000 }\n    );\n  }\n  addBuyerPaymentDetails(payload: CreatePaymentPayload) {\n    return this.post<CreatePaymentRes, CreatePaymentPayload>(\n      `${this.apiUrl}/users/v1/end-user/buyer/${payload.profileId}/payment-details`,\n      payload,\n      { timeout: 5000 }\n    );\n  }\n\n  updateBuyerAddress(payload: AddShippingAddressRequest) {\n    return this.put<CreateShippingAddressesRes, AddShippingAddressRequest>(\n      `${this.apiUrl}/users/v1/end-user/buyer/${payload.profileId}/shipping-addresses/${payload.addressId}`,\n      payload,\n      { timeout: 5000 }\n    );\n  }\n\n  deleteBuyerAddress(payload: { profileId: string; addressId: string }) {\n    return this.delete(\n      `${this.apiUrl}/users/v1/end-user/buyer/${payload.profileId}/shipping-addresses/${payload.addressId}`\n    );\n  }\n\n  updateBuyerPaymentDetails(payload: any) {\n    return this.put<CreatePaymentRes, CreatePaymentPayload>(\n      `${this.apiUrl}/users/v1/end-user/buyer/${payload.profileId}/payment-details/${payload.id}`,\n      payload,\n      { timeout: 5000 }\n    );\n  }\n\n  deleteBuyerPaymentDetails(payload: any) {\n    return this.delete(`${this.apiUrl}/users/v1/end-user/buyer/${payload.profileId}/payment-details/${payload.id}`);\n  }\n}\n","import { BaseServiceOptions } from '../../api/services/base-service';\nimport { ProfileTypeEnum } from '../enums';\nimport { CreatorProfile } from '../interfaces';\nimport { ProfileService } from './profile.service';\nimport { AddProfileRequest, EditProfileRequest } from './profile.service.interfaces';\n\nexport type EditCreatorProfileRequest = EditProfileRequest & Partial<CreatorProfile>;\nexport type AddCreatorProfileRequest = AddProfileRequest & Partial<CreatorProfile>;\n\nexport class CreatorProfileService extends ProfileService<CreatorProfile> {\n  constructor(opts: BaseServiceOptions) {\n    super({ ...opts, profileType: ProfileTypeEnum.Creator });\n  }\n\n  editProfile(id: string, req: EditCreatorProfileRequest) {\n    return this.put<CreatorProfile, EditCreatorProfileRequest>(`${this.profileApiUrl}/${id}`, req);\n  }\n\n  addProfile(req: AddCreatorProfileRequest) {\n    return this.post<CreatorProfile, AddCreatorProfileRequest>(this.profileApiUrl, req);\n  }\n}","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse } from '../../common';\nimport { ChainItDocumentType } from '../interfaces';\nimport { ListDocumentTypesRequest, SearchDocumentTypesRequest } from './document-types.service.interfaces';\n\nexport class DocumentTypesService extends BaseService {\n  protected dtApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.dtApiUrl = `${this.apiUrl}/users/v1/document-types`;\n  }\n\n  searchDocumentTypes(req: SearchDocumentTypesRequest) {\n    return this.get<PagedResponse<ChainItDocumentType>>(this.dtApiUrl, req);\n  }\n\n  listDocumentTypes(req: ListDocumentTypesRequest) {\n    return this.get<ChainItDocumentType[]>(`${this.dtApiUrl}/list`, req);\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { BitDocument } from '../interfaces';\nimport { AddDocumentRequest, EditDocumentRequest, ListDocumentsRequest } from './documents.service.interfaces';\n\nexport type DocumentsServiceOptions = BaseServiceOptions & { profileApiUrl: string };\n\nexport class DocumentsService extends BaseService {\n  private profileApiUrl: string;\n\n  constructor(opts: DocumentsServiceOptions) {\n    super(opts);\n    this.profileApiUrl = opts.profileApiUrl;\n  }\n\n  listDocuments(profileId: string, req: ListDocumentsRequest) {\n    return this.get<BitDocument[]>(`${this.profileApiUrl}/${profileId}/documents`, req);\n  }\n\n  addDocument(profileId: string, req: AddDocumentRequest) {\n    return this.post<BitDocument, AddDocumentRequest>(`${this.profileApiUrl}/${profileId}/documents`, req);\n  }\n\n  getDocumentById(profileId: string, docId: string) {\n    return this.get<BitDocument>(`${this.profileApiUrl}/${profileId}/documents/${docId}`);\n  }\n\n  editDocument(profileId: string, docId: string, req: EditDocumentRequest) {\n    return this.put<BitDocument, EditDocumentRequest>(`${this.profileApiUrl}/${profileId}/documents/${docId}`, req);\n  }\n\n  removeDocument(profileId: string, docId: string) {\n    return this.delete<void>(`${this.profileApiUrl}/${profileId}/documents/${docId}`);\n  }\n}","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { AddFeedbackRequest, Feedback } from './feedback.service.interfaces';\n\nexport class FeedbackService extends BaseService {\n  private feedbackApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.feedbackApiUrl = `${this.apiUrl}/users/v1/end-user/feedbacks`;\n  }\n\n  addFeedback(req: AddFeedbackRequest) {\n    return this.post<Feedback, AddFeedbackRequest>(this.feedbackApiUrl, req);\n  }\n}\n","export enum FeedbackEnum {\n  EXCELLENT = 'EXCELLENT',\n  GOOD = 'GOOD',\n  POOR = 'POOR',\n  VERY_POOR = 'VERY POOR',\n}\n\nexport interface AddFeedbackRequest {\n  type: FeedbackEnum;\n  comment: string;\n}\n\nexport interface Feedback {\n  id: string;\n  userId: string;\n  type: FeedbackEnum;\n  comment: string;\n  createdAt: string;\n  updatedBy: string;\n  updatedAt: string;\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse } from '../../common';\nimport { UserTypeEnum } from '../enums';\n\nimport { SearchRolesRequest, Role } from './role.service.interfaces';\n\ntype RoleServiceOptions = BaseServiceOptions & { userType: UserTypeEnum };\n\nexport class RoleService extends BaseService {\n  protected rolesApiUrl: string;\n\n  constructor(opts: RoleServiceOptions) {\n    super(opts);\n    this.rolesApiUrl = `${this.apiUrl}/users/v1/${opts.userType}/roles`;\n  }\n\n  searchRoles(req?: SearchRolesRequest) {\n    return this.get<PagedResponse<Role>>(this.rolesApiUrl, req);\n  }\n}\n","import { BaseServiceOptions } from '../../api/services/base-service';\nimport { ProfileTypeEnum } from '../enums';\nimport {\n  CreatePaymentRes,\n  CreateSellerDocumentPayload,\n  CreateSellerDocumentRes,\n  CreateShippingAddressesRes,\n  GetSellerProfileRes,\n  SellerProfile, ShippingAddress, UserAddress\n} from '../interfaces';\nimport { DocumentsService } from './documents.service';\nimport { WithDocumentsService } from './documents.service.interfaces';\nimport { PaymentDetailsService } from './payment-details.service';\nimport { WithPaymentDetails } from './payment-details.service.interfaces';\nimport { ProfileService } from './profile.service';\nimport { AddProfileRequest, EditProfileRequest } from './profile.service.interfaces';\nimport { ShippingAddressService } from './shipping-address.service';\nimport {\n  ProfileAddShippingAddressRequest,\n  EditShippingAddressRequest,\n  WithShippingAddress,\n} from './shipping-address.service.interfaces';\n\nexport type EditSellerProfileRequest = EditProfileRequest & Partial<SellerProfile>;\nexport type AddSellerProfileRequest = AddProfileRequest & Partial<SellerProfile>;\n\nexport class SellerProfileService\n  extends ProfileService<SellerProfile>\n  implements WithPaymentDetails, WithShippingAddress, WithDocumentsService {\n  paymentDetails: PaymentDetailsService;\n  shippingAddress: ShippingAddressService;\n  documents: DocumentsService;\n\n  constructor(opts: BaseServiceOptions) {\n    super({ ...opts, profileType: ProfileTypeEnum.Seller });\n    this.paymentDetails = new PaymentDetailsService({ ...opts, profileApiUrl: this.profileApiUrl });\n    this.shippingAddress = new ShippingAddressService({ ...opts, profileApiUrl: this.profileApiUrl });\n    this.documents = new DocumentsService({ ...opts, profileApiUrl: this.profileApiUrl });\n  }\n\n  getSellerProfileByUserId(userId: string) {\n    return this.get<GetSellerProfileRes[]>(\n      `${this.apiUrl}/users/v1/end-user/seller/list`,\n      { userId: userId },\n      { timeout: 5000 }\n    );\n  }\n\n  getSellerDocuments(profileId: string) {\n    return this.get<CreateSellerDocumentRes[]>(`${this.apiUrl}/users/v1/end-user/seller/${profileId}/documents/`);\n  }\n\n  addSellerDocument(req: CreateSellerDocumentPayload) {\n    return this.post<CreateSellerDocumentRes, CreateSellerDocumentPayload>(\n      `${this.apiUrl}/users/v1/end-user/seller/${req.profileId}/documents`,\n      req\n    );\n  }\n\n  updateSellerDocument(req: CreateSellerDocumentPayload) {\n    return this.put<CreateSellerDocumentRes, CreateSellerDocumentPayload>(\n      `${this.apiUrl}/users/v1/end-user/seller/${req.profileId}/documents/${req.docId}`,\n      req\n    );\n  }\n\n  getSellerAddress(profileId: string) {\n    return this.get<ShippingAddress[]>(\n      `${this.apiUrl}/users/v1/end-user/seller/${profileId}/shipping-addresses`\n    );\n  }\n  async getSellerDefaultPaymentDetails(profileId: string) {\n    return this.get<CreatePaymentRes>(\n      `${this.apiUrl}/users/v1/end-user/seller/${profileId}/payment-details/default`,\n      {},\n      { timeout: 5000 }\n    );\n  }\n\n  editProfile(id: string, req: EditSellerProfileRequest) {\n    return this.put<SellerProfile, EditSellerProfileRequest>(`${this.profileApiUrl}/${id}`, req);\n  }\n\n  addProfile(req: AddSellerProfileRequest) {\n    return this.post<SellerProfile, AddSellerProfileRequest>(this.profileApiUrl, req);\n  }\n\n  deleteSellerAddress(profileId: string, addressId: string) {\n    return this.delete(`${this.apiUrl}/users/v1/end-user/seller/${profileId}/shipping-addresses/${addressId}`);\n  }\n\n  addSellerAddress(req: ProfileAddShippingAddressRequest) {\n    return this.post<CreateShippingAddressesRes, ProfileAddShippingAddressRequest>(\n      `${this.apiUrl}/users/v1/end-user/seller/${req.profileId}/shipping-addresses`,\n      req\n    );\n  }\n\n  editSellerAddress(req: EditShippingAddressRequest) {\n    return this.put(\n      `${this.apiUrl}/users/v1/end-user/seller/${req.profileId}/shipping-addresses/${req.addressId}`,\n      req\n    );\n  }\n}\n","import { BaseService, BaseServiceOptions } from '../../api/services/base-service';\nimport { PagedResponse, createQueryParams } from '../../common';\nimport { UserTypeEnum } from '../enums';\nimport { BeingId, BitDocument, EndUser, FycDocument, User, UserOrganization } from '../interfaces';\nimport { AddressService } from './address.service';\nimport { WithAddress } from './address.service.interfaces';\nimport { Invite } from './invites';\nimport {\n  ChangeEmailRequest,\n  ChangePhoneRequest,\n  CompleteFycOnboardingRequest,\n  ConsentActionRequest,\n  ConsentActionResponse,\n  EditUserRequest,\n  ExportListUsersRequest,\n  FycDocumentsRequest,\n  GetUserRolesResponse,\n  ListInvitesRequest,\n  IvdtRequestShareableRequest,\n  IvdtRequestShareableResponse,\n  IvdtShareableRequest,\n  IvdtShareableResponse,\n  ListUserDocumentsRequest,\n  ListUsersRequest,\n  ManageUserRolesRequest,\n  RecalculateBeingIdRequest,\n  SearchOrgsRequest,\n  SearchOrgsResponse,\n  SearchUserDocumentsRequest,\n  SearchUsersRequest,\n  SetBeingIdRequest,\n  ShareUserDeepLinkRequest,\n  VerifyCredentialsRequest,\n  VerifyCredentialsResponse,\n  VerifyCredentialsWitnessRequest,\n  VerifyCredentialsWitnessResponse,\n  VerifyEmailRequest,\n  VerifyPhoneRequest,\n  VerifyCodeRequest,\n  SendVerificationCodeRequest,\n  VerifyCodeResponse,\n} from './user.service.interfaces';\n\ntype UserServiceOptions = BaseServiceOptions & { userType: UserTypeEnum };\n\nexport class UserService extends BaseService implements WithAddress {\n  protected usersApiUrl: string;\n  private userType: UserTypeEnum;\n  address: AddressService;\n\n  constructor(opts: UserServiceOptions) {\n    super(opts);\n    this.userType = opts.userType;\n    this.usersApiUrl = `${this.apiUrl}/users/v1/${opts.userType}/users`;\n    this.address = new AddressService(opts);\n  }\n  getEndUser(id: string) {\n    return this.get<EndUser>(`${this.apiUrl}/users/v1/end-user/users/${id}`, {});\n  }\n\n  searchUsers(req: SearchUsersRequest) {\n    return this.get<PagedResponse<User>>(this.usersApiUrl, req);\n  }\n\n  listUsers(req: ListUsersRequest) {\n    return this.get<User[]>(`${this.usersApiUrl}/list`, req);\n  }\n\n  getUser(id: string) {\n    return this.get<User>(`${this.usersApiUrl}/${id}`);\n  }\n\n  editUser(id: string, req: EditUserRequest) {\n    return this.put<User, EditUserRequest>(`${this.usersApiUrl}/${id}`, req);\n  }\n\n  removeUser(id: string) {\n    return this.delete<void>(`${this.usersApiUrl}/${id}`);\n  }\n\n  getUserRoles(id: string) {\n    return this.get<GetUserRolesResponse>(`${this.usersApiUrl}/${id}/roles`);\n  }\n\n  changeEmail(id: string, req: ChangeEmailRequest) {\n    return this.patch<void, ChangeEmailRequest>(`${this.usersApiUrl}/${id}/change-email`, req);\n  }\n\n  requestEmailVerification(id: string) {\n    return this.patch<void, object>(`${this.usersApiUrl}/${id}/verify-email`, {});\n  }\n\n  verifyEmail(id: string, req: VerifyEmailRequest) {\n    const query = createQueryParams({ ticket: req.ticket });\n    return this.get<void>(`${this.usersApiUrl}/${id}/verify-email?${query}`);\n  }\n\n  changePhone(id: string, req: ChangePhoneRequest) {\n    return this.patch<void, ChangePhoneRequest>(`${this.usersApiUrl}/${id}/change-phone`, req);\n  }\n\n  requestPhoneVerification(id: string) {\n    return this.patch<void, object>(`${this.usersApiUrl}/${id}/verify-phone`, {});\n  }\n\n  verifyPhone(id: string, req: VerifyPhoneRequest) {\n    return this.post<void, VerifyPhoneRequest>(`${this.usersApiUrl}/${id}/verify-phone`, req);\n  }\n\n  assignRoles(id: string, req: ManageUserRolesRequest) {\n    return this.patch<void, ManageUserRolesRequest>(`${this.usersApiUrl}/${id}/assign-roles`, req);\n  }\n\n  removeRoles(id: string, req: ManageUserRolesRequest) {\n    return this.patch<void, ManageUserRolesRequest>(`${this.usersApiUrl}/${id}/remove-roles`, req);\n  }\n\n  requestResetPassword(id: string) {\n    return this.patch<void, object>(`${this.usersApiUrl}/${id}/request-password`, {});\n  }\n\n  blockUser(id: string): Promise<void> {\n    return this.patch<void, object>(`${this.usersApiUrl}/${id}/block`, {});\n  }\n\n  unblockUser(id: string): Promise<void> {\n    return this.patch<void, object>(`${this.usersApiUrl}/${id}/unblock`, {});\n  }\n\n  verifyCredentials(req: VerifyCredentialsRequest) {\n    return this.post<VerifyCredentialsResponse, VerifyCredentialsRequest>(\n      `${this.usersApiUrl}/verify-credentials`,\n      req\n    );\n  }\n\n  verifyCredentialsWitness(req: VerifyCredentialsWitnessRequest) {\n    return this.post<VerifyCredentialsWitnessResponse, VerifyCredentialsWitnessRequest>(\n      `${this.usersApiUrl}/verify-credentials-witness`,\n      req\n    );\n  }\n\n  getBeingId(id: string) {\n    return this.get<BeingId>(`${this.usersApiUrl}/${id}/being-id`);\n  }\n\n  setBeingId(id: string, req: SetBeingIdRequest) {\n    return this.patch<BeingId, SetBeingIdRequest>(`${this.usersApiUrl}/${id}/being-id`, req);\n  }\n\n  recalculateBeingId(id: string, req: RecalculateBeingIdRequest) {\n    return this.patch<BeingId, RecalculateBeingIdRequest>(`${this.usersApiUrl}/${id}/being-id/calculate`, req);\n  }\n\n  completeFycOnboarding(id: string, req: CompleteFycOnboardingRequest) {\n    return this.patch<void, CompleteFycOnboardingRequest>(`${this.usersApiUrl}/${id}/complete-onboarding`, req);\n  }\n\n  getPreviousSessionSelfie(id: string) {\n    return this.get<string>(`${this.usersApiUrl}/${id}/prev-session-selfie`);\n  }\n\n  searchOrganizations(id: string, req: SearchOrgsRequest = {}) {\n    return this.get<SearchOrgsResponse, SearchOrgsRequest>(\n      `${this.apiUrl}/users/v1/${this.userType}/${id}/organizations`,\n      req\n    );\n  }\n\n  getCurrentOrganization(id: string) {\n    return this.get<UserOrganization>(`${this.apiUrl}/users/v1/${this.userType}/${id}/organizations/current`);\n  }\n\n  createConsent(req: ConsentActionRequest) {\n    return this.post<ConsentActionResponse, ConsentActionRequest>(`${this.usersApiUrl}/consent-action`, req);\n  }\n\n  setPrivacy(id: string, isPublic: boolean) {\n    return this.patch<void, object>(`${this.usersApiUrl}/${id}/public/${isPublic}`, {});\n  }\n\n  getInviteById(id: string) {\n    return this.get<Invite>(`${this.apiUrl}/users/v1/${this.userType}/invites/${id}`, {});\n  }\n\n  listInvites(req: ListInvitesRequest) {\n    return this.get<Invite[]>(`${this.apiUrl}/users/v1/${this.userType}/invites/list`, req);\n  }\n\n  exportList(req: ExportListUsersRequest) {\n    return this.get<Blob>(`${this.apiUrl}/users/v1/${this.userType}/users/export`, req, { responseType: 'blob' });\n  }\n\n  listFycDocuments(req?: FycDocumentsRequest) {\n    return this.get<FycDocument[]>(`${this.apiUrl}/users/v1/${this.userType}/users/list-fyc-documents`, req);\n  }\n\n  searchDocuments(req: SearchUserDocumentsRequest) {\n    return this.get<PagedResponse<BitDocument>>(`${this.apiUrl}/users/v1/documents/list`, req);\n  }\n\n  listDocuments(req: ListUserDocumentsRequest) {\n    return this.get<BitDocument[]>(`${this.apiUrl}/users/v1/documents/list`, req);\n  }\n\n  shareDeepLink(userId: string, req: ShareUserDeepLinkRequest) {\n    return this.post<void, ShareUserDeepLinkRequest>(\n      `${this.apiUrl}/users/v1/${this.userType}/users/${userId}/share-deep-link`,\n      req\n    );\n  }\n\n  ivdtRequestShareableInfo(req: IvdtRequestShareableRequest) {\n    return this.post<IvdtRequestShareableResponse, IvdtRequestShareableRequest>(\n      `${this.apiUrl}/users/v1/${this.userType}/users/request-ivdt-shareable`,\n      req\n    );\n  }\n  ivdtShareableInfo(req: IvdtShareableRequest) {\n    return this.get<IvdtShareableResponse>(`${this.apiUrl}/users/v1/${this.userType}/users/ivdt-shareable-info`, req);\n  }\n\n  sendVerificationCode(req: SendVerificationCodeRequest) {\n    return this.post<void, SendVerificationCodeRequest>(\n      `${this.apiUrl}/users/v1/${this.userType}/verifications/send-code`,\n      req\n    );\n  }\n\n  verifyCode(req: VerifyCodeRequest) {\n    return this.post<VerifyCodeResponse, VerifyCodeRequest>(\n      `${this.apiUrl}/users/v1/${this.userType}/verifications/verify-code`,\n      req\n    );\n  }\n}\n","import { FileTypeEnum } from '../../asset';\nimport { FilterParams, FilteredRequest, PagedRequest, PagedResponse } from '../../common';\nimport { ConsentActionTypesEnum, DocumentStatusEnum, UserRoleEnum, VerifyCredentialTypeEnum } from '../enums';\nimport { BeingIdHistory, EGovIdType, UserOrganization } from '../interfaces';\n\nexport type SearchUsersRequest = PagedRequest<{\n  name?: string;\n  username?: string;\n  email?: string;\n  phone?: string;\n  emailVerified?: boolean;\n  phoneVerified?: boolean;\n  appNames?: string[];\n  organizationIds?: string[];\n  roleIds?: string[];\n  includeRoles?: boolean;\n  showSoftDeleted?: boolean;\n  $resolveImages?: boolean;\n  isActive?: boolean;\n  showAllOrgUserType?: boolean;\n}>;\n\nexport type ListUsersRequest = FilteredRequest<{\n  name?: string;\n  username?: string;\n  email?: string;\n  phone?: string;\n  emailVerified?: boolean;\n  phoneVerified?: boolean;\n  appNames?: string[];\n  organizationIds?: string[];\n  roleIds?: string[];\n  includeRoles?: boolean;\n  showSoftDeleted?: boolean;\n  $resolveImages?: boolean;\n}>;\n\nexport interface EditUserRequest {\n  id: string; // Required as per the schema\n  username?: string; // Optional with a maxLength of 255\n  firstName?: string; // Optional with a maxLength of 100\n  lastName?: string; // Optional with a maxLength of 100\n  middleName?: string; // Optional with a maxLength of 100\n  avatarUrl?: string | null; // Optional, can be set to null to remove existing avatar\n  avatar?: string | null; // Optional Base64 string (can be set to null to remove existing avatar)\n  dateOfBirth?: string; // Optional, format: date\n  phone?: string; // Optional with a maxLength of 15\n}\n\nexport interface GetUserRolesResponse {\n  global: Array<UserRoleEnum>; // Using an array of specific string literals for the enumerated values\n  apps: {\n    // Specific properties for 'apps' would need to be provided for a detailed structure.\n    // Assuming a dynamic key-value structure for now.\n    [key: string]: any;\n  };\n  orgs: {\n    // Similarly, assuming a dynamic key-value structure for 'orgs' for now.\n    [key: string]: any;\n  };\n}\n\nexport interface ChangeEmailRequest {\n  email: string;\n}\n\nexport interface VerifyEmailRequest {\n  ticket: string;\n}\n\nexport interface VerifyPhoneRequest {\n  code: string;\n}\n\ninterface UserRoleDataRequest {\n  userId: string;\n  roleId: number;\n  appName: string;\n  orgId: string;\n}\n\nexport interface ManageUserRolesRequest {\n  roles: UserRoleDataRequest[];\n}\n\nexport interface ChangePhoneRequest {\n  phone: string;\n}\n\nexport interface VerifyCredentialsRequest {\n  type: VerifyCredentialTypeEnum;\n  faceCredentials: {\n    email: string;\n    photo: string; // Photo in base64\n  };\n  // No properties defined for this model\n  otpCredentials: object;\n  // No properties defined for this model\n  pinCredentials: object;\n  fycCredentials: {\n    userId: string;\n    transactionId: string;\n    token: string;\n  };\n}\n\nexport interface VerifyCredentialsResponse {\n  status: boolean;\n  data: { token?: string };\n}\n\nexport interface VerifyCredentialsWitnessRequest {\n  transactionId: string;\n  token: string;\n}\n\nexport interface VerifyCredentialsWitnessResponse extends VerifyCredentialsResponse {\n  userId: string;\n}\n\nexport interface SetBeingIdRequest {\n  userId: string;\n  level: number;\n  timestamp: string;\n}\n\nexport interface RecalculateBeingIdRequest {\n  userId: string;\n  sessionId?: number;\n  forceLevel?: boolean;\n}\n\nexport interface CompleteFycOnboardingRequest {\n  sessionId: string;\n  userId: string;\n}\n\nexport type SearchOrgsRequest = PagedRequest<Partial<UserOrganization>>;\n\nexport type SearchOrgsResponse = PagedResponse<UserOrganization>;\n\nexport type ConsentActionRequest = {\n  type: ConsentActionTypesEnum;\n  isAccepted: boolean;\n  biometricsId: string;\n  incodeSession: string;\n};\n\nexport interface ConsentActionResponse extends ConsentActionRequest {\n  id: string;\n}\n\nexport interface ExportListUsersRequest extends ListUsersRequest {\n  reportType: FileTypeEnum;\n}\n\nexport interface FycDocumentsRequest extends FilterParams {\n  userId?: string;\n  govIdType?: EGovIdType;\n}\n\nexport type SearchUserDocumentsRequest = PagedRequest<{\n  userId?: string;\n  typeId?: string;\n  status?: DocumentStatusEnum;\n}>;\n\nexport interface ListUserDocumentsRequest extends FilterParams {\n  userId?: string;\n  typeId?: string;\n  status?: DocumentStatusEnum;\n}\n\nexport interface ShareUserDeepLinkRequest extends FilterParams {\n  to?: {\n    email: string;\n    name?: string;\n  }[];\n}\n\nexport enum InviteTypeEnum {\n  Internal = 'INTERNAL',\n  External = 'EXTERNAL',\n}\n\nexport interface ListInvitesRequest extends FilterParams {\n  email?: string;\n  appName?: string;\n  orgId?: string;\n  userIds?: string[];\n  type?: InviteTypeEnum;\n}\n\nexport interface ShareableInfo {\n  all: boolean;\n  who: {\n    age: boolean;\n    dateOfBirth: boolean;\n    fullName: boolean;\n    firstName: boolean;\n    middleName: boolean;\n    lastName: boolean;\n    beingIdHistory: true;\n  };\n  what: any;\n  where: {\n    fullAddress: boolean;\n    city: boolean;\n    state: boolean;\n    country: boolean;\n    addressOnId: true;\n  };\n  tokens: {\n    currentlyOwned: boolean;\n    associated: boolean;\n    previouslyOwned: true;\n  };\n}\n\nexport type IvdtRequestShareableRequest = ShareableInfo;\n\nexport interface IvdtRequestShareableResponse {\n  qrImgUrl: string;\n  token: string;\n}\n\nexport interface IvdtShareableRequest {\n  token: string;\n}\n\nexport interface IvdtShareableResponse {\n  who: {\n    age: number;\n    dateOfBirth: string;\n    fullName: string;\n    firstName: string;\n    middleName: string;\n    lastName: string;\n    beingIdHistory: BeingIdHistory[];\n  };\n  what: any;\n  where: {\n    address: string;\n    city: string;\n    state: string;\n    country: string;\n    addressOnId: string;\n  };\n  tokens: {\n    currentlyOwned: true;\n    associated: true;\n    previouslyOwned: true;\n  };\n}\n\nexport interface SendVerificationCodeRequest {\n  phone: string;\n}\n\nexport interface VerifyCodeRequest {\n  phone: string;\n  code: string;\n}\n\nexport interface VerifyCodeResponse {\n  verified: boolean;\n}\n","import { BaseService, BaseServiceOptions } from '../api/services/base-service';\nimport { ChainTypeEnum } from '../asset/interfaces/chain-type-enum';\nimport {\n  DeviceVdt,\n  GasEstimation,\n  InitUserVdtRequest,\n  MintRequest,\n  OrganizationVdtPublic,\n  PublishCustomerFileRequest,\n  UserVdt,\n  UserVdtPublic,\n  WitnessVDTResponse,\n} from '../web3/interfaces';\n\nexport class Web3Service extends BaseService {\n  web3ApiUrl: string;\n\n  constructor(opts: BaseServiceOptions) {\n    super(opts);\n    this.web3ApiUrl = `${this.apiUrl}/web3/v1/nft`;\n  }\n\n  mint(chainType: ChainTypeEnum, req: MintRequest) {\n    const type = chainType === ChainTypeEnum.Services ? 'service' : 'asset';\n    return this.post<void, MintRequest>(`${this.web3ApiUrl}/mint-${type}`, req);\n  }\n\n  getWitnessVdt(witnessId: string) {\n    return this.get<WitnessVDTResponse>(`${this.web3ApiUrl}/witness-vdt/${witnessId}`);\n  }\n\n  getDeviceVdt(deviceId: string) {\n    return this.get<DeviceVdt>(`${this.web3ApiUrl}/device-vdt/${deviceId}`);\n  }\n\n  getUserVdt(userId: string) {\n    return this.get<UserVdt>(`${this.web3ApiUrl}/user-vdt/${userId}`, {});\n  }\n\n  getUserVdtPublic(qrId: string) {\n    return this.get<UserVdtPublic>(`${this.web3ApiUrl}/${qrId}/user-vdt-public`, {});\n  }\n\n  initUserVdt(req: InitUserVdtRequest) {\n    return this.post<void, InitUserVdtRequest>(`${this.web3ApiUrl}/init-user-vdt`, req);\n  }\n\n  initUserListVdt() {\n    return this.post<void, object>(`${this.web3ApiUrl}/init-user-list-vdt`, {});\n  }\n\n  initUserVdtV2(req: InitUserVdtRequest) {\n    return this.post<void, InitUserVdtRequest>(`${this.web3ApiUrl}/init-user-vdt-v2`, req);\n  }\n\n  getOrganizationVdtPublic(qrId: string) {\n    return this.get<OrganizationVdtPublic>(`${this.web3ApiUrl}/${qrId}/organization-vdt-public`, {});\n  }\n\n  getGasEstimation(assetId: string) {\n    return this.get<GasEstimation>(`${this.web3ApiUrl}/gas-estimation`, { assetId });\n  }\n\n  publishCustomerFile(id: string, comment?: string) {\n    return this.post<void, PublishCustomerFileRequest>(\n      `${this.web3ApiUrl}/customer-file/publish`,\n      {\n        id,\n        comment,\n      },\n      { timeout: 60_000 }\n    );\n  }\n}\n"],"mappings":"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","names":["FileFormatEnum","InfoTypeEnum","WitnessTypeEnum","AttachmentType","AttachmentClassification","EAttachmentUploadStatus","RelationTypeEnum","DeviceTypeIdEnum","DeviceTypeEnum","StepEnum","TraitTypeEnum","QrPackageTypeEnum","ReferenceType","SubjectTypeEnum","WalletPlatformEnum","axios","req","CategoryStatusEnum","ChainTypeEnum","ReportTypeEnum","FileTypeEnum","AssetStatusEnum","RelationsTypeEnum","AssetLevelEnum","VerifyType","LocationAccuracy","VerifyTypeEnum","EOrderStatus","_a","SellingMethodEnum","MeasurementUnitEnum","jwtDecode","BiometricsModeEnum","BiometricsStorageKeyEnum","jwtDecode","VerificationTypeEnum","ActionType","CoreEventTypeEnum","EEventStatus","ListedStatusEnum","BidStatusEnum","OrderStatusEnum","BidReasonsEnum","OrderTypeEnum","NotificationStatusEnum","EndUserNotificationEventNameEnum","ReportHistoryStatusEnum","ReportHistoryTypeEnum","UserTypeEnum","ProfileTypeEnum","UserRoleEnum","UserRoleIdEnum","VerifyCredentialTypeEnum","SocialMediaSiteTypeEnum","PaymentTypeEnum","AddressTypeEnum","DocumentStatusEnum","SellerTypeEnum","ConsentActionTypesEnum","BeingLevelEnum","EGovIdType","EFycCheckStatus","EAddressType","EBeingLevel","FeedbackEnum","InviteTypeEnum"]}