{"version":3,"sources":["../src/constants/LicenseeSecretMode.ts","../src/constants/LicenseType.ts","../src/constants/NotificationEvent.ts","../src/constants/NotificationProtocol.ts","../src/constants/SecurityMode.ts","../src/constants/TimeVolumePeriod.ts","../src/constants/TokenType.ts","../src/constants/TransactionSource.ts","../src/constants/TransactionStatus.ts","../src/constants/index.ts","../src/constants/ApiKeyRole.ts","../src/constants/LicensingModel.ts","../src/constants/NodeSecretMode.ts","../src/constants/PaymentMethodEnum.ts","../src/utils/cast.ts","../src/converters/itemToObject.ts","../src/utils/helpers.ts","../src/utils/serialize.ts","../src/entities/defineEntity.ts","../src/entities/Bundle.ts","../src/converters/itemToBundle.ts","../src/entities/Country.ts","../src/converters/itemToCountry.ts","../src/entities/License.ts","../src/converters/itemToLicense.ts","../src/entities/Licensee.ts","../src/converters/itemToLicensee.ts","../src/entities/LicenseTemplate.ts","../src/converters/itemToLicenseTemplate.ts","../src/entities/Notification.ts","../src/converters/itemToNotification.ts","../src/entities/PaymentMethod.ts","../src/converters/itemToPaymentMethod.ts","../src/entities/Product.ts","../src/errors/NlicError.ts","../src/entities/ProductDiscount.ts","../src/converters/itemToProduct.ts","../src/entities/ProductModule.ts","../src/converters/itemToProductModule.ts","../src/entities/Token.ts","../src/converters/itemToToken.ts","../src/entities/LicenseTransactionJoin.ts","../src/entities/Transaction.ts","../src/converters/itemToTransaction.ts","../src/services/Service/instance.ts","../package.json","../src/services/Service/toQueryString.ts","../src/services/Service/request.ts","../src/services/Service/methods.ts","../src/services/Service/index.ts","../src/utils/filter.ts","../src/utils/validation.ts","../src/vo/Page.ts","../src/services/BundleService.ts","../src/vo/ValidationResults.ts","../src/services/LicenseeService.ts","../src/services/LicenseService.ts","../src/services/LicenseTemplateService.ts","../src/services/NotificationService.ts","../src/services/PaymentMethodService.ts","../src/services/ProductModuleService.ts","../src/services/ProductService.ts","../src/services/TokenService.ts","../src/services/TransactionService.ts","../src/services/UtilityService.ts","../src/vo/Context.ts","../src/vo/ValidationParameters.ts"],"sourcesContent":["/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst LicenseeSecretMode = Object.freeze({\n  // @deprecated\n  DISABLED: 'DISABLED',\n  PREDEFINED: 'PREDEFINED',\n  CLIENT: 'CLIENT',\n});\n\nexport default LicenseeSecretMode;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst LicenseType = Object.freeze({\n  FEATURE: 'FEATURE',\n  TIMEVOLUME: 'TIMEVOLUME',\n  FLOATING: 'FLOATING',\n  QUANTITY: 'QUANTITY',\n});\n\nexport default LicenseType;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst NotificationEvent = Object.freeze({\n  LICENSEE_CREATED: 'LICENSEE_CREATED',\n  LICENSE_CREATED: 'LICENSE_CREATED',\n  WARNING_LEVEL_CHANGED: 'WARNING_LEVEL_CHANGED',\n  PAYMENT_TRANSACTION_PROCESSED: 'PAYMENT_TRANSACTION_PROCESSED',\n});\n\nexport default NotificationEvent;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst NotificationProtocol = Object.freeze({\n  WEBHOOK: 'WEBHOOK',\n});\n\nexport default NotificationProtocol;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst SecurityMode = Object.freeze({\n  BASIC_AUTHENTICATION: 'BASIC_AUTH',\n  APIKEY_IDENTIFICATION: 'APIKEY',\n  ANONYMOUS_IDENTIFICATION: 'ANONYMOUS',\n});\n\nexport default SecurityMode;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst TimeVolumePeriod = Object.freeze({\n  DAY: 'DAY',\n  WEEK: 'WEEK',\n  MONTH: 'MONTH',\n  YEAR: 'YEAR',\n});\n\nexport default TimeVolumePeriod;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst TokenType = Object.freeze({\n  DEFAULT: 'DEFAULT',\n  SHOP: 'SHOP',\n  APIKEY: 'APIKEY',\n  ACTION: 'ACTION',\n});\n\nexport default TokenType;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst TransactionSource = Object.freeze({\n  SHOP: 'SHOP',\n\n  AUTO_LICENSE_CREATE: 'AUTO_LICENSE_CREATE',\n  AUTO_LICENSE_UPDATE: 'AUTO_LICENSE_UPDATE',\n  AUTO_LICENSE_DELETE: 'AUTO_LICENSE_DELETE',\n\n  AUTO_LICENSEE_CREATE: 'AUTO_LICENSEE_CREATE',\n  AUTO_LICENSEE_DELETE: 'AUTO_LICENSEE_DELETE',\n  AUTO_LICENSEE_VALIDATE: 'AUTO_LICENSEE_VALIDATE',\n\n  AUTO_LICENSETEMPLATE_DELETE: 'AUTO_LICENSETEMPLATE_DELETE',\n\n  AUTO_PRODUCTMODULE_DELETE: 'AUTO_PRODUCTMODULE_DELETE',\n\n  AUTO_PRODUCT_DELETE: 'AUTO_PRODUCT_DELETE',\n\n  AUTO_LICENSES_TRANSFER: 'AUTO_LICENSES_TRANSFER',\n\n  SUBSCRIPTION_UPDATE: 'SUBSCRIPTION_UPDATE',\n\n  RECURRING_PAYMENT: 'RECURRING_PAYMENT',\n\n  CANCEL_RECURRING_PAYMENT: 'CANCEL_RECURRING_PAYMENT',\n\n  OBTAIN_BUNDLE: 'OBTAIN_BUNDLE',\n});\n\nexport default TransactionSource;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst TransactionStatus = Object.freeze({\n  PENDING: 'PENDING',\n  CLOSED: 'CLOSED',\n  CANCELLED: 'CANCELLED',\n});\n\nexport default TransactionStatus;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport LicenseeSecretMode from '@/constants/LicenseeSecretMode';\nimport LicenseType from '@/constants/LicenseType';\nimport NotificationEvent from '@/constants/NotificationEvent';\nimport NotificationProtocol from '@/constants/NotificationProtocol';\nimport SecurityMode from '@/constants/SecurityMode';\nimport TimeVolumePeriod from '@/constants/TimeVolumePeriod';\nimport TokenType from '@/constants/TokenType';\nimport TransactionSource from '@/constants/TransactionSource';\nimport TransactionStatus from '@/constants/TransactionStatus';\n\nexport default {\n  LicenseeSecretMode,\n  LicenseType,\n  NotificationEvent,\n  NotificationProtocol,\n  SecurityMode,\n  TimeVolumePeriod,\n  TokenType,\n  TransactionSource,\n  TransactionStatus,\n\n  // @deprecated use SecurityMode.BASIC_AUTHENTICATION instead\n  BASIC_AUTHENTICATION: 'BASIC_AUTH',\n\n  // @deprecated use SecurityMode.APIKEY_IDENTIFICATION instead\n  APIKEY_IDENTIFICATION: 'APIKEY',\n\n  // @deprecated use SecurityMode.ANONYMOUS_IDENTIFICATION instead\n  ANONYMOUS_IDENTIFICATION: 'ANONYMOUS',\n\n  FILTER: 'filter',\n\n  Product: {\n    TYPE: 'Product',\n    ENDPOINT_PATH: 'product',\n  },\n\n  ProductModule: {\n    TYPE: 'ProductModule',\n    ENDPOINT_PATH: 'productmodule',\n    PRODUCT_MODULE_NUMBER: 'productModuleNumber',\n  },\n\n  Licensee: {\n    TYPE: 'Licensee',\n    ENDPOINT_PATH: 'licensee',\n    ENDPOINT_PATH_VALIDATE: 'validate',\n    ENDPOINT_PATH_TRANSFER: 'transfer',\n    LICENSEE_NUMBER: 'licenseeNumber',\n  },\n\n  LicenseTemplate: {\n    TYPE: 'LicenseTemplate',\n    ENDPOINT_PATH: 'licensetemplate',\n\n    // @deprecated use LicenseType directly instead\n    LicenseType,\n  },\n\n  License: {\n    TYPE: 'License',\n    ENDPOINT_PATH: 'license',\n  },\n\n  Validation: {\n    TYPE: 'ProductModuleValidation',\n  },\n\n  Token: {\n    TYPE: 'Token',\n    ENDPOINT_PATH: 'token',\n\n    // @deprecated use TokenType directly instead\n    Type: TokenType,\n  },\n\n  PaymentMethod: {\n    TYPE: 'PaymentMethod',\n    ENDPOINT_PATH: 'paymentmethod',\n  },\n\n  Bundle: {\n    TYPE: 'Bundle',\n    ENDPOINT_PATH: 'bundle',\n    ENDPOINT_OBTAIN_PATH: 'obtain',\n  },\n\n  Notification: {\n    TYPE: 'Notification',\n    ENDPOINT_PATH: 'notification',\n\n    // @deprecated use NotificationProtocol directly instead\n    Protocol: NotificationProtocol,\n\n    // @deprecated use NotificationEvent directly instead\n    Event: NotificationEvent,\n  },\n\n  Transaction: {\n    TYPE: 'Transaction',\n    ENDPOINT_PATH: 'transaction',\n\n    // @deprecated use TransactionStatus directly instead\n    Status: TransactionStatus,\n  },\n\n  Utility: {\n    ENDPOINT_PATH: 'utility',\n    ENDPOINT_PATH_LICENSE_TYPES: 'licenseTypes',\n    ENDPOINT_PATH_LICENSING_MODELS: 'licensingModels',\n    ENDPOINT_PATH_COUNTRIES: 'countries',\n    LICENSING_MODEL_TYPE: 'LicensingModelProperties',\n    LICENSE_TYPE: 'LicenseType',\n    COUNTRY_TYPE: 'Country',\n  },\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst ApiKeyRole = Object.freeze({\n  ROLE_APIKEY_LICENSEE: 'ROLE_APIKEY_LICENSEE',\n  ROLE_APIKEY_ANALYTICS: 'ROLE_APIKEY_ANALYTICS',\n  ROLE_APIKEY_OPERATION: 'ROLE_APIKEY_OPERATION',\n  ROLE_APIKEY_MAINTENANCE: 'ROLE_APIKEY_MAINTENANCE',\n  ROLE_APIKEY_ADMIN: 'ROLE_APIKEY_ADMIN',\n});\n\nexport default ApiKeyRole;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst LicensingModel = Object.freeze({\n  TRY_AND_BUY: 'TryAndBuy',\n  SUBSCRIPTION: 'Subscription',\n  RENTAL: 'Rental',\n  FLOATING: 'Floating',\n  MULTI_FEATURE: 'MultiFeature',\n  PAY_PER_USE: 'PayPerUse',\n  PRICING_TABLE: 'PricingTable',\n  QUOTA: 'Quota',\n  NODE_LOCKED: 'NodeLocked',\n  DISCOUNT: 'Discount',\n});\n\nexport default LicensingModel;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst NodeSecretMode = Object.freeze({\n  PREDEFINED: 'PREDEFINED',\n  CLIENT: 'CLIENT',\n});\n\nexport default NodeSecretMode;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst PaymentMethodEnum = Object.freeze({\n  NULL: 'NULL',\n  PAYPAL: 'PAYPAL',\n  PAYPAL_SANDBOX: 'PAYPAL_SANDBOX',\n  STRIPE: 'STRIPE',\n  STRIPE_TESTING: 'STRIPE_TESTING',\n});\n\nexport default PaymentMethodEnum;\n","const isBooleanString = (value: string): value is 'true' | 'false' => {\n  return value === 'true' || value === 'false';\n};\n\nconst isNull = (value: string | null): value is 'null' | null => {\n  return value === 'null' || value === null;\n};\n\nconst isJsonStructure = (value: string): boolean => {\n  const trimmed = value.trim();\n\n  return (\n      (trimmed.startsWith('{') && trimmed.endsWith('}')) ||\n      (trimmed.startsWith('[') && trimmed.endsWith(']'))\n  );\n};\n\nconst isNumericString = (value: string): boolean => {\n  const trimmed = value.trim();\n\n  if (!trimmed) {\n    return false;\n  }\n\n  const parsed = Number(trimmed);\n\n  return Number.isFinite(parsed);\n};\n\nconst parseNumber = (value: string): number | string => {\n  return isNumericString(value) ? Number(value) : value;\n};\n\nconst parseBoolean = (value: string): boolean | string => {\n  if (value === 'true') {\n    return true;\n  }\n\n  if (value === 'false') {\n    return false;\n  }\n\n  return value;\n};\n\nconst parseNull = (value: string | null): null | string => {\n  return isNull(value) ? null : value;\n};\n\nconst parseJson = (value: string): unknown => {\n  if (!isJsonStructure(value)) {\n    return value;\n  }\n\n  try {\n    return JSON.parse(value);\n  } catch {\n    return value;\n  }\n};\n\nexport type CastType = 'auto' | 'string' | 'number' | 'boolean' | 'null' | 'json';\n\nconst parseAuto = (value: string): unknown => {\n  if (isBooleanString(value)) {\n    return value === 'true';\n  }\n\n  if (isNull(value)) {\n    return null;\n  }\n\n  if (isNumericString(value)) {\n    return Number(value);\n  }\n\n  if (isJsonStructure(value)) {\n    try {\n      return JSON.parse(value);\n    } catch {\n      return value;\n    }\n  }\n\n  return value;\n};\n\nexport const cast = (value: string | null, type: CastType = 'auto'): unknown => {\n  if (value === null) {\n    return null;\n  }\n\n  switch (type) {\n    case 'string':\n      return value;\n\n    case 'number':\n      return parseNumber(value);\n\n    case 'boolean':\n      return parseBoolean(value);\n\n    case 'null':\n      return parseNull(value);\n\n    case 'json':\n      return parseJson(value);\n\n    case 'auto':\n    default:\n      return parseAuto(value);\n  }\n};\n\nexport default cast;\n","import { Item, List } from '@/types/api/response';\nimport { CastType } from '@/types/utils/cast';\nimport cast from '@/utils/cast';\n\nexport type ItemToObjectCastMap = Record<string, CastType>;\n\nconst extractProperties = (properties?: { name: string; value: string }[], castMap: ItemToObjectCastMap = {}) => {\n  const result: Record<string, unknown> = {};\n  properties?.forEach(({ name, value }) => {\n    result[name] = cast(value, castMap[name]);\n  });\n  return result;\n};\n\nconst extractLists = (lists?: List[], castMap: ItemToObjectCastMap = {}) => {\n  const result: Record<string, unknown[]> = {};\n\n  lists?.forEach((list) => {\n    const { name } = list;\n    result[name] = result[name] || [];\n    result[name].push(itemToObject(list, castMap));\n  });\n  return result;\n};\n\nconst itemToObject =\n    <T extends object = Record<string, unknown>>(item?: Item | List, castMap: ItemToObjectCastMap = {}): T => {\n      return item\n          ? ({...extractProperties(item.property, castMap), ...extractLists(item.list, castMap)} as T)\n          : ({} as T);\n    };\n\n\nexport default itemToObject;\n","export const has = <T extends object, K extends keyof T>(obj: T, key: K): boolean => {\n  return Object.hasOwn(obj, key);\n};\n\nexport const set = <T extends object, K extends keyof T>(obj: T, key: K, value: T[K]): void => {\n  obj[key] = value;\n};\n\nexport const get = <T extends object, K extends keyof T, D = undefined>(obj: T, key: K, def?: D): T[K] | D => {\n  return has(obj, key) ? obj[key] : (def as D);\n};\n\nexport default {\n  has,\n  set,\n  get,\n};\n","/**\n * Converts an object into a map of type Record<string, string>, where the value of each object property is converted\n * to a string.\n * If the property's value is `undefined`, it will be replaced with an empty string.\n * If the value is already a string, it will remain unchanged.\n * If the value is Date instance, it wll be replaced with an ISO format date string.\n * For complex types (objects, arrays, etc.), the value will be serialized into a JSON string.\n * If serialization fails, the value will be converted to a string using `String()`.\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n *\n * @param obj - The object to be converted into a map.\n * @param options\n * @returns A map (Record<string, string>) with converted property values from the object.\n */\nexport default <T extends object>(obj: T, options: { ignore?: string[] } = {}): Record<string, string> => {\n  const map: Record<string, string> = {};\n\n  const { ignore = [] } = options;\n\n  Object.entries(obj).forEach(([k, v]) => {\n    // ignore keys\n    if (ignore.includes(k)) {\n      return;\n    }\n\n    if (typeof v === 'function') {\n      // ignore functions\n      return;\n    } else if (v === undefined) {\n      map[k] = ''; // if the value is `undefined`, replace it with an empty string\n    } else if (typeof v === 'string') {\n      map[k] = v; // If the value is already a string, leave it unchanged\n    } else if (v instanceof Date) {\n      // if the value is Date, convert it to ISO string\n      map[k] = v.toISOString();\n    } else if (typeof v !== 'object' || v === null) {\n      // If it's not an object (or is null), convert it to string\n      map[k] = String(v);\n    } else {\n      // Try to serialize the object or array into JSON\n      try {\n        map[k] = JSON.stringify(v);\n      } catch {\n        map[k] = String(v);\n      }\n    }\n  });\n\n  return map;\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// types\nimport type {\n  Entity,\n  EntityMethods,\n  Proto,\n  PropGetEventListener,\n  PropSetEventListener,\n} from '@/types/entities/defineEntity';\n\n// utils\nimport { set, has, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\nconst defineEntity = function <P extends Proto, T extends object, M extends object>(\n  props: T,\n  methods: M,\n  proto: P = {} as P,\n  options?: { set?: PropSetEventListener<T>; get?: PropGetEventListener<T> },\n) {\n  const listeners: { set: PropSetEventListener<T>[]; get: PropGetEventListener<T>[] } = {\n    set: [],\n    get: [],\n  };\n\n  if (options?.get) {\n    listeners.get.push(options.get);\n  }\n\n  if (options?.set) {\n    listeners.set.push(options.set);\n  }\n\n  const base: EntityMethods<T> = {\n    set(this: void, key, value): void {\n      set(props, key, value);\n    },\n\n    get(this: void, key, def) {\n      return get(props, key, def);\n    },\n\n    has(this: void, key) {\n      return has(props, key);\n    },\n\n    // Aliases\n    setProperty(key, value) {\n      this.set(key, value);\n    },\n\n    addProperty(key, value) {\n      this.set(key, value);\n    },\n\n    getProperty(key, def) {\n      return this.get(key, def);\n    },\n\n    hasProperty(key) {\n      return this.has(key);\n    },\n\n    setProperties(properties) {\n      Object.entries(properties).forEach(([k, v]) => {\n        this.set(k as keyof T, v as T[keyof T]);\n      });\n    },\n\n    serialize(this: void) {\n      return serialize(props);\n    },\n  };\n\n  return new Proxy(props, {\n    get(obj: T, prop: string | symbol, receiver) {\n      if (Object.hasOwn(methods, prop)) {\n        return methods[prop as keyof typeof methods];\n      }\n\n      if (Object.hasOwn(base, prop)) {\n        return base[prop as keyof typeof base];\n      }\n\n      listeners.get.forEach((l) => {\n        l(obj, prop, receiver);\n      });\n\n      return Reflect.get(obj, prop, receiver);\n    },\n\n    set(obj, prop, value, receiver) {\n      listeners.set.forEach((l) => {\n        l(obj, prop, value, receiver);\n      });\n\n      return Reflect.set(obj, prop, value, receiver);\n    },\n\n    getPrototypeOf() {\n      return proto.prototype || null;\n    },\n  }) as Entity<T, M>;\n};\n\nexport default defineEntity;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n\n// types\nimport type { BundleProps, BundleMethods, BundleEntity } from '@/types/entities/Bundle';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n// entity factory\nimport defineEntity from './defineEntity';\n\n/**\n * NetLicensing Bundle entity.\n *\n * Properties visible via NetLicensing  API:\n *\n * Unique number that identifies the bundle. Vendor can assign this number when creating a bundle or\n * let NetLicensing generate one.\n * @property string number\n *\n * If set to false, the bundle is disabled.\n * @property boolean active\n *\n * Bundle name.\n * @property string name\n *\n * Price for the bundle. If >0, it must always be accompanied by the currency specification.\n * @property number price\n *\n * Specifies currency for the bundle price. Check data types to discover which currencies are\n * supported.\n * @property string currency\n *\n * The bundle includes a set of templates, each identified by a unique template number.\n * @property string[] licenseTemplateNumbers\n *\n * Arbitrary additional user properties of string type may be associated with each bundle. The name of user property\n * must not be equal to any of the fixed property names listed above and must be none of id, deleted.\n */\nconst Bundle = function <T extends object>(properties: BundleProps<T> = {} as BundleProps<T>): BundleEntity<T> {\n  const props: BundleProps = { ...properties };\n\n  const methods: BundleMethods = {\n    setActive(this: void, active: boolean) {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string) {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setName(this: void, name: string): void {\n      set(props, 'name', name);\n    },\n\n    getName<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'name', def) as string | D;\n    },\n\n    setPrice(this: void, price: number): void {\n      set(props, 'price', price);\n    },\n\n    getPrice<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'price', def) as number | D;\n    },\n\n    setCurrency(this: void, currency: string): void {\n      set(props, 'currency', currency);\n    },\n\n    getCurrency<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'currency', def) as string | D;\n    },\n\n    setProductNumber(number: string) {\n      set(props, 'productNumber', number);\n    },\n\n    getProductNumber<D = undefined>(def?: D): string | D {\n      return get(props, 'productNumber', def) as string | D;\n    },\n\n    setLicenseTemplateNumbers(this: void, numbers: string[]): void {\n      set(props, 'licenseTemplateNumbers', numbers);\n    },\n\n    addLicenseTemplateNumber(this: void, number: string): void {\n      if (!props.licenseTemplateNumbers) {\n        props.licenseTemplateNumbers = [];\n      }\n\n      props.licenseTemplateNumbers.push(number);\n    },\n\n    getLicenseTemplateNumbers<D = undefined>(this: void, def?: D): string[] | D {\n      return get(props, 'licenseTemplateNumbers', def) as string[] | D;\n    },\n\n    removeLicenseTemplateNumber(this: void, number: string): void {\n      const { licenseTemplateNumbers: numbers = [] } = props;\n\n      numbers.splice(numbers.indexOf(number), 1);\n      props.licenseTemplateNumbers = numbers;\n    },\n\n    getStaleLicenseTemplateNumbers<D = undefined>(this: void, def?: D): string[] | D {\n      return get(props, 'staleLicenseTemplateNumbers', def) as string[] | D;\n    },\n\n    serialize(this: void): Record<string, string> {\n      const cast: Record<string, string> = {};\n\n      if (props.licenseTemplateNumbers) {\n        cast['licenseTemplateNumbers'] = props.licenseTemplateNumbers.join(',');\n      }\n\n      return serialize({ ...props, ...cast }, { ignore: ['staleLicenseTemplateNumbers'] });\n    },\n  };\n\n  return defineEntity(props as BundleProps<T>, methods, Bundle);\n};\n\nexport default Bundle;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport Bundle from '@/entities/Bundle';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { BundleProps } from '@/types/entities/Bundle';\n\nexport default <T extends object = BundleProps>(item?: Item) => {\n  const props = itemToObject<Record<string, unknown>>(item,{\n    active: 'boolean',\n    number: 'string',\n    name: 'string',\n    price: 'number',\n    currency: 'string',\n    productNumber: 'string',\n    licenseTemplateNumbers: 'string',\n    staleLicenseTemplateNumbers: 'string',\n  });\n\n  const { licenseTemplateNumbers, staleLicenseTemplateNumbers } = props;\n\n  if (licenseTemplateNumbers && typeof licenseTemplateNumbers === 'string') {\n    props.licenseTemplateNumbers = licenseTemplateNumbers.split(',');\n  }\n\n  if (staleLicenseTemplateNumbers && typeof staleLicenseTemplateNumbers === 'string') {\n    props.staleLicenseTemplateNumbers = staleLicenseTemplateNumbers.split(',');\n  }\n\n  return Bundle<T>(props as BundleProps<T>);\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// types\nimport type { CountryProps, CountryMethods, CountryEntity } from '@/types/entities/Country';\n\n// entity factory\nimport defineEntity from './defineEntity';\n\n/**\n * Country entity used internally by NetLicensing.\n *\n * Properties visible via NetLicensing  API:\n *\n * @property code - Unique code of country.\n * @property name - Unique name of country\n * @property vatPercent - Country vat.\n * @property isEu - is country in EU.\n */\nconst Country = function (properties: CountryProps = {} as CountryProps): CountryEntity {\n  const defaults: CountryProps = {\n    code: '',\n    name: '',\n    vatPercent: 0,\n    isEu: false,\n  };\n\n  const props: CountryProps = { ...defaults, ...properties };\n\n  const methods: CountryMethods = {\n    getCode(this: void): string {\n      return props.code;\n    },\n\n    getName(this: void): string {\n      return props.name;\n    },\n\n    getVatPercent(this: void): number {\n      return props.vatPercent as number;\n    },\n\n    getIsEu(this: void): boolean {\n      return props.isEu;\n    },\n  };\n\n  return defineEntity(props, methods, Country);\n};\n\nexport default Country;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\n\n// entities\nimport Country from '@/entities/Country';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { CountryProps } from '@/types/entities/Country';\n\nexport default (item?: Item) =>\n  Country(\n    itemToObject<CountryProps>(item, {\n      code: 'string',\n      name: 'string',\n      vatPercent: 'number',\n      isEu: 'boolean',\n    }),\n  );\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// types\nimport { LicenseMethods, LicenseProps, LicenseEntity } from '@/types/entities/License';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n// entity factory\nimport defineEntity from './defineEntity';\n\n/**\n * License entity used internally by NetLicensing.\n *\n * Properties visible via NetLicensing API:\n *\n * Unique number (across all products/licensees of a vendor) that identifies the license. Vendor can\n * assign this number when creating a license or let NetLicensing generate one. Read-only after corresponding creation\n * transaction status is set to closed.\n * @property string number\n *\n * Name for the licensed item. Set from license template on creation, if not specified explicitly.\n * @property string name\n *\n * If set to false, the license is disabled. License can be re-enabled, but as long as it is disabled,\n * the license is excluded from the validation process.\n * @property boolean active\n *\n * price for the license. If >0, it must always be accompanied by the currency specification. Read-only,\n * set from license template on creation.\n * @property number price\n *\n * specifies currency for the license price. Check data types to discover which currencies are\n * supported. Read-only, set from license template on creation.\n * @property string currency\n *\n * If set to true, this license is not shown in NetLicensing Shop as purchased license. Set from license\n * template on creation, if not specified explicitly.\n * @property boolean hidden\n *\n * The unique identifier assigned to the licensee (the entity to whom the license is issued). This number is typically\n * associated with a specific customer or organization. It is used internally to reference the licensee and cannot be\n * changed after the license is created.\n * @property string licenseeNumber\n *\n * The unique identifier for the license template from which this license was created.\n * @property string licenseTemplateNumber\n *\n * A boolean flag indicating whether the license is actively being used. If true, it means the license is currently in\n * use. If false, the license is not currently assigned or in use.\n * @property boolean inUse\n *\n * This parameter is specific to TimeVolume licenses and indicates the total volume of time (e.g., in hours, days, etc.)\n * associated with the license. This value defines the amount of time the license covers, which may affect the usage\n * period and limits associated with the license.\n * @property number timeVolume\n *\n * Also, specific to TimeVolume licenses, this field defines the period of time for the timeVolume\n * (e.g., \"DAY\", \"WEEK\", \"MONTH\", \"YEAR\"). It provides the time unit for the timeVolume value, clarifying whether the\n * time is measured in days, weeks, or any other defined period.\n * @property string timeVolumePeriod\n *\n * For TimeVolume licenses, this field indicates the start date of the license’s validity period. This date marks when\n * the license becomes active and the associated time volume starts being consumed.\n * It can be represented as a string \"now\" or a Date object.\n * @property string|Date Date startDate\n *\n * Parent(Feature) license number\n * @property string parentfeature\n *\n * Arbitrary additional user properties of string type may be associated with each license. The name of user property\n * must not be equal to any of the fixed property names listed above and must be none of id, deleted, licenseeNumber,\n * licenseTemplateNumber.\n */\nconst License = function <T extends object>(properties: LicenseProps<T> = {} as LicenseProps<T>): LicenseEntity<T> {\n  const props: LicenseProps = { ...(properties as T) };\n\n  const methods: LicenseMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setName(this: void, name: string): void {\n      set(props, 'name', name);\n    },\n\n    getName<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'name', def) as string | D;\n    },\n\n    setPrice(this: void, price: number): void {\n      set(props, 'price', price);\n    },\n\n    getPrice<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'price', def) as number | D;\n    },\n\n    setCurrency(this: void, currency: string): void {\n      set(props, 'currency', currency);\n    },\n\n    getCurrency<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'currency', def) as string | D;\n    },\n\n    setHidden(this: void, hidden: boolean): void {\n      set(props, 'hidden', hidden);\n    },\n\n    getHidden<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'hidden', def) as boolean | D;\n    },\n\n    setLicenseeNumber(this: void, number: string): void {\n      set(props, 'licenseeNumber', number);\n    },\n\n    getLicenseeNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'licenseeNumber', def) as string | D;\n    },\n\n    setLicenseTemplateNumber(this: void, number: string): void {\n      set(props, 'licenseTemplateNumber', number);\n    },\n\n    getLicenseTemplateNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'licenseTemplateNumber', def) as string | D;\n    },\n\n    setProductModuleNumber(this: void, number: string): void {\n      set(props, 'productModuleNumber', number);\n    },\n\n    getProductModuleNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'productModuleNumber', def) as string | D;\n    },\n\n    serialize(this: void): Record<string, string> {\n      return serialize(props, { ignore: ['inUse'] });\n    },\n  };\n\n  return defineEntity(props as LicenseProps<T>, methods, License);\n};\n\nexport default License;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport License from '@/entities/License';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { LicenseProps } from '@/types/entities/License';\n\nexport default <T extends object = LicenseProps>(item?: Item) => {\n  const props = itemToObject<Record<string, unknown>>(item, {\n    active: 'boolean',\n    number: 'string',\n    name: 'string',\n    price: 'number',\n    currency: 'string',\n    hidden: 'boolean',\n    licenseeNumber: 'string',\n    licenseTemplateNumber: 'string',\n    productModuleNumber: 'string',\n    startDate: 'string',\n    inUse: 'boolean',\n  });\n\n  const { startDate } = props;\n\n  if (startDate && typeof startDate === 'string') {\n    props.startDate = startDate === 'now' ? startDate : new Date(startDate);\n  }\n\n  return License<T>(props as LicenseProps<T>);\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\n\n// types\nimport { LicenseeMethods, LicenseeProps, LicenseeEntity } from '@/types/entities/Licensee';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n/**\n * Licensee entity used internally by NetLicensing.\n *\n * Properties visible via NetLicensing  API:\n *\n * Unique number (across all products of a vendor) that identifies the licensee. Vendor can assign this\n * number when creating a licensee or let NetLicensing  generate one. Read-only after creation of the first license for\n * the licensee.\n * @property string number\n *\n * Licensee name.\n * @property string name\n *\n * If set to false, the licensee is disabled. Licensee can not obtain new licenses, and validation is\n * disabled (tbd).\n * @property boolean active\n *\n * Licensee Secret for licensee deprecated use Node-Locked Licensing Model instead\n * @property string licenseeSecret\n *\n * Mark licensee for transfer.\n * @property boolean markedForTransfer\n *\n * Arbitrary additional user properties of string type may be associated with each licensee. The name of user property\n * must not be equal to any of the fixed property names listed above and must be none of id, deleted, productNumber\n */\n\nconst Licensee = function <T extends object>(properties: LicenseeProps<T> = {} as LicenseeProps<T>): LicenseeEntity<T> {\n  const props: LicenseeProps = { ...properties };\n\n  const methods: LicenseeMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setName(this: void, name: string): void {\n      set(props, 'name', name);\n    },\n\n    getName<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'name', def) as string | D;\n    },\n\n    setProductNumber(this: void, number: string): void {\n      set(props, 'productNumber', number);\n    },\n\n    getProductNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'productNumber', def) as string | D;\n    },\n\n    setMarkedForTransfer(this: void, mark: boolean): void {\n      set(props, 'markedForTransfer', mark);\n    },\n\n    getMarkedForTransfer<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'markedForTransfer', def) as boolean | D;\n    },\n\n    serialize(this: void): Record<string, string> {\n      return serialize(props, { ignore: ['inUse'] });\n    },\n  };\n\n  return defineEntity(props as LicenseeProps<T>, methods, Licensee);\n};\n\nexport default Licensee;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport Licensee from '@/entities/Licensee';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { LicenseeProps } from '@/types/entities/Licensee';\n\nexport default <T extends object = LicenseeProps>(item?: Item) => {\n  const props = itemToObject<Record<string, unknown>>(item, {\n    active: 'boolean',\n    number: 'string',\n    name: 'string',\n    markedForTransfer: 'boolean',\n    productNumber: 'string',\n    inUse: 'boolean',\n  });\n\n  const { aliases } = props;\n\n  if (aliases && typeof aliases === 'string') {\n    props.aliases = aliases.split(',');\n  }\n  \n  return Licensee<T>(props as LicenseeProps<T>);\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\n\n// types\nimport { LicenseTypeValues } from '@/types/constants/LicenseType';\nimport {\n  LicenseTemplateMethods,\n  LicenseTemplateProps,\n  LicenseTemplateEntity,\n} from '@/types/entities/LicenseTemplate';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n/**\n * License template entity used internally by NetLicensing.\n *\n * Properties visible via NetLicensing  API:\n *\n * Unique number (across all products of a vendor) that identifies the license template. Vendor can\n * assign this number when creating a license template or let NetLicensing  generate one.\n * Read-only after creation of the first license from this license template.\n * @property string number\n *\n * If set to false, the license template is disabled. Licensee can not obtain any new licenses off this\n * license template.\n * @property boolean active\n *\n * Name for the licensed item.\n * @property string name\n *\n * Type of licenses created from this license template. Supported types: \"FEATURE\", \"TIMEVOLUME\",\n * \"FLOATING\", \"QUANTITY\"\n * @property string licenseType\n *\n * Price for the license. If >0, it must always be accompanied by the currency specification.\n * @property number price\n *\n * Specifies currency for the license price. Check data types to discover which currencies are\n * supported.\n * @property string currency\n *\n * If set to true, every new licensee automatically gets one license out of this license template on\n * creation. Automatic licenses must have their price set to 0.\n * @property boolean automatic\n *\n * If set to true, this license template is not shown in NetLicensing  Shop as offered for purchase.\n * @property boolean hidden\n *\n * If set to true, licenses from this license template are not visible to the end customer, but\n * participate in validation.\n * @property boolean hideLicenses\n *\n * If set to true, this license template defines grace period of validity granted after subscription expiration.\n * @property boolean gracePeriod\n *\n * Mandatory for 'TIMEVOLUME' license type.\n * @property number timeVolume\n *\n * Time volume period for 'TIMEVOLUME' license type. Supported types: \"DAY\", \"WEEK\", \"MONTH\", \"YEAR\"\n * @property string timeVolumePeriod\n *\n * Mandatory for 'FLOATING' license type.\n * @property number maxSessions\n *\n * Mandatory for 'QUANTITY' license type.\n * @property number quantity\n */\n\nconst LicenseTemplate = function <T extends object>(\n  properties: LicenseTemplateProps<T> = {} as LicenseTemplateProps<T>,\n): LicenseTemplateEntity<T> {\n  const props: LicenseTemplateProps = { ...properties };\n\n  const methods: LicenseTemplateMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setName(this: void, name: string): void {\n      set(props, 'name', name);\n    },\n\n    getName<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'name', def) as string | D;\n    },\n\n    setLicenseType(this: void, type: LicenseTypeValues): void {\n      set(props, 'licenseType', type);\n    },\n\n    getLicenseType<D = undefined>(this: void, def?: D): LicenseTypeValues | D {\n      return get(props, 'licenseType', def) as LicenseTypeValues | D;\n    },\n\n    setPrice(this: void, price: number): void {\n      set(props, 'price', price);\n    },\n\n    getPrice<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'price', def) as number | D;\n    },\n\n    setCurrency(this: void, currency: string): void {\n      set(props, 'currency', currency);\n    },\n\n    getCurrency<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'currency', def) as string | D;\n    },\n\n    setAutomatic(this: void, automatic: boolean): void {\n      set(props, 'automatic', automatic);\n    },\n\n    getAutomatic<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'automatic', def) as boolean | D;\n    },\n\n    setHidden(this: void, hidden: boolean): void {\n      set(props, 'hidden', hidden);\n    },\n\n    getHidden<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'hidden', def) as boolean | D;\n    },\n\n    setHideLicenses(this: void, hideLicenses: boolean): void {\n      set(props, 'hideLicenses', hideLicenses);\n    },\n\n    getHideLicenses<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'hideLicenses', def) as boolean | D;\n    },\n\n    setProductModuleNumber(this: void, productModuleNumber: string): void {\n      set(props, 'productModuleNumber', productModuleNumber);\n    },\n\n    getProductModuleNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'productModuleNumber', def) as string | D;\n    },\n\n    serialize(this: void): Record<string, string> {\n      return serialize(props, { ignore: ['inUse'] });\n    },\n  };\n\n  return defineEntity(props as LicenseTemplateProps<T>, methods, LicenseTemplate);\n};\n\nexport default LicenseTemplate;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport LicenseTemplate from '@/entities/LicenseTemplate';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { LicenseTemplateProps } from '@/types/entities/LicenseTemplate';\n\nexport default <T extends object = LicenseTemplateProps>(item?: Item) =>\n  LicenseTemplate<T>(\n    itemToObject<T>(item, {\n      active: 'boolean',\n      number: 'string',\n      name: 'string',\n      licenseType: 'string',\n      price: 'number',\n      currency: 'string',\n      automatic: 'boolean',\n      hidden: 'boolean',\n      hideLicenses: 'boolean',\n      productModuleNumber: 'string',\n      inUse: 'boolean',\n    }),\n  );\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\nimport { NotificationEventValues } from '@/types/constants/NotificationEvent';\nimport { NotificationProtocolValues } from '@/types/constants/NotificationProtocol';\n\n// types\nimport { NotificationMethods, NotificationProps, NotificationEntity } from '@/types/entities/Notification';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n/**\n * NetLicensing Notification entity.\n *\n * Properties visible via NetLicensing  API:\n *\n * Unique number that identifies the notification. Vendor can assign this number when creating a notification or\n * let NetLicensing generate one.\n * @property string number\n *\n * If set to false, the notification is disabled. The notification will not be fired when the event triggered.\n * @property boolean active\n *\n * Notification name.\n * @property string name\n *\n * Notification type. Indicate the method of transmitting notification, ex: EMAIL, WEBHOOK.\n * @property float type\n *\n * Comma separated string of events that fire the notification when emitted.\n * @property string events\n *\n * Notification response payload.\n * @property string payload\n *\n * Notification response url. Optional. Uses only for WEBHOOK type notification.\n * @property string url\n *\n * Arbitrary additional user properties of string type may be associated with each notification.\n * The name of user property must not be equal to any of the fixed property names listed above and must be none of id,\n * deleted.\n */\n\nconst Notification = function <T extends object>(\n  properties: NotificationProps<T> = {} as NotificationProps<T>,\n): NotificationEntity<T> {\n  const props: NotificationProps = { ...properties };\n\n  const methods: NotificationMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setName(this: void, name: string): void {\n      set(props, 'name', name);\n    },\n\n    getName<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'name', def) as string | D;\n    },\n\n    setProtocol(this: void, protocol: NotificationProtocolValues): void {\n      set(props, 'protocol', protocol);\n    },\n\n    getProtocol<D = undefined>(this: void, def?: D): NotificationProtocolValues | D {\n      return get(props, 'protocol', def) as NotificationProtocolValues | D;\n    },\n\n    setEvents(this: void, events: NotificationEventValues[]): void {\n      set(props, 'events', events);\n    },\n\n    getEvents<D = undefined>(this: void, def?: D): NotificationEventValues[] | D {\n      return get(props, 'events', def) as NotificationEventValues[] | D;\n    },\n\n    addEvent(event: NotificationEventValues): void {\n      const events = this.getEvents([]) as NotificationEventValues[];\n      events.push(event);\n\n      this.setEvents(events);\n    },\n\n    setPayload(this: void, payload: string): void {\n      set(props, 'payload', payload);\n    },\n\n    getPayload<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'payload', def) as string | D;\n    },\n\n    setEndpoint(this: void, endpoint: string): void {\n      set(props, 'endpoint', endpoint);\n    },\n\n    getEndpoint<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'endpoint', def) as string | D;\n    },\n\n    serialize(): Record<string, string> {\n      const data = serialize(props);\n\n      if (data.events) {\n        data.events = this.getEvents([]).join(',');\n      }\n\n      return data;\n    },\n  };\n\n  return defineEntity(props as NotificationProps<T>, methods, Notification);\n};\n\nexport default Notification;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport Notification from '@/entities/Notification';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { NotificationProps } from '@/types/entities/Notification';\n\nexport default <T extends object = NotificationProps>(item?: Item) => {\n  const props = itemToObject<Record<string, unknown>>(item, {\n    active: 'boolean',\n    number: 'string',\n    name: 'string',\n    protocol: 'string',\n    events: 'string',\n    payload: 'string',\n    endpoint: 'string',\n  });\n\n  const { events } = props;\n\n  if (events && typeof events === 'string') {\n    props.events = events.split(',');\n  }\n\n  return Notification<T>(props as NotificationProps<T>);\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\n\n// types\nimport { PaymentMethodMethods, PaymentMethodProps, PaymentMethodEntity } from '@/types/entities/PaymentMethod';\n\n// utils\nimport { set, get } from '@/utils/helpers';\n\n/**\n * PaymentMethod entity used internally by NetLicensing.\n *\n * @property string number\n * @property boolean active\n * @property string paypal.subject\n */\nconst PaymentMethod = function <T extends object>(\n  properties: PaymentMethodProps<T> = {} as PaymentMethodProps<T>,\n): PaymentMethodEntity<T> {\n  const props: PaymentMethodProps = { ...properties };\n\n  const methods: PaymentMethodMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n  };\n\n  return defineEntity(props as PaymentMethodProps<T>, methods, PaymentMethod);\n};\n\nexport default PaymentMethod;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport PaymentMethod from '@/entities/PaymentMethod';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { PaymentMethodProps } from '@/types/entities/PaymentMethod';\n\nexport default <T extends object = PaymentMethodProps>(item?: Item) =>\n  PaymentMethod<T>(\n    itemToObject<T>(item, {\n      active: 'boolean',\n      number: 'string',\n    }),\n  );\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\n\n// types\nimport { ProductProps, ProductEntity, ProductMethods } from '@/types/entities/Product';\nimport { ProductDiscountEntity } from '@/types/entities/ProductDiscount';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n/**\n * NetLicensing  Product entity.\n *\n * Properties visible via NetLicensing  API:\n *\n * Unique number that identifies the product. Vendor can assign this number when creating a product or\n * let NetLicensing  generate one. Read-only after creation of the first licensee for the product.\n * @property string number\n *\n * If set to false, the product is disabled. No new licensees can be registered for the product,\n * existing licensees can not obtain new licenses.\n * @property boolean active\n *\n * Product name. Together with the version identifies the product for the end customer.\n * @property string name\n *\n * Product version. Convenience parameter, additional to the product name.\n * @property string version\n *\n * If set to 'true', non-existing licensees will be created at first validation attempt.\n * @property boolean licenseeAutoCreate\n *\n * Licensee secret mode for product.Supported types: \"DISABLED\", \"PREDEFINED\", \"CLIENT\"\n * @property boolean licenseeSecretMode\n *\n * Product description. Optional.\n * @property string description\n *\n * Licensing information. Optional.\n * @property string licensingInfo\n *\n * @property boolean inUse\n *\n * Arbitrary additional user properties of string type may be associated with each product. The name of user property\n * must not be equal to any of the fixed property names listed above and must be none of id, deleted.\n */\nconst Product = function <T extends object = object>(\n  properties: ProductProps<T> = {} as ProductProps<T>,\n): ProductEntity<T> {\n  const props: ProductProps = { ...properties };\n\n  const methods: ProductMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setName(this: void, name: string): void {\n      set(props, 'name', name);\n    },\n\n    getName<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'name', def) as string | D;\n    },\n\n    setVersion(this: void, version: string): void {\n      set(props, 'version', version);\n    },\n\n    getVersion<D = undefined>(this: void, def?: D): string | number | D {\n      return get(props, 'version', def) as string | number | D;\n    },\n\n    setDescription(this: void, description: string): void {\n      set(props, 'description', description);\n    },\n\n    getDescription<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'description', def) as string | D;\n    },\n\n    setLicensingInfo(this: void, licensingInfo: string): void {\n      set(props, 'licensingInfo', licensingInfo);\n    },\n\n    getLicensingInfo<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'licensingInfo', def) as string | D;\n    },\n\n    setLicenseeAutoCreate(this: void, licenseeAutoCreate: boolean): void {\n      set(props, 'licenseeAutoCreate', licenseeAutoCreate);\n    },\n\n    getLicenseeAutoCreate<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'licenseeAutoCreate', def) as boolean | D;\n    },\n\n    setDiscounts(this: void, discounts: ProductDiscountEntity[]): void {\n      set(props, 'discounts', discounts);\n    },\n\n    getDiscounts<D = undefined>(this: void, def?: D): ProductDiscountEntity[] | D {\n      return get(props, 'discounts', def) as ProductDiscountEntity[] | D;\n    },\n\n    addDiscount(discount: ProductDiscountEntity): void {\n      const discounts = this.getDiscounts([] as ProductDiscountEntity[]);\n      discounts.push(discount);\n\n      this.setDiscounts(discounts);\n    },\n\n    removeDiscount(discount: ProductDiscountEntity): void {\n      const discounts = this.getDiscounts();\n\n      if (Array.isArray(discounts) && discounts.length > 0) {\n        discounts.splice(discounts.indexOf(discount), 1);\n        this.setDiscounts(discounts);\n      }\n    },\n\n    setProductDiscounts(productDiscounts: ProductDiscountEntity[]): void {\n      this.setDiscounts(productDiscounts);\n    },\n\n    getProductDiscounts<D = undefined>(def?: D): ProductDiscountEntity[] | D {\n      return this.getDiscounts(def);\n    },\n\n    serialize(): Record<string, string | string[]> {\n      const map: Record<string, string | string[]> = serialize(props, { ignore: ['discounts', 'inUse'] });\n      const discounts = this.getDiscounts();\n\n      if (discounts) {\n        map.discount = discounts.length > 0 ? discounts.map((discount) => discount.toString()) : '';\n      }\n\n      return map;\n    },\n  };\n\n  return defineEntity(props as ProductProps<T>, methods, Product);\n};\n\nexport default Product;\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\n\nexport default class NlicError<T = unknown, D = unknown> extends AxiosError<T, D> {\n  isNlicError = true;\n\n  constructor(\n    message?: string,\n    code?: string,\n    config?: InternalAxiosRequestConfig<D>,\n    request?: unknown,\n    response?: AxiosResponse<T, D>,\n    stack?: string,\n  ) {\n    super(message, code, config, request, response);\n    this.name = 'NlicError';\n\n    if (stack) {\n      this.stack = stack;\n    }\n\n    Object.setPrototypeOf(this, NlicError.prototype);\n  }\n}\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\n\n// errors\nimport NlicError from '@/errors/NlicError';\n\n// types\nimport { ProductDiscountMethods, ProductDiscountProps, ProductDiscountEntity } from '@/types/entities/ProductDiscount';\n\n// utils\nimport { set, get } from '@/utils/helpers';\n\nconst ProductDiscount = function (\n  properties: ProductDiscountProps = {} as ProductDiscountProps,\n): ProductDiscountEntity {\n  const props: ProductDiscountProps = { ...properties };\n\n  if (props.amountFix && props.amountPercent) {\n    throw new NlicError('Properties \"amountFix\" and \"amountPercent\" cannot be used at the same time');\n  }\n\n  const methods: ProductDiscountMethods = {\n    setTotalPrice(this: void, totalPrice: number): void {\n      set(props, 'totalPrice', totalPrice);\n    },\n\n    getTotalPrice<D>(this: void, def?: D): number | D {\n      return get(props, 'totalPrice', def) as number | D;\n    },\n\n    setCurrency(currency: string): void {\n      set(props, 'currency', currency);\n    },\n\n    getCurrency<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'currency', def) as string | D;\n    },\n\n    setAmountFix(this: void, amountFix: number): void {\n      set(props, 'amountFix', amountFix);\n    },\n\n    getAmountFix<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'amountFix', def) as number | D;\n    },\n\n    setAmountPercent(this: void, amountPercent: number): void {\n      set(props, 'amountPercent', amountPercent);\n    },\n\n    getAmountPercent<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'amountPercent', def) as number | D;\n    },\n\n    toString() {\n      const total = this.getTotalPrice();\n      const currency = this.getCurrency();\n      const amount = this.getAmountPercent() ? `${this.getAmountPercent()}%` : this.getAmountFix();\n\n      return total && currency && amount ? `${total};${currency};${amount}` : '';\n    },\n  };\n\n  return defineEntity(props, methods, ProductDiscount, {\n    set: (obj, prop) => {\n      if (prop === 'amountFix') {\n        delete obj.amountPercent;\n      }\n\n      if (prop === 'amountPercent') {\n        delete obj.amountFix;\n      }\n    },\n  });\n};\n\nexport default ProductDiscount;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport Product from '@/entities/Product';\nimport ProductDiscount from '@/entities/ProductDiscount';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { ProductProps } from '@/types/entities/Product';\nimport { ProductDiscountEntity } from '@/types/entities/ProductDiscount';\n\nexport default <T extends object = ProductProps>(item?: Item) => {\n  const props = itemToObject<Record<string, unknown>>(item, {\n    number: 'string',\n    name: 'string',\n    version: 'string',\n    description: 'string',\n    licensingInfo: 'string',\n    licenseeAutoCreate: 'boolean',\n    inUse: 'boolean',\n  });\n\n  const discounts: ProductDiscountEntity[] | undefined = props.discount as ProductDiscountEntity[] | undefined;\n  delete props.discount;\n\n  if (discounts) {\n    props.discounts = discounts.map((d) => ProductDiscount(d));\n  }\n\n  return Product<T>(props as ProductProps<T>);\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\nimport { LicensingModelValues } from '@/types/constants/LicensingModel';\n\n// types\nimport {\n  ProductModuleEntity,\n  ProductModuleMethods,\n  ProductModuleProps,\n} from '@/types/entities/ProductModule';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n/**\n * Product module entity used internally by NetLicensing.\n *\n * Properties visible via NetLicensing API:\n *\n * Unique number (across all products of a vendor) that identifies the product module. Vendor can assign\n * this number when creating a product module or let NetLicensing generate one. Read-only after creation of the first\n * licensee for the product.\n * @property string number\n *\n * If set to false, the product module is disabled. Licensees can not obtain any new licenses for this\n * product module.\n * @property boolean active\n *\n * Product module name that is visible to the end customers in NetLicensing Shop.\n * @property string name\n *\n * Licensing model applied to this product module. Defines what license templates can be\n * configured for the product module and how licenses for this product module are processed during validation.\n * @property string licensingModel\n *\n * Maximum checkout validity (days). Mandatory for 'Floating' licensing model.\n * @property number maxCheckoutValidity\n *\n * Remaining time volume for yellow level. Mandatory for 'Rental' licensing model.\n * @property number yellowThreshold\n *\n * Remaining time volume for red level. Mandatory for 'Rental' licensing model.\n * @property number redThreshold\n */\n\nconst ProductModule = function <T extends object = object>(\n  properties: ProductModuleProps<T> = {} as ProductModuleProps<T>,\n): ProductModuleEntity<T> {\n  const props: ProductModuleProps = { ...properties };\n\n  const methods: ProductModuleMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setName(this: void, name: string): void {\n      set(props, 'name', name);\n    },\n\n    getName<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'name', def) as string | D;\n    },\n\n    setLicensingModel(licensingModel: LicensingModelValues): void {\n      set(props, 'licensingModel', licensingModel);\n    },\n\n    getLicensingModel<D = undefined>(this: void, def?: D): LicensingModelValues | D {\n      return get(props, 'licensingModel', def) as LicensingModelValues | D;\n    },\n\n    setProductNumber(this: void, productNumber: string): void {\n      set(props, 'productNumber', productNumber);\n    },\n\n    getProductNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'productNumber', def) as string | D;\n    },\n\n    serialize(this: void): Record<string, string> {\n      return serialize(props, { ignore: ['inUse'] });\n    },\n  };\n\n  return defineEntity(props as ProductModuleProps<T>, methods, ProductModule);\n};\n\nexport default ProductModule;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport ProductModule from '@/entities/ProductModule';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { ProductModuleProps } from '@/types/entities/ProductModule';\n\nexport default <T extends object = ProductModuleProps>(item?: Item) =>\n  ProductModule<T>(\n    itemToObject<T>(item, {\n      active: 'boolean',\n      number: 'string',\n      name: 'string',\n      licensingModel: 'string',\n      productNumber: 'string',\n      inUse: 'boolean',\n    }),\n  );\n","/**\n * Token\n *\n * @see https://netlicensing.io/wiki/token-services#create-token\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n *\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\n\n// types\nimport { ApiKeyRoleValues } from '@/types/constants/ApiKeyRole';\nimport { TokenTypeValues } from '@/types/constants/TokenType';\nimport { TokenProps, TokenEntity, TokenMethods } from '@/types/entities/Token';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\nconst Token = function <T extends object = object>(properties: TokenProps<T> = {} as TokenProps<T>): TokenEntity<T> {\n  const props: TokenProps = { ...properties };\n\n  const methods: TokenMethods = {\n    setActive(this: void, active: boolean): void {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setExpirationTime(this: void, expirationTime: Date): void {\n      set(props, 'expirationTime', expirationTime);\n    },\n\n    getExpirationTime<D = undefined>(this: void, def?: D): Date | D {\n      return get(props, 'expirationTime', def) as Date | D;\n    },\n\n    setTokenType(this: void, tokenType: TokenTypeValues): void {\n      set(props, 'tokenType', tokenType);\n    },\n\n    getTokenType<D = undefined>(this: void, def?: D): TokenTypeValues | D {\n      return get(props, 'tokenType', def) as TokenTypeValues | D;\n    },\n\n    setLicenseeNumber(this: void, licenseeNumber: string): void {\n      set(props, 'licenseeNumber', licenseeNumber);\n    },\n\n    getLicenseeNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'licenseeNumber', def) as string | D;\n    },\n\n    setAction(this: void, action: string): void {\n      set(props, 'action', action);\n    },\n\n    getAction<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'action', def) as string | D;\n    },\n\n    setApiKeyRole(this: void, apiKeyRole: ApiKeyRoleValues): void {\n      set(props, 'apiKeyRole', apiKeyRole);\n    },\n\n    getApiKeyRole<D = undefined>(this: void, def?: D): ApiKeyRoleValues | D {\n      return get(props, 'apiKeyRole', def) as ApiKeyRoleValues | D;\n    },\n\n    setBundleNumber(this: void, bundleNumber: string): void {\n      set(props, 'bundleNumber', bundleNumber);\n    },\n\n    getBundleNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'bundleNumber', def) as string | D;\n    },\n\n    setBundlePrice(this: void, bundlePrice: number): void {\n      set(props, 'bundlePrice', bundlePrice);\n    },\n\n    getBundlePrice<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'bundlePrice', def) as number | D;\n    },\n\n    setProductNumber(this: void, productNumber: string): void {\n      set(props, 'productNumber', productNumber);\n    },\n\n    getProductNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'productNumber', def) as string | D;\n    },\n\n    setPredefinedShoppingItem(this: void, predefinedShoppingItem: string): void {\n      set(props, 'predefinedShoppingItem', predefinedShoppingItem);\n    },\n\n    getPredefinedShoppingItem<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'predefinedShoppingItem', def) as string | D;\n    },\n\n    setSuccessURL(this: void, successURL: string): void {\n      set(props, 'successURL', successURL);\n    },\n\n    getSuccessURL<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'successURL', def) as string | D;\n    },\n\n    setSuccessURLTitle(this: void, successURLTitle: string): void {\n      set(props, 'successURLTitle', successURLTitle);\n    },\n\n    getSuccessURLTitle<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'successURLTitle', def) as string | D;\n    },\n\n    setCancelURL(this: void, cancelURL: string): void {\n      set(props, 'cancelURL', cancelURL);\n    },\n\n    getCancelURL<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'cancelURL', def) as string | D;\n    },\n\n    setCancelURLTitle(this: void, cancelURLTitle: string): void {\n      set(props, 'cancelURLTitle', cancelURLTitle);\n    },\n\n    getCancelURLTitle<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'cancelURLTitle', def) as string | D;\n    },\n\n    getShopURL<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'shopURL', def) as string | D;\n    },\n\n    serialize(this: void): Record<string, string> {\n      return serialize(props, { ignore: ['shopURL'] });\n    },\n  };\n\n  return defineEntity(props as TokenProps<T>, methods, Token);\n};\n\nexport default Token;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\nimport Token from '@/entities/Token';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { TokenProps } from '@/types/entities/Token';\n\nexport default <T extends object = TokenProps>(item?: Item) => {\n  const props = itemToObject<Record<string, unknown>>(item, {\n    active: 'boolean',\n    number: 'string',\n    expirationTime: 'string',\n    tokenType: 'string',\n    licenseeNumber: 'string',\n    action: 'string',\n    apiKeyRole: 'string',\n    bundleNumber: 'string',\n    bundlePrice: 'number',\n    productNumber: 'string',\n    predefinedShoppingItem: 'string',\n    successURL: 'string',\n    successURLTitle: 'string',\n    cancelURL: 'string',\n    cancelURLTitle: 'string',\n    shopURL: 'string',\n  });\n\n  const { expirationTime } = props;\n\n  if (expirationTime && typeof expirationTime === 'string') {\n    props.expirationTime = new Date(expirationTime);\n  }\n\n  return Token<T>(props as TokenProps<T>);\n};\n","// types\nimport type { LicenseEntity } from '@/types/entities/License';\nimport type { LicenseTransactionJoinEntity as ILicenseTransactionJoin } from '@/types/entities/LicenseTransactionJoin';\nimport type { TransactionEntity } from '@/types/entities/Transaction';\n\n/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n\nclass LicenseTransactionJoin implements ILicenseTransactionJoin {\n  transaction: TransactionEntity;\n  license: LicenseEntity;\n\n  constructor(transaction: TransactionEntity, license: LicenseEntity) {\n    this.transaction = transaction;\n    this.license = license;\n  }\n\n  setTransaction(transaction: TransactionEntity): void {\n    this.transaction = transaction;\n  }\n\n  getTransaction(): TransactionEntity {\n    return this.transaction;\n  }\n\n  setLicense(license: LicenseEntity): void {\n    this.license = license;\n  }\n\n  getLicense(): LicenseEntity {\n    return this.license;\n  }\n}\n\nexport default (transaction: TransactionEntity, license: LicenseEntity) =>\n  new LicenseTransactionJoin(transaction, license);\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// entity factory\nimport defineEntity from '@/entities/defineEntity';\n\n// types\nimport { PaymentMethodValues } from '@/types/constants/PaymentMethodEnum';\nimport { TransactionSourceValues } from '@/types/constants/TransactionSource';\nimport { TransactionStatusValues } from '@/types/constants/TransactionStatus';\nimport { LicenseTransactionJoinEntity } from '@/types/entities/LicenseTransactionJoin';\nimport { TransactionMethods, TransactionProps, TransactionEntity } from '@/types/entities/Transaction';\n\n// utils\nimport { set, get } from '@/utils/helpers';\nimport serialize from '@/utils/serialize';\n\n/**\n * Transaction entity used internally by NetLicensing.\n *\n * Properties visible via NetLicensing API:\n *\n * Unique number (across all products of a vendor) that identifies the transaction. This number is\n * always generated by NetLicensing.\n * @property string number\n *\n * always true for transactions\n * @property boolean active\n *\n * Status of transaction. \"CANCELLED\", \"CLOSED\", \"PENDING\".\n * @property string status\n *\n * \"SHOP\". AUTO transaction for internal use only.\n * @property string source\n *\n * grand total for SHOP transaction (see source).\n * @property number grandTotal\n *\n * discount for SHOP transaction (see source).\n * @property number discount\n *\n * specifies currency for money fields (grandTotal and discount). Check data types to discover which\n * @property string currency\n *\n * Date created. Optional.\n * @property string dateCreated\n *\n * Date closed. Optional.\n * @property string dateClosed\n */\n\nconst Transaction = function <T extends object>(\n  properties: TransactionProps<T> = {} as TransactionProps<T>,\n): TransactionEntity<T> {\n  const props: TransactionProps = { ...properties };\n\n  const methods: TransactionMethods = {\n    setActive(this: void, active: boolean) {\n      set(props, 'active', active);\n    },\n\n    getActive<D = undefined>(this: void, def?: D): boolean | D {\n      return get(props, 'active', def) as boolean | D;\n    },\n\n    setNumber(this: void, number: string): void {\n      set(props, 'number', number);\n    },\n\n    getNumber<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'number', def) as string | D;\n    },\n\n    setStatus(this: void, status: TransactionStatusValues): void {\n      set(props, 'status', status);\n    },\n\n    getStatus<D = undefined>(this: void, def?: D): TransactionStatusValues | D {\n      return get(props, 'status', def) as TransactionStatusValues | D;\n    },\n\n    setSource(this: void, source: TransactionSourceValues): void {\n      set(props, 'source', source);\n    },\n    getSource<D = undefined>(this: void, def?: D): TransactionSourceValues | D {\n      return get(props, 'source', def) as TransactionSourceValues | D;\n    },\n    setGrandTotal(this: void, grandTotal: number): void {\n      set(props, 'grandTotal', grandTotal);\n    },\n    getGrandTotal<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'grandTotal', def) as number | D;\n    },\n\n    setDiscount(this: void, discount: number): void {\n      set(props, 'discount', discount);\n    },\n\n    getDiscount<D = undefined>(this: void, def?: D): number | D {\n      return get(props, 'discount', def) as number | D;\n    },\n\n    setCurrency(this: void, currency: string): void {\n      set(props, 'currency', currency);\n    },\n\n    getCurrency<D = undefined>(this: void, def?: D): string | D {\n      return get(props, 'currency', def) as string | D;\n    },\n\n    setDateCreated(this: void, dateCreated: Date): void {\n      set(props, 'dateCreated', dateCreated);\n    },\n\n    getDateCreated<D = undefined>(this: void, def?: D): Date | D {\n      return get(props, 'dateCreated', def) as Date | D;\n    },\n\n    setDateClosed(this: void, dateCreated: Date): void {\n      set(props, 'dateClosed', dateCreated);\n    },\n\n    getDateClosed<D = undefined>(this: void, def?: D): Date | D {\n      return get(props, 'dateClosed', def) as Date | D;\n    },\n\n    setPaymentMethod(this: void, paymentMethod: PaymentMethodValues): void {\n      set(props, 'paymentMethod', paymentMethod);\n    },\n\n    getPaymentMethod<D = undefined>(this: void, def?: D): PaymentMethodValues | D {\n      return get(props, 'paymentMethod', def) as PaymentMethodValues | D;\n    },\n\n    setLicenseTransactionJoins(this: void, joins: LicenseTransactionJoinEntity[]): void {\n      set(props, 'licenseTransactionJoins', joins);\n    },\n\n    getLicenseTransactionJoins<D = undefined>(this: void, def?: D): LicenseTransactionJoinEntity[] | D {\n      return get(props, 'licenseTransactionJoins', def) as LicenseTransactionJoinEntity[] | D;\n    },\n\n    serialize(this: void) {\n      const clone: Record<string, unknown> = {...props};\n\n      clone.datecreated = props.dateCreated;\n      clone.dateclosed = props.dateClosed\n\n      delete clone.dateCreated;\n      delete clone.dateClosed;\n\n      return serialize(clone, { ignore: ['licenseTransactionJoins', 'inUse'] });\n    },\n  };\n\n  return defineEntity(props as TransactionProps<T>, methods, Transaction);\n};\n\nexport default Transaction;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport itemToObject from '@/converters/itemToObject';\n\n// entities\nimport License from '@/entities/License';\nimport LicenseTransactionJoin from '@/entities/LicenseTransactionJoin';\nimport Transaction from '@/entities/Transaction';\n\n// types\nimport { Item } from '@/types/api/response';\nimport { TransactionProps } from '@/types/entities/Transaction';\n\nexport default <T extends object = TransactionProps>(item?: Item) => {\n  const props = itemToObject<Record<string, unknown>>(item, {\n    active: 'boolean',\n    number: 'string',\n    status: 'string',\n    source: 'string',\n    grandTotal: 'number',\n    discount: 'number',\n    currency: 'string',\n    datecreated: 'string',\n    dateclosed: 'string',\n    paymentMethod: 'string',\n    licenseTransactionJoins: 'json',\n    inUse: 'boolean',\n  });\n\n  const { datecreated: dateCreated, dateclosed: dateClosed } = props;\n\n  if (dateCreated && typeof dateCreated === 'string') {\n    props.dateCreated = new Date(dateCreated);\n    delete props.datecreated;\n  }\n\n  if (dateClosed && typeof dateClosed === 'string') {\n    props.dateClosed = new Date(dateClosed);\n    delete props.dateclosed;\n  }\n\n  type LicenseTransactionJoins = { licenseNumber: string | number; transactionNumber: string | number }[] | undefined;\n  const licenseTransactionJoins: LicenseTransactionJoins = props.licenseTransactionJoin as LicenseTransactionJoins;\n\n  delete props.licenseTransactionJoin;\n\n  if (licenseTransactionJoins) {\n    props.licenseTransactionJoins = licenseTransactionJoins.map(({ transactionNumber, licenseNumber }) => {\n      const transaction = Transaction({ number: String(transactionNumber) });\n      const license = License({ number: String(licenseNumber) });\n\n      return LicenseTransactionJoin(transaction, license);\n    });\n  }\n\n  return Transaction<T>(props as TransactionProps<T>);\n};\n","import axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport { Info } from '@/types/api/response';\n\nlet axiosInstance: AxiosInstance = axios.create();\nlet lastResponse: AxiosResponse | null = null;\nlet info: Info[] = [];\n\nexport const setAxiosInstance = (instance: AxiosInstance): void => {\n  axiosInstance = instance;\n};\n\nexport const getAxiosInstance = (): AxiosInstance => axiosInstance;\n\nexport const setLastResponse = (response: AxiosResponse | null): void => {\n  lastResponse = response;\n};\n\nexport const getLastResponse = (): AxiosResponse | null => lastResponse;\n\nexport const setInfo = (infos: Info[]): void => {\n  info = infos;\n};\n\nexport const getInfo = (): Info[] => info;\n","{\n  \"name\": \"netlicensing-client\",\n  \"version\": \"2.0.4\",\n  \"description\": \"JavaScript Wrapper for Labs64 NetLicensing RESTful API\",\n  \"keywords\": [\n    \"labs64\",\n    \"netlicensing\",\n    \"licensing\",\n    \"licensing-as-a-service\",\n    \"license\",\n    \"license-management\",\n    \"software-license\",\n    \"client\",\n    \"restful\",\n    \"restful-api\",\n    \"javascript\",\n    \"wrapper\",\n    \"api\",\n    \"client\"\n  ],\n  \"license\": \"Apache-2.0\",\n  \"author\": \"Labs64 GmbH\",\n  \"homepage\": \"https://netlicensing.io\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/Labs64/NetLicensingClient-javascript.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/Labs64/NetLicensingClient-javascript/issues\"\n  },\n  \"contributors\": [\n    {\n      \"name\": \"Ready Brown\",\n      \"email\": \"ready.brown@hotmail.de\",\n      \"url\": \"https://github.com/r-brown\"\n    },\n    {\n      \"name\": \"Viacheslav Rudkovskiy\",\n      \"email\": \"viachaslau.rudkovski@labs64.de\",\n      \"url\": \"https://github.com/v-rudkovskiy\"\n    },\n    {\n      \"name\": \"Andrei Yushkevich\",\n      \"email\": \"yushkevich@me.com\",\n      \"url\": \"https://github.com/yushkevich\"\n    }\n  ],\n  \"main\": \"dist/index.cjs\",\n  \"module\": \"dist/index.mjs\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/index.d.ts\",\n      \"import\": \"./dist/index.mjs\",\n      \"require\": \"./dist/index.cjs\"\n    }\n  },\n  \"files\": [\n    \"dist\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"release\": \"npm run lint:typecheck && npm run test && npm run build\",\n    \"dev\": \"tsup --watch\",\n    \"test\": \"vitest run\",\n    \"test:dev\": \"vitest watch\",\n    \"lint\": \"eslint --ext .js,.mjs,.ts src\",\n    \"typecheck\": \"tsc --noEmit\",\n    \"lint:typecheck\": \"npm run lint && npm run typecheck\"\n  },\n  \"peerDependencies\": {\n    \"axios\": \"^1.9.0\"\n  },\n  \"dependencies\": {},\n  \"devDependencies\": {\n    \"@eslint/js\": \"^9.39.4\",\n    \"@types/node\": \"^25.3.5\",\n    \"@typescript-eslint/eslint-plugin\": \"^8.29.1\",\n    \"@typescript-eslint/parser\": \"^8.29.1\",\n    \"@vitest/eslint-plugin\": \"^1.1.43\",\n    \"axios\": \"^1.13.6\",\n    \"eslint\": \"^9.39.4\",\n    \"eslint-plugin-import\": \"^2.31.0\",\n    \"prettier\": \"3.8.1\",\n    \"tsup\": \"^8.4.0\",\n    \"typescript\": \"^5.8.3\",\n    \"typescript-eslint\": \"^8.29.1\",\n    \"vitest\": \"^3.2.4\"\n  },\n  \"engines\": {\n    \"node\": \">= 16.9.0\",\n    \"npm\": \">= 8.0.0\"\n  },\n  \"browserslist\": [\n    \"> 1%\",\n    \"last 2 versions\",\n    \"not ie <= 10\"\n  ]\n}\n","export default <T extends Record<string, unknown>>(data: T): string => {\n  const query: string[] = [];\n\n  const build = (obj: unknown, keyPrefix?: string): void => {\n    if (obj === null || obj === undefined) {\n      return;\n    }\n\n    if (Array.isArray(obj)) {\n      obj.forEach((item) => {\n        build(item, keyPrefix ? `${keyPrefix}` : '');\n      });\n\n      return;\n    }\n\n    if (obj instanceof Date) {\n      query.push(`${keyPrefix}=${encodeURIComponent(obj.toISOString())}`);\n      return;\n    }\n\n    if (typeof obj === 'object') {\n      Object.keys(obj).forEach((key) => {\n        const value = obj[key as keyof typeof obj];\n        build(value, keyPrefix ? `${keyPrefix}[${encodeURIComponent(key)}]` : encodeURIComponent(key));\n      });\n\n      return;\n    }\n\n    query.push(`${keyPrefix}=${encodeURIComponent(obj as string)}`);\n  };\n\n  build(data);\n\n  return query.join('&');\n};\n","import { AxiosRequestConfig, Method, AxiosRequestHeaders, AxiosResponse, AxiosError } from 'axios';\n\n// constants\nimport SecurityMode from '@/constants/SecurityMode';\n\n// errors\nimport NlicError from '@/errors/NlicError';\n\n// types\nimport type { NlicResponse } from '@/types/api/response';\nimport type { AxiosRequestClient, RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\n\n// package.json\nimport pkg from '../../../package.json';\n\n// service\nimport { getAxiosInstance, setLastResponse, setInfo } from './instance';\nimport toQueryString from './toQueryString';\n\nexport default async (\n  context: ContextInstance,\n  method: Method,\n  endpoint: string,\n  data?: Record<string, unknown>,\n  config?: RequestConfig,\n): Promise<AxiosResponse<NlicResponse>> => {\n  const headers: Record<string, string> = {\n    Accept: 'application/json',\n    'X-Requested-With': 'XMLHttpRequest',\n  };\n\n  // only node.js has a process variable that is of [[Class]] process\n  if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    headers['User-agent'] = `NetLicensing/Javascript ${pkg.version}/node&${process.version}`;\n  }\n\n  const req: AxiosRequestConfig = {\n    method,\n    headers,\n    url: encodeURI(`${context.getBaseUrl()}/${endpoint}`),\n    responseType: 'json',\n    transformRequest: (d: unknown, h: AxiosRequestHeaders) => {\n      if (h['Content-Type'] === 'application/x-www-form-urlencoded') {\n        return toQueryString(d as Record<string, unknown>);\n      }\n\n      if (!h['NetLicensing-Origin']) {\n        h['NetLicensing-Origin'] = `NetLicensing/Javascript ${pkg.version}`;\n      }\n\n      return d;\n    },\n  };\n\n  if (['put', 'post', 'patch'].indexOf(method.toLowerCase()) >= 0) {\n    if (req.method === 'post') {\n      headers['Content-Type'] = 'application/x-www-form-urlencoded';\n    }\n    req.data = data;\n  } else {\n    req.params = data;\n  }\n\n  switch (context.getSecurityMode()) {\n    // Basic Auth\n    case SecurityMode.BASIC_AUTHENTICATION:\n      {\n        if (!context.getUsername()) {\n          throw new NlicError('Missing parameter \"username\"');\n        }\n\n        if (!context.getPassword()) {\n          throw new NlicError('Missing parameter \"password\"');\n        }\n\n        req.auth = {\n          username: context.getUsername(),\n          password: context.getPassword(),\n        };\n      }\n      break;\n    // ApiKey Auth\n    case SecurityMode.APIKEY_IDENTIFICATION:\n      if (!context.getApiKey()) {\n        throw new NlicError('Missing parameter \"apiKey\"');\n      }\n\n      headers.Authorization = `Basic ${btoa(`apiKey:${context.getApiKey()}`)}`;\n      break;\n    // without authorization\n    case SecurityMode.ANONYMOUS_IDENTIFICATION:\n      break;\n    default:\n      throw new NlicError('Unknown security mode');\n  }\n\n  const instance: AxiosRequestClient = config?.axiosInstance || getAxiosInstance();\n\n  try {\n    const response: AxiosResponse<NlicResponse> = await instance.request(req);\n    const info = response.data.infos?.info || [];\n\n    setLastResponse(response);\n    setInfo(info);\n\n    if (config?.onResponse) {\n      config.onResponse(response);\n    }\n\n    if (info.length > 0) {\n      if (config?.onInfo) {\n        config.onInfo(info);\n      }\n\n      const eInfo = info.find(({ type }) => type === 'ERROR');\n\n      if (eInfo) {\n        throw new NlicError(eInfo.value, eInfo.id, response.config, response.request, response);\n      }\n    }\n\n    return response;\n  } catch (e) {\n    const error = e as AxiosError;\n\n    const response = error.response;\n    const info = (response?.data as NlicResponse)?.infos?.info || [];\n\n    setLastResponse(response || null);\n    setInfo(info);\n\n    if ((e as AxiosError).isAxiosError) {\n      let message = (e as AxiosError).message;\n\n      if (response?.data && info.length > 0) {\n        const eInfo = info.find(({ type }) => type === 'ERROR');\n\n        if (eInfo) {\n          message = eInfo.value;\n        }\n      }\n\n      throw new NlicError(\n        message,\n        error.code,\n        error.config,\n        error.request,\n        error.response as AxiosResponse<NlicResponse>,\n      );\n    }\n\n    throw e;\n  }\n};\n","import type { AxiosResponse } from 'axios';\n\n// types\nimport type { NlicResponse } from '@/types/api/response';\nimport type { RequestConfig } from '@/types/services/Service';\nimport type { ContextInstance } from '@/types/vo/Context';\n\n// service\nimport request from './request';\n\nexport const get = (\n  context: ContextInstance,\n  endpoint: string,\n  data?: Record<string, unknown>,\n  config?: RequestConfig,\n): Promise<AxiosResponse<NlicResponse>> => request(context, 'get', endpoint, data, config);\n\nexport const post = (\n  context: ContextInstance,\n  endpoint: string,\n  data?: Record<string, unknown>,\n  config?: RequestConfig,\n): Promise<AxiosResponse<NlicResponse>> => request(context, 'post', endpoint, data, config);\n\nexport const del = (\n  context: ContextInstance,\n  endpoint: string,\n  data?: Record<string, unknown>,\n  config?: RequestConfig,\n): Promise<AxiosResponse<NlicResponse>> => request(context, 'delete', endpoint, data, config);\n","import { AxiosInstance, AxiosResponse, Method } from 'axios';\n\n// service\nimport { setAxiosInstance, getAxiosInstance, getLastResponse, getInfo } from '@/services/Service/instance';\nimport { get, post, del } from '@/services/Service/methods';\nimport request from '@/services/Service/request';\nimport toQueryString from '@/services/Service/toQueryString';\n\n// types\nimport { Info, NlicResponse } from '@/types/api/response';\nimport { RequestConfig, IService } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\n\nexport { get, post, del, request, toQueryString };\n\nconst service: IService = {\n  setAxiosInstance(this: void, instance: AxiosInstance) {\n    setAxiosInstance(instance);\n  },\n\n  getAxiosInstance(this: void): AxiosInstance {\n    return getAxiosInstance();\n  },\n\n  getLastHttpRequestInfo(this: void): AxiosResponse | null {\n    return getLastResponse();\n  },\n\n  getInfo(this: void): Info[] {\n    return getInfo();\n  },\n\n  get(\n    this: void,\n    context: ContextInstance,\n    endpoint: string,\n    data?: Record<string, unknown>,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    return get(context, endpoint, data, config);\n  },\n\n  post(\n    this: void,\n    context: ContextInstance,\n    endpoint: string,\n    data?: Record<string, unknown>,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    return post(context, endpoint, data, config);\n  },\n\n  delete(\n    this: void,\n    context: ContextInstance,\n    endpoint: string,\n    data?: Record<string, unknown>,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    return del(context, endpoint, data, config);\n  },\n\n  request(\n    this: void,\n    context: ContextInstance,\n    method: Method,\n    endpoint: string,\n    data?: Record<string, unknown>,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    return request(context, method, endpoint, data, config);\n  },\n\n  toQueryString<T extends Record<string, unknown>>(this: void, data: T): string {\n    return toQueryString(data);\n  },\n};\n\nexport default service;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nconst FILTER_DELIMITER = ';';\nconst FILTER_PAIR_DELIMITER = '=';\n\nexport const encode = (filter: Record<string, string | boolean | number>): string => {\n  return Object.keys(filter)\n    .map((key) => `${key}${FILTER_PAIR_DELIMITER}${String(filter[key])}`)\n    .join(FILTER_DELIMITER);\n};\n\nexport const decode = (filter: string): Record<string, string> => {\n  const result: Record<string, string> = {};\n\n  filter.split(FILTER_DELIMITER).forEach((v) => {\n    const [name, value] = v.split(FILTER_PAIR_DELIMITER);\n    result[name] = value;\n  });\n\n  return result;\n};\n\nexport default { encode, decode };\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n\nexport const isDefined = (value: unknown): boolean => {\n  return typeof value !== 'undefined' && typeof value !== 'function';\n};\n\nexport const isValid = (value: unknown): boolean => {\n  if (!isDefined(value)) {\n    return false;\n  }\n\n  if (typeof value === 'number') {\n    return !Number.isNaN(value);\n  }\n\n  return true;\n};\n\nexport const ensureNotNull = (value: unknown, name: string): void => {\n  if (value === null) {\n    throw new TypeError(`Parameter \"${name}\" cannot be null.`);\n  }\n\n  if (!isValid(value)) {\n    throw new TypeError(`Parameter \"${name}\" has an invalid value.`);\n  }\n};\n\nexport const ensureNotEmpty = (value: unknown, name: string): void => {\n  ensureNotNull(value, name);\n\n  if (!value) {\n    throw new TypeError(`Parameter \"${name}\" cannot be empty.`);\n  }\n};\n\nexport default {\n  isDefined,\n  isValid,\n  ensureNotNull,\n  ensureNotEmpty,\n};\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { ItemPagination } from '@/types/api/response';\nimport { PageInstance, Pagination, PaginationMethods } from '@/types/vo/Page';\n\nconst Page = function <T extends object>(content: T, pagination?: Partial<ItemPagination>) {\n  const pageNumber = parseInt(pagination?.pagenumber || '0', 10);\n  const itemsNumber = parseInt(pagination?.itemsnumber || '0', 10);\n  const totalPages = parseInt(pagination?.totalpages || '0', 10);\n  const totalItems = parseInt(pagination?.totalitems || '0', 10);\n\n  const page: PaginationMethods<T> = {\n    getContent(this: void): T {\n      return content;\n    },\n\n    getPagination(this: void): Pagination {\n      return {\n        pageNumber,\n        itemsNumber,\n        totalPages,\n        totalItems,\n        hasNext: totalPages > pageNumber + 1,\n      };\n    },\n\n    getPageNumber(this: void): number {\n      return pageNumber;\n    },\n\n    getItemsNumber(this: void): number {\n      return itemsNumber;\n    },\n\n    getTotalPages(this: void): number {\n      return totalPages;\n    },\n\n    getTotalItems(this: void): number {\n      return totalItems;\n    },\n\n    hasNext(this: void): boolean {\n      return totalPages > pageNumber + 1;\n    },\n  };\n\n  return new Proxy(content, {\n    get(obj: T, prop: string | symbol, receiver) {\n      if (Object.hasOwn(page, prop)) {\n        return page[prop as keyof typeof page];\n      }\n\n      return Reflect.get(obj, prop, receiver);\n    },\n\n    set(obj, prop, value, receiver) {\n      return Reflect.set(obj, prop, value, receiver);\n    },\n\n    getPrototypeOf() {\n      return (Page.prototype as object) || null;\n    },\n  }) as PageInstance<T>;\n};\n\nexport default Page;\n","/**\n * JS representation of the Bundle Service. See NetLicensingAPI for details:\n * @see https://netlicensing.io/wiki/bundle-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToBundle from '@/converters/itemToBundle';\n\n// services\nimport itemToLicense from '@/converters/itemToLicense';\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination } from '@/types/api/response';\nimport { BundleEntity, BundleProps, SavedBundleProps } from '@/types/entities/Bundle';\nimport { LicenseEntity, LicenseProps, SavedLicenseProps } from '@/types/entities/License';\nimport { IBundleService } from '@/types/services/BundleService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.Bundle.ENDPOINT_PATH;\nconst endpointObtain = Constants.Bundle.ENDPOINT_OBTAIN_PATH;\nconst type = Constants.Bundle.TYPE;\n\nconst bundleService: IBundleService = {\n  /**\n   * Gets a bundle by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/bundle-services#get-bundle\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the bundle number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the bundle object in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = BundleProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<BundleEntity<SavedBundleProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToBundle<SavedBundleProps<T>>(item);\n  },\n\n  /**\n   * Returns bundle of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/bundle-services#bundles-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of bundle entities or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = BundleProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<BundleEntity<SavedBundleProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const bundles: BundleEntity<SavedBundleProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToBundle<SavedBundleProps<T>>(v));\n\n    return Page(bundles || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates a new bundle with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/bundle-services#create-bundle\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param bundle NetLicensing.Bundle\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the newly created bundle object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = BundleProps>(\n    context: ContextInstance,\n    bundle: BundleEntity<T>,\n    config?: RequestConfig,\n  ): Promise<BundleEntity<SavedBundleProps<T>>> {\n    ensureNotNull(bundle, 'bundle');\n\n    const response = await Service.post(context, endpoint, bundle.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToBundle<SavedBundleProps<T>>(item);\n  },\n\n  /**\n   * Updates bundle properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/bundle-services#update-bundle\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * bundle number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param bundle NetLicensing.Bundle\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * updated bundle in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = BundleProps>(\n    context: ContextInstance,\n    number: string,\n    bundle: BundleEntity<T>,\n    config?: RequestConfig,\n  ): Promise<BundleEntity<SavedBundleProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(bundle, 'bundle');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, bundle.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToBundle<SavedBundleProps<T>>(item);\n  },\n\n  /**\n   * Deletes bundle.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/bundle-services#delete-bundle\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * bundle number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n\n  /**\n   * Obtain bundle.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/bundle-services#obtain-bundle\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * bundle number\n   * @param number string\n   *\n   * licensee number\n   * @param licenseeNumber String\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return array of licenses\n   * @returns {Promise}\n   */\n  async obtain<T extends object = LicenseProps>(\n    context: ContextInstance,\n    number: string,\n    licenseeNumber: string,\n    config?: RequestConfig,\n  ): Promise<LicenseEntity<SavedLicenseProps<T>>[]> {\n    ensureNotEmpty(number, 'number');\n    ensureNotEmpty(licenseeNumber, 'licenseeNumber');\n\n    const data = { [Constants.Licensee.LICENSEE_NUMBER]: licenseeNumber };\n\n    const response = await Service.post(context, `${endpoint}/${number}/${endpointObtain}`, data, config);\n    const items = response.data.items;\n\n    const licenses = items?.item.filter((v) => v.type === Constants.License.TYPE);\n\n    return licenses?.map((v) => itemToLicense<SavedLicenseProps<T>>(v)) || [];\n  },\n};\n\nexport default bundleService;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// types\nimport { ProductModuleValidation, ValidationResultsInstance } from '@/types/vo/ValidationResults';\n\n// utils\nimport { isValid } from '@/utils/validation';\n\nclass ValidationResults implements ValidationResultsInstance {\n  readonly validations: Record<string, ProductModuleValidation>;\n  ttl?: Date;\n\n  constructor() {\n    this.validations = {};\n  }\n\n  getValidators(): Record<string, ProductModuleValidation> {\n    return this.validations;\n  }\n\n  setValidation(validation: ProductModuleValidation): this {\n    this.validations[validation.productModuleNumber] = validation;\n    return this;\n  }\n\n  getValidation<D = undefined>(productModuleNumber: string, def?: D): ProductModuleValidation | D {\n    return this.validations[productModuleNumber] || def;\n  }\n\n  setProductModuleValidation(validation: ProductModuleValidation): this {\n    return this.setValidation(validation);\n  }\n\n  getProductModuleValidation<D = undefined>(productModuleNumber: string, def?: D): ProductModuleValidation | D {\n    return this.getValidation(productModuleNumber, def);\n  }\n\n  setTtl(ttl: Date | string): this {\n    if (!isValid(ttl)) {\n      throw new TypeError(`Bad ttl:${ttl.toString()}`);\n    }\n\n    this.ttl = new Date(ttl);\n    return this;\n  }\n\n  getTtl(): Date | undefined {\n    return this.ttl;\n  }\n\n  toString(): string {\n    let data = 'ValidationResult [';\n\n    Object.keys(this.validations).forEach((pmNumber) => {\n      data += `ProductModule<${pmNumber}>`;\n\n      if (pmNumber in this.validations) {\n        data += JSON.stringify(this.validations[pmNumber]);\n      }\n    });\n\n    data += ']';\n\n    return data;\n  }\n}\n\nexport default (): ValidationResultsInstance => new ValidationResults();\n","/**\n * Licensee Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/licensee-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToLicensee from '@/converters/itemToLicensee';\nimport itemToObject from '@/converters/itemToObject';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination, NlicResponse } from '@/types/api/response';\nimport { LicenseeProps, LicenseeEntity, SavedLicenseeProps } from '@/types/entities/Licensee';\nimport { ILicenseeService } from '@/types/services/LicenseeService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\nimport { ValidationParametersInstance } from '@/types/vo/ValidationParameters';\nimport { ValidationResultsInstance as IValidationResults } from '@/types/vo/ValidationResults';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\nimport ValidationResults from '@/vo/ValidationResults';\n\nconst endpoint = Constants.Licensee.ENDPOINT_PATH;\nconst endpointValidate = Constants.Licensee.ENDPOINT_PATH_VALIDATE;\nconst endpointTransfer = Constants.Licensee.ENDPOINT_PATH_TRANSFER;\nconst type = Constants.Licensee.TYPE;\n\nconst licenseeService: ILicenseeService = {\n  /**\n   * Gets licensee by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/licensee-services#get-licensee\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the licensee number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the licensee in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = LicenseeProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<LicenseeEntity<SavedLicenseeProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicensee<SavedLicenseeProps<T>>(item);\n  },\n\n  /**\n   * Returns all licensees of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/licensee-services#licensees-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of licensees (of all products) or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = LicenseeProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<LicenseeEntity<SavedLicenseeProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: LicenseeEntity<SavedLicenseeProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToLicensee<SavedLicenseeProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new licensee object with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/licensee-services#create-licensee\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * parent product to which the new licensee is to be added\n   * @param productNumber string\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param licensee NetLicensing.Licensee\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the newly created licensee object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = LicenseeProps>(\n    context: ContextInstance,\n    productNumber: string,\n    licensee: LicenseeEntity<T>,\n    config?: RequestConfig,\n  ): Promise<LicenseeEntity<SavedLicenseeProps<T>>> {\n    ensureNotNull(licensee, 'licensee');\n\n    const data = licensee.serialize();\n\n    if (productNumber) {\n      data.productNumber = productNumber;\n    }\n\n    const response = await Service.post(context, endpoint, data, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicensee<SavedLicenseeProps<T>>(item);\n  },\n\n  /**\n   * Updates licensee properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/licensee-services#update-licensee\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * licensee number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param licensee NetLicensing.Licensee\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return updated licensee in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = LicenseeProps>(\n    context: ContextInstance,\n    number: string,\n    licensee: LicenseeEntity<T>,\n    config?: RequestConfig,\n  ): Promise<LicenseeEntity<SavedLicenseeProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(licensee, 'licensee');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, licensee.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicensee<SavedLicenseeProps<T>>(item);\n  },\n\n  /**\n   * Deletes licensee.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/licensee-services#delete-licensee\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * licensee number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n\n  /**\n   * Validates active licenses of the licensee.\n   * In the case of multiple product modules validation,\n   * required parameters indexes will be added automatically.\n   * See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/licensee-services#validate-licensee\n   *\n   * @param context NetLicensing.Context\n   *\n   * licensee number\n   * @param number string\n   *\n   * optional validation parameters. See ValidationParameters and licensing model documentation for\n   * details.\n   * @param validationParameters NetLicensing.ValidationParameters.\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * @returns {ValidationResults}\n   */\n  async validate(\n    context: ContextInstance,\n    number: string,\n    validationParameters?: ValidationParametersInstance,\n    config?: RequestConfig,\n  ): Promise<IValidationResults> {\n    ensureNotEmpty(number, 'number');\n\n    const data: Record<string, string | boolean> = {};\n\n    if (validationParameters) {\n      const productNumber: string | undefined = validationParameters.productNumber;\n\n      if (productNumber) {\n        data.productNumber = productNumber;\n      }\n\n      const licenseeProperties = validationParameters.licenseeProperties;\n\n      Object.keys(licenseeProperties).forEach((key: string) => {\n        data[key] = validationParameters.getLicenseeProperty(key);\n      });\n\n      if (validationParameters.isForOfflineUse()) {\n        data.forOfflineUse = true;\n      }\n\n      if (validationParameters.isDryRun()) {\n        data.dryRun = true;\n      }\n\n      const parameters = validationParameters.getParameters();\n\n      Object.keys(parameters).forEach((pmNumber, i) => {\n        data[`${Constants.ProductModule.PRODUCT_MODULE_NUMBER}${i}`] = pmNumber;\n\n        const parameter = parameters[pmNumber];\n\n        if (parameter) {\n          Object.keys(parameter).forEach((key: string) => {\n            data[key + i] = parameter[key];\n          });\n        }\n      });\n    }\n\n    const response = await Service.post(context, `${endpoint}/${number}/${endpointValidate}`, data, config);\n\n    const validationResults = ValidationResults();\n\n    const ttl = response.data.ttl;\n\n    if (ttl) {\n      validationResults.setTtl(ttl);\n    }\n\n    const items = response.data.items?.item.filter((v) => v.type === Constants.Validation.TYPE);\n\n    items?.forEach((v) => {\n      validationResults.setValidation(itemToObject(v));\n    });\n\n    return validationResults;\n  },\n\n  /**\n   * Transfer licenses between licensees.\n   * @see https://netlicensing.io/wiki/licensee-services#transfer-licenses\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the number of the licensee receiving licenses\n   * @param number string\n   *\n   * the number of the licensee delivering licenses\n   * @param sourceLicenseeNumber string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * @returns {Promise}\n   */\n  transfer(\n    context: ContextInstance,\n    number: string,\n    sourceLicenseeNumber: string,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotEmpty(sourceLicenseeNumber, 'sourceLicenseeNumber');\n\n    const data = { sourceLicenseeNumber };\n\n    return Service.post(context, `${endpoint}/${number}/${endpointTransfer}`, data, config);\n  },\n};\n\nexport default licenseeService;\n","/**\n * JS representation of the License Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/license-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToLicense from '@/converters/itemToLicense';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination, NlicResponse } from '@/types/api/response';\nimport { LicenseProps, LicenseEntity, SavedLicenseProps } from '@/types/entities/License';\nimport { ILicenseService } from '@/types/services/LicenseService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.License.ENDPOINT_PATH;\nconst type = Constants.License.TYPE;\n\nconst licenseService: ILicenseService = {\n  /**\n   * Gets license by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-services#get-license\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the license number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the license in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = LicenseProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<LicenseEntity<SavedLicenseProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicense<SavedLicenseProps<T>>(item);\n  },\n\n  /**\n   * Returns licenses of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-services#licenses-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|undefined\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return array of licenses (of all products) or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = LicenseProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<LicenseEntity<SavedLicenseProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: LicenseEntity<SavedLicenseProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToLicense<SavedLicenseProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new license object with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-services#create-license\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * parent licensee to which the new license is to be added\n   * @param licenseeNumber string\n   *\n   *  license template that the license is created from\n   * @param licenseTemplateNumber string\n   *\n   * For privileged logins specifies transaction for the license creation. For regular logins new\n   * transaction always created implicitly, and the operation will be in a separate transaction.\n   * Transaction is generated with the provided transactionNumber, or, if transactionNumber is null, with\n   * auto-generated number.\n   * @param transactionNumber null|string\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param license NetLicensing.License\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the newly created license object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = LicenseProps>(\n    context: ContextInstance,\n    licenseeNumber: string | null,\n    licenseTemplateNumber: string | null,\n    transactionNumber: string | null,\n    license: LicenseEntity<T>,\n    config?: RequestConfig,\n  ): Promise<LicenseEntity<SavedLicenseProps<T>>> {\n    ensureNotNull(license, 'license');\n\n    const data = license.serialize();\n\n    if (licenseeNumber) {\n      data.licenseeNumber = licenseeNumber;\n    }\n\n    if (licenseTemplateNumber) {\n      data.licenseTemplateNumber = licenseTemplateNumber;\n    }\n\n    if (transactionNumber) {\n      data.transactionNumber = transactionNumber;\n    }\n\n    const response = await Service.post(context, endpoint, data, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicense<SavedLicenseProps<T>>(item);\n  },\n\n  /**\n   * Updates license properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-services#update-license\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * license number\n   * @param number string\n   *\n   * transaction for the license update. Created implicitly if transactionNumber is null. In this case the\n   * operation will be in a separate transaction.\n   * @param transactionNumber string|null\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param license NetLicensing.License\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return updated license in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = LicenseProps>(\n    context: ContextInstance,\n    number: string,\n    transactionNumber: string | null,\n    license: LicenseEntity<T>,\n    config?: RequestConfig,\n  ): Promise<LicenseEntity<SavedLicenseProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(license, 'license');\n\n    const data = license.serialize();\n\n    if (transactionNumber) {\n      data.transactionNumber = transactionNumber;\n    }\n\n    const response = await Service.post(context, `${endpoint}/${number}`, data, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicense<SavedLicenseProps<T>>(item);\n  },\n\n  /**\n   * Deletes license.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-services#delete-license\n   *\n   * When any license is deleted, corresponding transaction is created automatically.\n   *\n   *  determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * license number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n};\n\nexport default licenseService;\n","/**\n * JS representation of the ProductModule Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/license-template-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToLicenseTemplate from '@/converters/itemToLicenseTemplate';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination, NlicResponse } from '@/types/api/response';\nimport {\n  LicenseTemplateProps,\n  LicenseTemplateEntity,\n  SavedLicenseTemplateProps,\n} from '@/types/entities/LicenseTemplate';\nimport { ILicenseTemplateService } from '@/types/services/LicenseTemplateService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.LicenseTemplate.ENDPOINT_PATH;\nconst type = Constants.LicenseTemplate.TYPE;\n\nconst licenseTemplateService: ILicenseTemplateService = {\n  /**\n   * Gets license template by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-template-services#get-license-template\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the license template number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the license template object in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = LicenseTemplateProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<LicenseTemplateEntity<SavedLicenseTemplateProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicenseTemplate<SavedLicenseTemplateProps<T>>(item);\n  },\n\n  /**\n   * Returns all license templates of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-template-services#license-templates-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of license templates (of all products/modules) or null/empty list if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = LicenseTemplateProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<LicenseTemplateEntity<SavedLicenseTemplateProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: LicenseTemplateEntity<SavedLicenseTemplateProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToLicenseTemplate<SavedLicenseTemplateProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new license template object with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-template-services#create-license-template\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * parent product module to which the new license template is to be added\n   * @param productModuleNumber\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param licenseTemplate NetLicensing.LicenseTemplate\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * the newly created license template object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = LicenseTemplateProps>(\n    context: ContextInstance,\n    productModuleNumber: string | null,\n    licenseTemplate: LicenseTemplateEntity<T>,\n    config?: RequestConfig,\n  ): Promise<LicenseTemplateEntity<SavedLicenseTemplateProps<T>>> {\n    ensureNotNull(licenseTemplate, 'licenseTemplate');\n\n    const data = licenseTemplate.serialize();\n\n    if (productModuleNumber) {\n      data.productModuleNumber = productModuleNumber;\n    }\n\n    const response = await Service.post(context, endpoint, data, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicenseTemplate<SavedLicenseTemplateProps<T>>(item);\n  },\n\n  /**\n   * Updates license template properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/license-template-services#update-license-template\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * license template number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param licenseTemplate NetLicensing.LicenseTemplate\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * updated license template in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = LicenseTemplateProps>(\n    context: ContextInstance,\n    number: string,\n    licenseTemplate: LicenseTemplateEntity<T>,\n    config?: RequestConfig,\n  ): Promise<LicenseTemplateEntity<SavedLicenseTemplateProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(licenseTemplate, 'licenseTemplate');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, licenseTemplate.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToLicenseTemplate<SavedLicenseTemplateProps<T>>(item);\n  },\n\n  /**\n   * Deletes license template.See NetLicensingAPI JavaDoc for details:\n   * @see https://netlicensing.io/wiki/license-template-services#delete-license-template\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * license template number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n};\n\nexport default licenseTemplateService;\n","/**\n * JS representation of the Notification Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/notification-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToNotification from '@/converters/itemToNotification';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination, NlicResponse } from '@/types/api/response';\nimport { NotificationProps, NotificationEntity, SavedNotificationProps } from '@/types/entities/Notification';\nimport { INotificationService } from '@/types/services/NotificationService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.Notification.ENDPOINT_PATH;\nconst type = Constants.Notification.TYPE;\n\nconst notificationService: INotificationService = {\n  /**\n   * Gets notification by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/notification-services#get-notification\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the notification number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the notification object in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = NotificationProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<NotificationEntity<SavedNotificationProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToNotification<SavedNotificationProps<T>>(item);\n  },\n\n  /**\n   * Returns notifications of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/notification-services#notifications-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of notification entities or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = NotificationProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<NotificationEntity<SavedNotificationProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: NotificationEntity<SavedNotificationProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToNotification<SavedNotificationProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new notification with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/notification-services#create-notification\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param notification NetLicensing.Notification\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the newly created notification object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = NotificationProps>(\n    context: ContextInstance,\n    notification: NotificationEntity<T>,\n    config?: RequestConfig,\n  ): Promise<NotificationEntity<SavedNotificationProps<T>>> {\n    ensureNotNull(notification, 'notification');\n\n    const response = await Service.post(context, endpoint, notification.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToNotification<SavedNotificationProps<T>>(item);\n  },\n\n  /**\n   * Updates notification properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/notification-services#update-notification\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * notification number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param notification NetLicensing.Notification\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * updated notification in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = NotificationProps>(\n    context: ContextInstance,\n    number: string,\n    notification: NotificationEntity<T>,\n    config?: RequestConfig,\n  ): Promise<NotificationEntity<SavedNotificationProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(notification, 'notification');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, notification.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToNotification<SavedNotificationProps<T>>(item);\n  },\n\n  /**\n   * Deletes notification.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/notification-services#delete-notification\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * notification number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n};\n\nexport default notificationService;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToPaymentMethod from '@/converters/itemToPaymentMethod';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination } from '@/types/api/response';\nimport { PaymentMethodProps, PaymentMethodEntity, SavedPaymentMethodProps } from '@/types/entities/PaymentMethod';\nimport { IPaymentMethodService } from '@/types/services/PaymentMethodService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.PaymentMethod.ENDPOINT_PATH;\nconst type = Constants.PaymentMethod.TYPE;\n\nconst paymentMethodService: IPaymentMethodService = {\n  /**\n   * Gets payment method by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/payment-method-services#get-payment-method\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the payment method number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the payment method in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = PaymentMethodProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<PaymentMethodEntity<SavedPaymentMethodProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToPaymentMethod<SavedPaymentMethodProps<T>>(item);\n  },\n\n  /**\n   * Returns payment methods of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/payment-method-services#payment-methods-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of payment method entities or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = PaymentMethodProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<PaymentMethodEntity<SavedPaymentMethodProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: PaymentMethodEntity<SavedPaymentMethodProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToPaymentMethod<SavedPaymentMethodProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Updates payment method properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/payment-method-services#update-payment-method\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the payment method number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param paymentMethod NetLicensing.PaymentMethod\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return updated payment method in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = PaymentMethodProps>(\n    context: ContextInstance,\n    number: string,\n    paymentMethod: PaymentMethodEntity<T>,\n    config?: RequestConfig,\n  ): Promise<PaymentMethodEntity<SavedPaymentMethodProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(paymentMethod, 'paymentMethod');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, paymentMethod.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToPaymentMethod<SavedPaymentMethodProps<T>>(item);\n  },\n};\n\nexport default paymentMethodService;\n","/**\n * JS representation of the ProductModule Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/product-module-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToProductModule from '@/converters/itemToProductModule';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination, NlicResponse } from '@/types/api/response';\nimport { ProductModuleProps, ProductModuleEntity, SavedProductModuleProps } from '@/types/entities/ProductModule';\nimport { IProductModuleService } from '@/types/services/ProductModuleService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.ProductModule.ENDPOINT_PATH;\nconst type = Constants.ProductModule.TYPE;\n\nconst productModuleService: IProductModuleService = {\n  /**\n   * Gets product module by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-module-services#get-product-module\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the product module number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the product module object in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = ProductModuleProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<ProductModuleEntity<SavedProductModuleProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToProductModule<SavedProductModuleProps<T>>(item);\n  },\n\n  /**\n   * Returns products of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-module-services#product-modules-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of product modules entities or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = ProductModuleProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<ProductModuleEntity<SavedProductModuleProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: ProductModuleEntity<SavedProductModuleProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToProductModule<SavedProductModuleProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new product module object with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-module-services#create-product-module\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * parent product to which the new product module is to be added\n   * @param productNumber string\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param productModule NetLicensing.ProductModule\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * the newly created product module object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = ProductModuleProps>(\n    context: ContextInstance,\n    productNumber: string | null,\n    productModule: ProductModuleEntity<T>,\n    config?: RequestConfig,\n  ): Promise<ProductModuleEntity<SavedProductModuleProps<T>>> {\n    ensureNotNull(productModule, 'productModule');\n\n    const data = productModule.serialize();\n\n    if (productNumber) {\n      data.productNumber = productNumber;\n    }\n\n    const response = await Service.post(context, endpoint, data, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToProductModule<SavedProductModuleProps<T>>(item);\n  },\n\n  /**\n   * Updates product module properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-module-services#update-product-module\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * product module number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param productModule NetLicensing.ProductModule\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * updated product module in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = ProductModuleProps>(\n    context: ContextInstance,\n    number: string,\n    productModule: ProductModuleEntity<T>,\n    config?: RequestConfig,\n  ): Promise<ProductModuleEntity<SavedProductModuleProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(productModule, 'productModule');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, productModule.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToProductModule<SavedProductModuleProps<T>>(item);\n  },\n\n  /**\n   * Deletes product module.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-module-services#delete-product-module\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * product module number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n};\n\nexport default productModuleService;\n","/**\n * JS representation of the Product Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/product-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToProduct from '@/converters/itemToProduct';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination, NlicResponse } from '@/types/api/response';\nimport { ProductProps, ProductEntity, SavedProductProps } from '@/types/entities/Product';\nimport { IProductService } from '@/types/services/ProductService';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.Product.ENDPOINT_PATH;\nconst type = Constants.Product.TYPE;\n\nconst productService: IProductService = {\n  /**\n   * Gets product by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-services#get-product\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the product number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the product object in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = ProductProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<ProductEntity<SavedProductProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToProduct<SavedProductProps<T>>(item);\n  },\n\n  /**\n   * Returns products of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-services#products-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of product entities or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = ProductProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<ProductEntity<SavedProductProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: ProductEntity<SavedProductProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToProduct<SavedProductProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new product with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-services#create-product\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param product NetLicensing.Product\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the newly created product object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = ProductProps>(\n    context: ContextInstance,\n    product: ProductEntity<T>,\n    config?: RequestConfig,\n  ): Promise<ProductEntity<SavedProductProps<T>>> {\n    ensureNotNull(product, 'product');\n\n    const response = await Service.post(context, endpoint, product.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToProduct<SavedProductProps<T>>(item);\n  },\n\n  /**\n   * Updates product properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-services#update-product\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * product number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param product NetLicensing.Product\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * updated product in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = ProductProps>(\n    context: ContextInstance,\n    number: string,\n    product: ProductEntity<T>,\n    config?: RequestConfig,\n  ): Promise<ProductEntity<SavedProductProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(product, 'product');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, product.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToProduct<SavedProductProps<T>>(item);\n  },\n\n  /**\n   * Deletes product.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/product-services#delete-product\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * product number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n};\n\nexport default productService;\n","/**\n * JS representation of the Token Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/token-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport { AxiosResponse } from 'axios';\n\n// constants\nimport Constants from '@/constants';\n\n// converters\nimport itemToToken from '@/converters/itemToToken';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination, NlicResponse } from '@/types/api/response';\nimport { TokenProps, TokenEntity, SavedTokenProps } from '@/types/entities/Token';\nimport { RequestConfig } from '@/types/services/Service';\nimport { ITokenService } from '@/types/services/TokenService';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.Token.ENDPOINT_PATH;\nconst type = Constants.Token.TYPE;\n\nconst tokenService: ITokenService = {\n  /**\n   * Gets token by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/token-services#get-token\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the token number\n   * @param number\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the token in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = TokenProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<TokenEntity<SavedTokenProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToToken<SavedTokenProps<T>>(item);\n  },\n\n  /**\n   * Returns tokens of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/token-services#tokens-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string|undefined|null\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of token entities or empty array if nothing found.\n   * @return array\n   */\n  async list<T extends object = TokenProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<TokenEntity<SavedTokenProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: TokenEntity<SavedTokenProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToToken<SavedTokenProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new token.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/token-services#create-token\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context Context\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param token Token\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return created token in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = TokenProps>(\n    context: ContextInstance,\n    token: TokenEntity<T>,\n    config?: RequestConfig,\n  ): Promise<TokenEntity<SavedTokenProps<T>>> {\n    ensureNotNull(token, 'token');\n\n    const response = await Service.post(context, endpoint, token.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToToken<SavedTokenProps<T>>(item);\n  },\n\n  /**\n   * Delete token by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/token-services#delete-token\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   *  the token number\n   * @param number string\n   *\n   * if true, any entities that depend on the one being deleted will be deleted too\n   * @param forceCascade boolean\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return boolean state of delete in promise\n   * @returns {Promise}\n   */\n  delete(\n    context: ContextInstance,\n    number: string,\n    forceCascade?: boolean,\n    config?: RequestConfig,\n  ): Promise<AxiosResponse<NlicResponse>> {\n    ensureNotEmpty(number, 'number');\n\n    return Service.delete(context, `${endpoint}/${number}`, { forceCascade: Boolean(forceCascade) }, config);\n  },\n};\n\nexport default tokenService;\n","/**\n * JS representation of the Transaction Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/transaction-services\n *\n * Transaction is created each time change to  LicenseService licenses happens. For instance licenses are\n * obtained by a licensee, licenses disabled by vendor, licenses deleted, etc. Transaction is created no matter what\n * source has initiated the change to licenses: it can be either a direct purchase of licenses by a licensee via\n * NetLicensing Shop, or licenses can be given to a licensee by a vendor. Licenses can also be assigned implicitly by\n * NetLicensing if it is defined so by a license model (e.g. evaluation license may be given automatically). All these\n * events are reflected in transactions. Of all the transaction handling routines only read-only routines are exposed to\n * the public API, as transactions are only allowed to be created and modified by NetLicensing internally.\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport Constants from '@/constants';\n\n// converters\nimport itemToTransaction from '@/converters/itemToTransaction';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport type { ItemPagination } from '@/types/api/response';\nimport { TransactionProps, TransactionEntity, SavedTransactionProps } from '@/types/entities/Transaction';\nimport type { RequestConfig } from '@/types/services/Service';\nimport type { ITransactionService } from '@/types/services/TransactionService';\nimport type { ContextInstance } from '@/types/vo/Context';\nimport type { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\nimport { ensureNotEmpty, ensureNotNull } from '@/utils/validation';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst endpoint = Constants.Transaction.ENDPOINT_PATH;\nconst type = Constants.Transaction.TYPE;\n\nconst transactionService: ITransactionService = {\n  /**\n   * Gets transaction by its number.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/transaction-services#get-transaction\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * the transaction number\n   * @param number string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the transaction in promise\n   * @returns {Promise}\n   */\n  async get<T extends object = TransactionProps>(\n    context: ContextInstance,\n    number: string,\n    config?: RequestConfig,\n  ): Promise<TransactionEntity<SavedTransactionProps<T>>> {\n    ensureNotEmpty(number, 'number');\n\n    const response = await Service.get(context, `${endpoint}/${number}`, {}, config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToTransaction<SavedTransactionProps<T>>(item);\n  },\n\n  /**\n   * Returns all transactions of a vendor.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/transaction-services#transactions-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter string\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of transaction entities or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async list<T extends object = TransactionProps>(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<TransactionEntity<SavedTransactionProps<T>>[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const list: TransactionEntity<SavedTransactionProps<T>>[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToTransaction<SavedTransactionProps<T>>(v));\n\n    return Page(list || [], items as ItemPagination);\n  },\n\n  /**\n   * Creates new transaction object with given properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/transaction-services#create-transaction\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * non-null properties will be taken for the new object, null properties will either stay null, or will\n   * be set to a default value, depending on property.\n   * @param transaction NetLicensing.Transaction\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return the newly created transaction object in promise\n   * @returns {Promise}\n   */\n  async create<T extends object = TransactionProps>(\n    context: ContextInstance,\n    transaction: TransactionEntity<T>,\n    config?: RequestConfig,\n  ): Promise<TransactionEntity<SavedTransactionProps<T>>> {\n    ensureNotNull(transaction, 'transaction');\n\n    const response = await Service.post(context, endpoint, transaction.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToTransaction<SavedTransactionProps<T>>(item);\n  },\n\n  /**\n   * Updates transaction properties.See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/transaction-services#update-transaction\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * transaction number\n   * @param number string\n   *\n   * non-null properties will be updated to the provided values, null properties will stay unchanged.\n   * @param transaction NetLicensing.Transaction\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * return updated transaction in promise.\n   * @returns {Promise}\n   */\n  async update<T extends object = TransactionProps>(\n    context: ContextInstance,\n    number: string,\n    transaction: TransactionEntity<T>,\n    config?: RequestConfig,\n  ): Promise<TransactionEntity<SavedTransactionProps<T>>> {\n    ensureNotEmpty(number, 'number');\n    ensureNotNull(transaction, 'transaction');\n\n    const response = await Service.post(context, `${endpoint}/${number}`, transaction.serialize(), config);\n    const item = response.data.items?.item.find((v) => v.type === type);\n\n    return itemToTransaction<SavedTransactionProps<T>>(item);\n  },\n};\n\nexport default transactionService;\n","/**\n * JS representation of the Utility Service. See NetLicensingAPI for details:\n * https://netlicensing.io/wiki/utility-services\n *\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport Constants from '@/constants';\n\n// converters\nimport itemToCountry from '@/converters/itemToCountry';\nimport itemToObject from '@/converters/itemToObject';\n\n// services\nimport Service from '@/services/Service';\n\n// types\nimport { ItemPagination } from '@/types/api/response';\nimport { LicenseTypeValues } from '@/types/constants/LicenseType';\nimport { LicensingModelValues } from '@/types/constants/LicensingModel';\nimport { CountryEntity } from '@/types/entities/Country';\nimport { RequestConfig } from '@/types/services/Service';\nimport { IUtilityService } from '@/types/services/UtilityService';\nimport { ContextInstance } from '@/types/vo/Context';\nimport { PageInstance } from '@/types/vo/Page';\n\n// utils\nimport { encode } from '@/utils/filter';\n\n// vo\nimport Page from '@/vo/Page';\n\nconst baseEndpoint = Constants.Utility.ENDPOINT_PATH;\n\nconst utilityService: IUtilityService = {\n  /**\n   * Returns all license types. See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/utility-services#license-types-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of available license types or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async listLicenseTypes(context: ContextInstance, config?: RequestConfig): Promise<PageInstance<LicenseTypeValues[]>> {\n    const endpoint = `${baseEndpoint}/${Constants.Utility.ENDPOINT_PATH_LICENSE_TYPES}`;\n\n    const response = await Service.get(context, endpoint, undefined, config);\n    const items = response.data.items;\n\n    const type = Constants.Utility.LICENSE_TYPE;\n\n    const licenseTypes: string[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToObject<{ name: string }>(v).name);\n\n    return Page((licenseTypes as LicenseTypeValues[]) || [], items as ItemPagination);\n  },\n\n  /**\n   * Returns all license models. See NetLicensingAPI for details:\n   * @see https://netlicensing.io/wiki/utility-services#licensing-models-list\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context NetLicensing.Context\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * array of available license models or empty array if nothing found in promise.\n   * @returns {Promise}\n   */\n  async listLicensingModels(\n    context: ContextInstance,\n    config?: RequestConfig,\n  ): Promise<PageInstance<LicensingModelValues[]>> {\n    const endpoint = `${baseEndpoint}/${Constants.Utility.ENDPOINT_PATH_LICENSING_MODELS}`;\n\n    const response = await Service.get(context, endpoint, undefined, config);\n    const items = response.data.items;\n\n    const type = Constants.Utility.LICENSING_MODEL_TYPE;\n\n    const licensingModels: string[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToObject<{ name: string }>(v).name);\n\n    return Page((licensingModels as LicensingModelValues[]) || [], items as ItemPagination);\n  },\n\n  /**\n   * Returns all countries.\n   *\n   * determines the vendor on whose behalf the call is performed\n   * @param context\n   *\n   * reserved for the future use, must be omitted / set to NULL\n   * @param filter\n   *\n   * (optional) service request config\n   * @param config\n   *\n   * collection of available countries or null/empty list if nothing found in promise.\n   * @returns {Promise}\n   */\n  async listCountries(\n    context: ContextInstance,\n    filter?: Record<string, string | boolean | number> | string | null,\n    config?: RequestConfig,\n  ): Promise<PageInstance<CountryEntity[]>> {\n    const data: { [Constants.FILTER]: string } = {};\n\n    if (filter) {\n      data[Constants.FILTER] = typeof filter === 'string' ? filter : encode(filter);\n    }\n\n    const endpoint = `${baseEndpoint}/${Constants.Utility.ENDPOINT_PATH_COUNTRIES}`;\n\n    const response = await Service.get(context, endpoint, data, config);\n    const items = response.data.items;\n\n    const type = Constants.Utility.COUNTRY_TYPE;\n\n    const countries: CountryEntity[] | undefined = items?.item\n      .filter((v) => v.type === type)\n      .map((v) => itemToCountry(v));\n\n    return Page(countries || [], items as ItemPagination);\n  },\n};\n\nexport default utilityService;\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\nimport SecurityModeEnum from '@/constants/SecurityMode';\n\n// types\nimport type { SecurityModeValues } from '@/types/constants/SecurityMode';\nimport type { ContextConfig, ContextInstance } from '@/types/vo/Context';\n\nclass Context implements ContextInstance {\n  baseUrl: string;\n  securityMode: SecurityModeValues;\n  username?: string;\n  password?: string;\n  apiKey?: string;\n  publicKey?: string;\n\n  constructor(props?: ContextConfig) {\n    this.baseUrl = props?.baseUrl || 'https://go.netlicensing.io/core/v2/rest';\n    this.securityMode = props?.securityMode || SecurityModeEnum.BASIC_AUTHENTICATION;\n    this.username = props?.username;\n    this.password = props?.password;\n    this.apiKey = props?.apiKey;\n    this.publicKey = props?.publicKey;\n  }\n\n  setBaseUrl(baseUrl: string): this {\n    this.baseUrl = baseUrl;\n    return this;\n  }\n\n  getBaseUrl(): string {\n    return this.baseUrl;\n  }\n\n  setSecurityMode(securityMode: SecurityModeValues): this {\n    this.securityMode = securityMode;\n    return this;\n  }\n\n  getSecurityMode(): SecurityModeValues {\n    return this.securityMode;\n  }\n\n  setUsername(username: string): this {\n    this.username = username;\n    return this;\n  }\n\n  getUsername<D = undefined>(def?: D): string | D {\n    return (this.username || def) as string | D;\n  }\n\n  setPassword(password: string): this {\n    this.password = password;\n    return this;\n  }\n\n  getPassword<D = undefined>(def?: D): string | D {\n    return (this.password || def) as string | D;\n  }\n\n  setApiKey(apiKey: string): this {\n    this.apiKey = apiKey;\n    return this;\n  }\n\n  getApiKey<D = undefined>(def?: D): string | D {\n    return (this.apiKey || def) as string | D;\n  }\n\n  setPublicKey(publicKey: string): this {\n    this.publicKey = publicKey;\n    return this;\n  }\n\n  getPublicKey<D = undefined>(def?: D): string | D {\n    return (this.publicKey || def) as string | D;\n  }\n}\n\nexport default (props?: ContextConfig): ContextInstance => new Context(props);\n","/**\n * @author    Labs64 <netlicensing@labs64.com>\n * @license   Apache-2.0\n * @link      https://netlicensing.io\n * @copyright 2017 Labs64 NetLicensing\n */\n// types\nimport {\n  ValidationParametersInstance,\n  Parameter,\n  Parameters,\n  LicenseeProperties,\n} from '@/types/vo/ValidationParameters';\n\nclass ValidationParameters implements ValidationParametersInstance {\n  productNumber?: string;\n  dryRun?: boolean;\n  forOfflineUse?: boolean;\n  licenseeProperties: LicenseeProperties;\n  parameters: Parameters;\n\n  constructor() {\n    this.parameters = {};\n    this.licenseeProperties = {};\n  }\n\n  setProductNumber(productNumber: string): this {\n    this.productNumber = productNumber;\n    return this;\n  }\n\n  getProductNumber(): string | undefined {\n    return this.productNumber;\n  }\n\n  setLicenseeName(licenseeName: string): this {\n    this.licenseeProperties.licenseeName = licenseeName;\n    return this;\n  }\n\n  getLicenseeName(): string | undefined {\n    return this.licenseeProperties.licenseeName;\n  }\n\n  setLicenseeSecret(licenseeSecret: string): this {\n    this.licenseeProperties.licenseeSecret = licenseeSecret;\n    return this;\n  }\n\n  getLicenseeSecret(): string | undefined {\n    return this.licenseeProperties.licenseeSecret;\n  }\n\n  getLicenseeProperties(): LicenseeProperties {\n    return this.licenseeProperties;\n  }\n\n  setLicenseeProperty(key: string, value: string): this {\n    this.licenseeProperties[key] = value;\n    return this;\n  }\n\n  getLicenseeProperty<D = undefined>(key: string, def?: D): string | D {\n    return (this.licenseeProperties[key] || def) as string | D;\n  }\n\n  setForOfflineUse(forOfflineUse: boolean): this {\n    this.forOfflineUse = forOfflineUse;\n    return this;\n  }\n\n  isForOfflineUse() {\n    return !!this.forOfflineUse;\n  }\n\n  setDryRun(dryRun: boolean): this {\n    this.dryRun = dryRun;\n    return this;\n  }\n\n  isDryRun(): boolean {\n    return !!this.dryRun;\n  }\n\n  getParameters(): Parameters {\n    return this.parameters;\n  }\n\n  setParameter(productModuleNumber: string, parameter: Parameter): this {\n    this.parameters[productModuleNumber] = parameter;\n    return this;\n  }\n\n  getParameter(productModuleNumber: string): Parameter | undefined {\n    return this.parameters[productModuleNumber];\n  }\n\n  getProductModuleValidationParameters(productModuleNumber: string): Parameter | undefined {\n    return this.getParameter(productModuleNumber);\n  }\n\n  setProductModuleValidationParameters(productModuleNumber: string, productModuleParameters: Parameter): this {\n    return this.setParameter(productModuleNumber, productModuleParameters);\n  }\n}\n\nexport default (): ValidationParametersInstance => new ValidationParameters();\n"],"mappings":"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","names":["LicenseeSecretMode","LicenseeSecretMode_default","LicenseType","LicenseType_default","NotificationEvent","NotificationEvent_default","NotificationProtocol","NotificationProtocol_default","SecurityMode","SecurityMode_default","TimeVolumePeriod","TimeVolumePeriod_default","TokenType","TokenType_default","TransactionSource","TransactionSource_default","TransactionStatus","TransactionStatus_default","constants_default","LicenseeSecretMode_default","LicenseType_default","NotificationEvent_default","NotificationProtocol_default","SecurityMode_default","TimeVolumePeriod_default","TokenType_default","TransactionSource_default","TransactionStatus_default","ApiKeyRole","ApiKeyRole_default","LicensingModel","LicensingModel_default","NodeSecretMode","NodeSecretMode_default","PaymentMethodEnum","PaymentMethodEnum_default","isBooleanString","value","isNull","isJsonStructure","trimmed","isNumericString","parsed","parseNumber","parseBoolean","parseNull","parseJson","parseAuto","cast","type","cast_default","extractProperties","properties","castMap","result","name","value","cast_default","extractLists","lists","list","itemToObject","item","itemToObject_default","has","obj","key","set","value","get","def","serialize_default","obj","options","map","ignore","k","v","defineEntity","props","methods","proto","options","listeners","base","key","value","set","def","get","has","properties","k","v","serialize_default","obj","prop","receiver","l","defineEntity_default","Bundle","properties","props","defineEntity_default","active","set","def","get","number","name","price","currency","numbers","cast","serialize_default","Bundle_default","itemToBundle_default","item","props","itemToObject_default","licenseTemplateNumbers","staleLicenseTemplateNumbers","Bundle_default","Country","properties","props","defineEntity_default","Country_default","itemToCountry_default","item","Country_default","itemToObject_default","License","properties","props","defineEntity_default","active","set","def","get","number","name","price","currency","hidden","serialize_default","License_default","itemToLicense_default","item","props","itemToObject_default","startDate","License_default","Licensee","properties","props","defineEntity_default","active","set","def","get","number","name","mark","serialize_default","Licensee_default","itemToLicensee_default","item","props","itemToObject_default","aliases","Licensee_default","LicenseTemplate","properties","props","defineEntity_default","active","set","def","get","number","name","type","price","currency","automatic","hidden","hideLicenses","productModuleNumber","serialize_default","LicenseTemplate_default","itemToLicenseTemplate_default","item","LicenseTemplate_default","itemToObject_default","Notification","properties","props","defineEntity_default","active","set","def","get","number","name","protocol","events","event","payload","endpoint","data","serialize_default","Notification_default","itemToNotification_default","item","props","itemToObject_default","events","Notification_default","PaymentMethod","properties","props","defineEntity_default","active","set","def","get","number","PaymentMethod_default","itemToPaymentMethod_default","item","PaymentMethod_default","itemToObject_default","Product","properties","props","defineEntity_default","active","set","def","get","number","name","version","description","licensingInfo","licenseeAutoCreate","discounts","discount","productDiscounts","map","serialize_default","Product_default","AxiosError","NlicError","_NlicError","message","code","config","request","response","stack","ProductDiscount","properties","props","NlicError","defineEntity_default","totalPrice","set","def","get","currency","amountFix","amountPercent","total","amount","obj","prop","ProductDiscount_default","itemToProduct_default","item","props","itemToObject_default","discounts","d","ProductDiscount_default","Product_default","ProductModule","properties","props","defineEntity_default","active","set","def","get","number","name","licensingModel","productNumber","serialize_default","ProductModule_default","itemToProductModule_default","item","ProductModule_default","itemToObject_default","Token","properties","props","defineEntity_default","active","set","def","get","number","expirationTime","tokenType","licenseeNumber","action","apiKeyRole","bundleNumber","bundlePrice","productNumber","predefinedShoppingItem","successURL","successURLTitle","cancelURL","cancelURLTitle","serialize_default","Token_default","itemToToken_default","item","props","itemToObject_default","expirationTime","Token_default","LicenseTransactionJoin","transaction","license","LicenseTransactionJoin_default","Transaction","properties","props","defineEntity_default","active","set","def","get","number","status","source","grandTotal","discount","currency","dateCreated","paymentMethod","joins","clone","serialize_default","Transaction_default","itemToTransaction_default","item","props","itemToObject_default","dateCreated","dateClosed","licenseTransactionJoins","transactionNumber","licenseNumber","transaction","Transaction_default","license","License_default","LicenseTransactionJoin_default","axios","axiosInstance","lastResponse","info","setAxiosInstance","instance","getAxiosInstance","setLastResponse","response","getLastResponse","setInfo","infos","getInfo","package_default","toQueryString_default","data","query","build","obj","keyPrefix","item","key","value","request_default","context","method","endpoint","data","config","headers","package_default","req","d","h","toQueryString_default","SecurityMode_default","NlicError","instance","getAxiosInstance","response","info","setLastResponse","setInfo","eInfo","type","e","error","message","get","context","endpoint","data","config","request_default","post","del","service","instance","setAxiosInstance","getAxiosInstance","getLastResponse","getInfo","context","endpoint","data","config","get","post","del","method","request_default","toQueryString_default","Service_default","encode","filter","key","decode","result","v","name","value","isDefined","value","isValid","ensureNotNull","name","ensureNotEmpty","Page","content","pagination","pageNumber","itemsNumber","totalPages","totalItems","page","obj","prop","receiver","value","Page_default","endpoint","constants_default","endpointObtain","type","bundleService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToBundle_default","filter","data","encode","items","bundles","Page_default","bundle","ensureNotNull","forceCascade","licenseeNumber","itemToLicense_default","BundleService_default","ValidationResults","validation","productModuleNumber","def","ttl","isValid","data","pmNumber","ValidationResults_default","endpoint","constants_default","endpointValidate","endpointTransfer","type","licenseeService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToLicensee_default","filter","data","encode","items","list","Page_default","productNumber","licensee","ensureNotNull","forceCascade","validationParameters","licenseeProperties","key","parameters","pmNumber","i","parameter","response","validationResults","ValidationResults_default","ttl","itemToObject_default","sourceLicenseeNumber","LicenseeService_default","endpoint","constants_default","type","licenseService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToLicense_default","filter","data","encode","items","list","Page_default","licenseeNumber","licenseTemplateNumber","transactionNumber","license","ensureNotNull","forceCascade","LicenseService_default","endpoint","constants_default","type","licenseTemplateService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToLicenseTemplate_default","filter","data","encode","items","list","Page_default","productModuleNumber","licenseTemplate","ensureNotNull","forceCascade","LicenseTemplateService_default","endpoint","constants_default","type","notificationService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToNotification_default","filter","data","encode","items","list","Page_default","notification","ensureNotNull","forceCascade","NotificationService_default","endpoint","constants_default","type","paymentMethodService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToPaymentMethod_default","filter","data","encode","items","list","Page_default","paymentMethod","ensureNotNull","PaymentMethodService_default","endpoint","constants_default","type","productModuleService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToProductModule_default","filter","data","encode","items","list","Page_default","productNumber","productModule","ensureNotNull","forceCascade","ProductModuleService_default","endpoint","constants_default","type","productService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToProduct_default","filter","data","encode","items","list","Page_default","product","ensureNotNull","forceCascade","ProductService_default","endpoint","constants_default","type","tokenService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToToken_default","filter","data","encode","items","list","Page_default","token","ensureNotNull","forceCascade","TokenService_default","endpoint","constants_default","type","transactionService","context","number","config","ensureNotEmpty","item","Service_default","v","itemToTransaction_default","filter","data","encode","items","list","Page_default","transaction","ensureNotNull","TransactionService_default","baseEndpoint","constants_default","utilityService","context","config","endpoint","items","Service_default","type","licenseTypes","v","itemToObject_default","Page_default","licensingModels","filter","data","encode","countries","itemToCountry_default","UtilityService_default","Context","props","SecurityMode_default","baseUrl","securityMode","username","def","password","apiKey","publicKey","Context_default","ValidationParameters","productNumber","licenseeName","licenseeSecret","key","value","def","forOfflineUse","dryRun","productModuleNumber","parameter","productModuleParameters","ValidationParameters_default"]}