netlicensing-client 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.d.mts +11 -7
- package/dist/index.d.ts +11 -7
- package/dist/index.global.js +6 -6
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.global.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../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/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","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../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":["// constants\nimport Constants from '@/constants';\nimport ApiKeyRole from '@/constants/ApiKeyRole';\nimport LicenseeSecretMode from '@/constants/LicenseeSecretMode';\nimport LicenseType from '@/constants/LicenseType';\nimport LicensingModel from '@/constants/LicensingModel';\nimport NodeSecretMode from '@/constants/NodeSecretMode';\nimport NotificationEvent from '@/constants/NotificationEvent';\nimport NotificationProtocol from '@/constants/NotificationProtocol';\nimport PaymentMethodEnum from '@/constants/PaymentMethodEnum';\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\n// converters\nimport itemToBundle from '@/converters/itemToBundle';\nimport itemToCountry from '@/converters/itemToCountry';\nimport itemToLicense from '@/converters/itemToLicense';\nimport itemToLicensee from '@/converters/itemToLicensee';\nimport itemToLicenseTemplate from '@/converters/itemToLicenseTemplate';\nimport itemToNotification from '@/converters/itemToNotification';\nimport itemToObject from '@/converters/itemToObject';\nimport itemToPaymentMethod from '@/converters/itemToPaymentMethod';\nimport itemToProduct from '@/converters/itemToProduct';\nimport itemToProductModule from '@/converters/itemToProductModule';\nimport itemToToken from '@/converters/itemToToken';\nimport itemToTransaction from '@/converters/itemToTransaction';\n\n// entities\nimport Bundle from '@/entities/Bundle';\nimport Country from '@/entities/Country';\nimport defineEntity from '@/entities/defineEntity';\nimport License from '@/entities/License';\nimport Licensee from '@/entities/Licensee';\nimport LicenseTemplate from '@/entities/LicenseTemplate';\nimport LicenseTransactionJoin from '@/entities/LicenseTransactionJoin';\nimport Notification from '@/entities/Notification';\nimport PaymentMethod from '@/entities/PaymentMethod';\nimport Product from '@/entities/Product';\nimport ProductDiscount from '@/entities/ProductDiscount';\nimport ProductModule from '@/entities/ProductModule';\nimport Token from '@/entities/Token';\nimport Transaction from '@/entities/Transaction';\n\n// errors\nimport NlicError from '@/errors/NlicError';\n\n// services\nimport BundleService from '@/services/BundleService';\nimport LicenseeService from '@/services/LicenseeService';\nimport LicenseService from '@/services/LicenseService';\nimport LicenseTemplateService from '@/services/LicenseTemplateService';\nimport NotificationService from '@/services/NotificationService';\nimport PaymentMethodService from '@/services/PaymentMethodService';\nimport ProductModuleService from '@/services/ProductModuleService';\nimport ProductService from '@/services/ProductService';\nimport Service from '@/services/Service';\nimport TokenService from '@/services/TokenService';\nimport TransactionService from '@/services/TransactionService';\nimport UtilityService from '@/services/UtilityService';\n\n// utils\nimport { encode as filterEncode, decode as filterDecode } from '@/utils/filter';\nimport serialize from '@/utils/serialize';\nimport { isValid, isDefined, ensureNotNull, ensureNotEmpty } from '@/utils/validation';\n\n// value object\nimport Context from '@/vo/Context';\nimport Page from '@/vo/Page';\nimport ValidationParameters from '@/vo/ValidationParameters';\nimport ValidationResults from '@/vo/ValidationResults';\n\n// types\nexport type * from '@/types';\n\nexport {\n // constants\n Constants,\n ApiKeyRole,\n LicenseeSecretMode,\n LicenseType,\n LicensingModel,\n NodeSecretMode,\n NotificationEvent,\n NotificationProtocol,\n PaymentMethodEnum,\n SecurityMode,\n TimeVolumePeriod,\n TokenType,\n TransactionSource,\n TransactionStatus,\n\n // converters\n itemToBundle,\n itemToCountry,\n itemToLicense,\n itemToLicensee,\n itemToLicenseTemplate,\n itemToNotification,\n itemToObject,\n itemToPaymentMethod,\n itemToProduct,\n itemToProductModule,\n itemToToken,\n itemToTransaction,\n\n // entities\n Bundle,\n Country,\n defineEntity,\n License,\n Licensee,\n LicenseTemplate,\n LicenseTransactionJoin,\n Notification,\n PaymentMethod,\n Product,\n ProductDiscount,\n ProductModule,\n Token,\n Transaction,\n\n // errors\n NlicError,\n\n // services\n BundleService,\n LicenseeService,\n LicenseService,\n LicenseTemplateService,\n NotificationService,\n PaymentMethodService,\n ProductModuleService,\n ProductService,\n Service,\n TokenService,\n TransactionService,\n UtilityService,\n\n // utils\n filterEncode,\n filterDecode,\n serialize,\n isValid,\n isDefined,\n ensureNotNull,\n ensureNotEmpty,\n\n // vo\n Context,\n Page,\n ValidationParameters,\n ValidationResults,\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 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","import { Item, List } from '@/types/api/response';\n\nconst cast = (value: string): unknown => {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n};\n\nconst extractProperties = (properties?: { name: string; value: string }[]) => {\n const result: Record<string, unknown> = {};\n properties?.forEach(({ name, value }) => {\n result[name] = cast(value);\n });\n return result;\n};\n\nconst extractLists = (lists?: List[]) => {\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));\n });\n return result;\n};\n\nconst itemToObject = <T extends object = Record<string, unknown>>(item?: Item | List): T => {\n return item ? ({ ...extractProperties(item.property), ...extractLists(item.list) } as T) : ({} as T);\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\n const { licenseTemplateNumbers } = props;\n\n if (licenseTemplateNumbers && typeof licenseTemplateNumbers === 'string') {\n props.licenseTemplateNumbers = licenseTemplateNumbers.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) => Country(itemToObject<CountryProps>(item));\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\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) => Licensee<T>(itemToObject<T>(item));\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) => LicenseTemplate<T>(itemToObject<T>(item));\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\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) => PaymentMethod<T>(itemToObject<T>(item));\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","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","\"use strict\";\n\nimport bind from \"./helpers/bind.js\";\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest(\"undefined\");\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest(\"ArrayBuffer\");\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== \"undefined\" && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest(\"string\");\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest(\"function\");\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest(\"number\");\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === \"object\";\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== \"object\") {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return (\n Object.keys(val).length === 0 &&\n Object.getPrototypeOf(val) === Object.prototype\n );\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest(\"Date\");\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest(\"File\");\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest(\"Blob\");\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest(\"FileList\");\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return (\n thing &&\n ((typeof FormData === \"function\" && thing instanceof FormData) ||\n (isFunction(thing.append) &&\n ((kind = kindOf(thing)) === \"formdata\" ||\n // detect form-data instance\n (kind === \"object\" &&\n isFunction(thing.toString) &&\n thing.toString() === \"[object FormData]\"))))\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest(\"URLSearchParams\");\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n \"ReadableStream\",\n \"Request\",\n \"Response\",\n \"Headers\",\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) =>\n str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\");\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array<unknown>} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === \"undefined\") {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== \"object\") {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys\n ? Object.getOwnPropertyNames(obj)\n : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\"\n ? self\n : typeof window !== \"undefined\"\n ? window\n : global;\n})();\n\nconst isContextDefined = (context) =>\n !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys },\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(\n superConstructor.prototype,\n descriptors,\n );\n Object.defineProperty(constructor.prototype, \"constructor\", {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, \"super\", {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (\n (!propFilter || propFilter(prop, sourceObj, destObj)) &&\n !merged[prop]\n ) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (\n sourceObj &&\n (!filter || filter(sourceObj, destObj)) &&\n sourceObj !== Object.prototype\n );\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== \"undefined\" && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest(\"HTMLFormElement\");\n\nconst toCamelCase = (str) => {\n return str\n .toLowerCase()\n .replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest(\"RegExp\");\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (\n isFunction(obj) &&\n [\"arguments\", \"caller\", \"callee\"].indexOf(name) !== -1\n ) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if (\"writable\" in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString)\n ? define(arrayOrString)\n : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value))\n ? value\n : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === \"FormData\" &&\n thing[iterator]\n );\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!(\"toJSON\" in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest(\"AsyncFunction\");\n\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n \"message\",\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false,\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === \"function\", isFunction(_global.postMessage));\n\nconst asap =\n typeof queueMicrotask !== \"undefined\"\n ? queueMicrotask.bind(_global)\n : (typeof process !== \"undefined\" && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = options && options.encode || encode;\n\n const _options = utils.isFunction(options) ? {\n serialize: options\n } : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","\"use strict\";\n\nimport utils from \"../utils.js\";\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) =>\n thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(\n Object.keys({ ...config1, ...config2 }),\n function computeConfigValue(prop) {\n if (\n prop === \"__proto__\" ||\n prop === \"constructor\" ||\n prop === \"prototype\"\n )\n return;\n const merge = utils.hasOwnProp(mergeMap, prop)\n ? mergeMap[prop]\n : mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) ||\n (config[prop] = configValue);\n },\n );\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, err && err.response),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.13.5\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering = transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\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\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) => ProductModule<T>(itemToObject<T>(item));\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\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\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 const licenseTransactionJoins: { licenseNumber: string; transactionNumber: string }[] | undefined =\n props.licenseTransactionJoin as { licenseNumber: string; transactionNumber: string }[];\n\n delete props.licenseTransactionJoin;\n\n if (licenseTransactionJoins) {\n props.licenseTransactionJoins = licenseTransactionJoins.map(({ transactionNumber, licenseNumber }) => {\n const transaction = Transaction({ number: transactionNumber });\n const license = License({ number: 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.0\",\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.3\",\n \"@types/node\": \"^25.3.2\",\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.0\",\n \"eslint\": \"^9.39.3\",\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, AxiosInstance } 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 { 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: AxiosInstance = config?.axiosInstance || getAxiosInstance();\n\n try {\n const response: AxiosResponse<NlicResponse> = await instance(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":["index_exports","__export","ApiKeyRole_default","Bundle_default","BundleService_default","constants_default","Context_default","Country_default","License_default","LicenseService_default","LicenseTemplate_default","LicenseTemplateService_default","LicenseTransactionJoin_default","LicenseType_default","Licensee_default","LicenseeSecretMode_default","LicenseeService_default","LicensingModel_default","NlicError","NodeSecretMode_default","Notification_default","NotificationEvent_default","NotificationProtocol_default","NotificationService_default","Page_default","PaymentMethod_default","PaymentMethodEnum_default","PaymentMethodService_default","Product_default","ProductDiscount_default","ProductModule_default","ProductModuleService_default","ProductService_default","SecurityMode_default","Service_default","TimeVolumePeriod_default","Token_default","TokenService_default","TokenType_default","Transaction_default","TransactionService_default","TransactionSource_default","TransactionStatus_default","UtilityService_default","ValidationParameters_default","ValidationResults_default","defineEntity_default","ensureNotEmpty","ensureNotNull","decode","encode","isDefined","isValid","itemToBundle_default","itemToCountry_default","itemToLicense_default","itemToLicenseTemplate_default","itemToLicensee_default","itemToNotification_default","itemToObject_default","itemToPaymentMethod_default","itemToProduct_default","itemToProductModule_default","itemToToken_default","itemToTransaction_default","serialize_default","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","cast","value","extractProperties","properties","result","name","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","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","Licensee_default","itemToObject_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","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","fn","allOwnKeys","i","l","keys","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","thisArg","bind","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","value","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","data","cb","asap","isIterable","utils_default","AxiosError","_AxiosError","error","code","config","request","response","customProps","axiosError","message","utils_default","AxiosError_default","null_default","isVisitable","thing","utils_default","removeBrackets","key","renderKey","path","dots","token","i","isFlatArray","arr","predicates","prop","toFormData","obj","formData","options","null_default","option","source","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","value","AxiosError_default","el","index","stack","exposedHelpers","build","toFormData_default","encode","str","charMap","match","AxiosURLSearchParams","params","options","toFormData_default","prototype","name","value","encoder","_encode","pair","AxiosURLSearchParams_default","encode","val","buildURL","url","params","options","_encode","_options","utils_default","serializeFn","serializedParams","AxiosURLSearchParams_default","hashmarkIndex","InterceptorManager","fulfilled","rejected","options","id","fn","utils_default","h","InterceptorManager_default","transitional_default","URLSearchParams_default","AxiosURLSearchParams_default","FormData_default","Blob_default","browser_default","URLSearchParams_default","FormData_default","Blob_default","utils_exports","__export","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","_navigator","origin","platform_default","utils_exports","browser_default","toURLEncodedForm","data","options","toFormData_default","platform_default","value","key","path","helpers","utils_default","parsePropPath","name","utils_default","match","arrayToObject","arr","obj","keys","i","len","key","formDataToJSON","formData","buildPath","path","value","target","index","isNumericKey","isLast","formDataToJSON_default","stringifySafely","rawValue","parser","encoder","utils_default","e","defaults","transitional_default","data","headers","contentType","hasJSONContentType","isObjectPayload","formDataToJSON_default","isFileList","toURLEncodedForm","_FormData","toFormData_default","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","AxiosError_default","platform_default","status","method","defaults_default","ignoreDuplicateOf","utils_default","parseHeaders_default","rawHeaders","parsed","key","val","i","line","$internals","normalizeHeader","header","normalizeValue","value","utils_default","parseTokens","str","tokens","tokensRE","match","isValidHeaderName","matchHeaderValue","context","filter","isHeaderNameFilter","formatHeader","w","char","buildAccessors","obj","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","headers","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","key","setHeaders","parseHeaders_default","dest","entry","parser","matcher","deleted","deleteHeader","keys","i","format","normalized","targets","asStrings","thing","first","computed","target","accessors","prototype","defineAccessor","mapped","headerValue","AxiosHeaders_default","transformData","fns","response","config","defaults_default","context","headers","AxiosHeaders_default","data","utils_default","fn","isCancel","value","CanceledError","AxiosError_default","message","config","request","CanceledError_default","settle","resolve","reject","response","validateStatus","AxiosError_default","parseProtocol","url","match","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","i","bytesCount","passed","speedometer_default","throttle","fn","freq","timestamp","threshold","lastArgs","timer","invoke","args","now","passed","throttle_default","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","speedometer_default","throttle_default","e","loaded","total","progressBytes","rate","inRange","data","progressEventDecorator","throttled","lengthComputable","asyncDecorator","fn","args","utils_default","isURLSameOrigin_default","platform_default","origin","isMSIE","url","cookies_default","platform_default","name","value","expires","path","domain","secure","sameSite","cookie","utils_default","match","isAbsoluteURL","url","combineURLs","baseURL","relativeURL","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","isAbsoluteURL","combineURLs","headersToObject","thing","AxiosHeaders_default","mergeConfig","config1","config2","config","getMergedValue","target","source","prop","caseless","utils_default","mergeDeepProperties","a","b","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","merge","configValue","resolveConfig_default","config","newConfig","mergeConfig","data","withXSRFToken","xsrfHeaderName","xsrfCookieName","headers","auth","AxiosHeaders_default","buildURL","buildFullPath","utils_default","platform_default","formHeaders","allowedHeaders","key","val","isURLSameOrigin_default","xsrfValue","cookies_default","isXHRAdapterSupported","xhr_default","config","resolve","reject","_config","resolveConfig_default","requestData","requestHeaders","AxiosHeaders_default","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","request","onloadend","responseHeaders","response","settle","value","err","AxiosError_default","event","msg","timeoutErrorMessage","transitional","transitional_default","utils_default","val","key","progressEventReducer","cancel","CanceledError_default","protocol","parseProtocol","platform_default","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","err","AxiosError_default","CanceledError_default","timer","signal","utils_default","composeSignals_default","streamChunk","chunk","chunkSize","len","pos","end","readBytes","iterable","readStream","stream","reader","done","value","trackStream","onProgress","onFinish","iterator","bytes","_onFinish","e","controller","loadedBytes","err","reason","DEFAULT_CHUNK_SIZE","isFunction","utils_default","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","fn","args","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","encoder","str","supportsRequestStream","duplexAccessed","hasContentType","platform_default","supportsResponseStream","resolvers","res","type","config","method","AxiosError_default","getBodyLength","body","resolveBodyLength","headers","length","url","data","signal","cancelToken","timeout","onDownloadProgress","onUploadProgress","responseType","withCredentials","fetchOptions","resolveConfig_default","_fetch","composedSignal","composeSignals_default","request","unsubscribe","requestContentLength","_request","contentTypeHeader","onProgress","flush","progressEventDecorator","progressEventReducer","asyncDecorator","trackStream","isCredentialsSupported","resolvedOptions","response","isStreamResponse","options","prop","responseContentLength","responseData","resolve","reject","settle","AxiosHeaders_default","err","seedCache","getFetch","fetch","seeds","len","i","seed","target","map","adapter","knownAdapters","null_default","xhr_default","getFetch","utils_default","fn","value","renderReason","reason","isResolvedHandle","adapter","getAdapter","adapters","config","length","nameOrAdapter","rejectedReasons","id","AxiosError_default","reasons","state","s","adapters_default","throwIfCancellationRequested","config","CanceledError_default","dispatchRequest","AxiosHeaders_default","transformData","adapters_default","defaults_default","response","reason","isCancel","VERSION","validators","type","i","thing","deprecatedWarnings","validator","version","message","formatMessage","opt","desc","VERSION","value","opts","AxiosError_default","correctSpelling","assertOptions","options","schema","allowUnknown","keys","result","validator_default","validators","validator_default","Axios","instanceConfig","InterceptorManager_default","configOrUrl","config","err","dummy","stack","mergeConfig","transitional","paramsSerializer","headers","utils_default","contextHeaders","method","AxiosHeaders_default","requestInterceptorChain","synchronousRequestInterceptors","interceptor","transitional_default","responseInterceptorChain","promise","i","len","chain","dispatchRequest","newConfig","onFulfilled","onRejected","error","fullPath","buildFullPath","buildURL","url","generateHTTPMethod","isForm","data","Axios_default","CancelToken","_CancelToken","executor","resolvePromise","resolve","token","cancel","i","onfulfilled","_resolve","promise","message","config","request","CanceledError_default","listener","index","controller","abort","err","c","CancelToken_default","spread","callback","arr","isAxiosError","payload","utils_default","HttpStatusCode","key","value","HttpStatusCode_default","createInstance","defaultConfig","context","Axios_default","instance","bind","utils_default","instanceConfig","mergeConfig","axios","defaults_default","CanceledError_default","CancelToken_default","isCancel","VERSION","toFormData_default","AxiosError_default","promises","spread","isAxiosError","AxiosHeaders_default","thing","formDataToJSON_default","adapters_default","HttpStatusCode_default","axios_default","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","all","Cancel","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","axios_default","NlicError","_NlicError","AxiosError","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","axiosInstance","axios_default","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","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"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../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","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../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":["// constants\nimport Constants from '@/constants';\nimport ApiKeyRole from '@/constants/ApiKeyRole';\nimport LicenseeSecretMode from '@/constants/LicenseeSecretMode';\nimport LicenseType from '@/constants/LicenseType';\nimport LicensingModel from '@/constants/LicensingModel';\nimport NodeSecretMode from '@/constants/NodeSecretMode';\nimport NotificationEvent from '@/constants/NotificationEvent';\nimport NotificationProtocol from '@/constants/NotificationProtocol';\nimport PaymentMethodEnum from '@/constants/PaymentMethodEnum';\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\n// converters\nimport itemToBundle from '@/converters/itemToBundle';\nimport itemToCountry from '@/converters/itemToCountry';\nimport itemToLicense from '@/converters/itemToLicense';\nimport itemToLicensee from '@/converters/itemToLicensee';\nimport itemToLicenseTemplate from '@/converters/itemToLicenseTemplate';\nimport itemToNotification from '@/converters/itemToNotification';\nimport itemToObject from '@/converters/itemToObject';\nimport itemToPaymentMethod from '@/converters/itemToPaymentMethod';\nimport itemToProduct from '@/converters/itemToProduct';\nimport itemToProductModule from '@/converters/itemToProductModule';\nimport itemToToken from '@/converters/itemToToken';\nimport itemToTransaction from '@/converters/itemToTransaction';\n\n// entities\nimport Bundle from '@/entities/Bundle';\nimport Country from '@/entities/Country';\nimport defineEntity from '@/entities/defineEntity';\nimport License from '@/entities/License';\nimport Licensee from '@/entities/Licensee';\nimport LicenseTemplate from '@/entities/LicenseTemplate';\nimport LicenseTransactionJoin from '@/entities/LicenseTransactionJoin';\nimport Notification from '@/entities/Notification';\nimport PaymentMethod from '@/entities/PaymentMethod';\nimport Product from '@/entities/Product';\nimport ProductDiscount from '@/entities/ProductDiscount';\nimport ProductModule from '@/entities/ProductModule';\nimport Token from '@/entities/Token';\nimport Transaction from '@/entities/Transaction';\n\n// errors\nimport NlicError from '@/errors/NlicError';\n\n// services\nimport BundleService from '@/services/BundleService';\nimport LicenseeService from '@/services/LicenseeService';\nimport LicenseService from '@/services/LicenseService';\nimport LicenseTemplateService from '@/services/LicenseTemplateService';\nimport NotificationService from '@/services/NotificationService';\nimport PaymentMethodService from '@/services/PaymentMethodService';\nimport ProductModuleService from '@/services/ProductModuleService';\nimport ProductService from '@/services/ProductService';\nimport Service from '@/services/Service';\nimport TokenService from '@/services/TokenService';\nimport TransactionService from '@/services/TransactionService';\nimport UtilityService from '@/services/UtilityService';\n\n// utils\nimport { encode as filterEncode, decode as filterDecode } from '@/utils/filter';\nimport serialize from '@/utils/serialize';\nimport { isValid, isDefined, ensureNotNull, ensureNotEmpty } from '@/utils/validation';\n\n// value object\nimport Context from '@/vo/Context';\nimport Page from '@/vo/Page';\nimport ValidationParameters from '@/vo/ValidationParameters';\nimport ValidationResults from '@/vo/ValidationResults';\n\n// types\nexport type * from '@/types';\n\nexport {\n // constants\n Constants,\n ApiKeyRole,\n LicenseeSecretMode,\n LicenseType,\n LicensingModel,\n NodeSecretMode,\n NotificationEvent,\n NotificationProtocol,\n PaymentMethodEnum,\n SecurityMode,\n TimeVolumePeriod,\n TokenType,\n TransactionSource,\n TransactionStatus,\n\n // converters\n itemToBundle,\n itemToCountry,\n itemToLicense,\n itemToLicensee,\n itemToLicenseTemplate,\n itemToNotification,\n itemToObject,\n itemToPaymentMethod,\n itemToProduct,\n itemToProductModule,\n itemToToken,\n itemToTransaction,\n\n // entities\n Bundle,\n Country,\n defineEntity,\n License,\n Licensee,\n LicenseTemplate,\n LicenseTransactionJoin,\n Notification,\n PaymentMethod,\n Product,\n ProductDiscount,\n ProductModule,\n Token,\n Transaction,\n\n // errors\n NlicError,\n\n // services\n BundleService,\n LicenseeService,\n LicenseService,\n LicenseTemplateService,\n NotificationService,\n PaymentMethodService,\n ProductModuleService,\n ProductService,\n Service,\n TokenService,\n TransactionService,\n UtilityService,\n\n // utils\n filterEncode,\n filterDecode,\n serialize,\n isValid,\n isDefined,\n ensureNotNull,\n ensureNotEmpty,\n\n // vo\n Context,\n Page,\n ValidationParameters,\n ValidationResults,\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 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 isNullString = (value: string): value is 'null' => {\n return 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 | string => {\n return value === 'null' ? 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 (isNullString(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, type: CastType = 'auto'): unknown => {\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 aliases: '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","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n * \n * @param {*} value The value to test\n * \n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n}\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n * \n * @param {*} formData The formData to test\n * \n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (FormDataCtor && thing instanceof FormDataCtor) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array<unknown>} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n \n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n value: message,\n enumerable: true,\n writable: true,\n configurable: true\n });\n \n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !this.responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(\n new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][\n Math.floor(response.status / 100) - 4\n ],\n response.config,\n response.request,\n response\n )\n );\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa(\n (auth.username || '') +\n ':' +\n (auth.password ? unescape(encodeURIComponent(auth.password)) : '')\n )\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.indexOf('file:') === 0)\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const { length } = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst globalFetchAPI = (({ Request, Response }) => ({\n Request,\n Response,\n}))(utils.global);\n\nconst { ReadableStream, TextEncoder } = utils.global;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n globalFetchAPI,\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(config, config.transformResponse, response);\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","export const VERSION = \"1.13.6\";","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\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.2\",\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":["index_exports","__export","ApiKeyRole_default","Bundle_default","BundleService_default","constants_default","Context_default","Country_default","License_default","LicenseService_default","LicenseTemplate_default","LicenseTemplateService_default","LicenseTransactionJoin_default","LicenseType_default","Licensee_default","LicenseeSecretMode_default","LicenseeService_default","LicensingModel_default","NlicError","NodeSecretMode_default","Notification_default","NotificationEvent_default","NotificationProtocol_default","NotificationService_default","Page_default","PaymentMethod_default","PaymentMethodEnum_default","PaymentMethodService_default","Product_default","ProductDiscount_default","ProductModule_default","ProductModuleService_default","ProductService_default","SecurityMode_default","Service_default","TimeVolumePeriod_default","Token_default","TokenService_default","TokenType_default","Transaction_default","TransactionService_default","TransactionSource_default","TransactionStatus_default","UtilityService_default","ValidationParameters_default","ValidationResults_default","defineEntity_default","ensureNotEmpty","ensureNotNull","decode","encode","isDefined","isValid","itemToBundle_default","itemToCountry_default","itemToLicense_default","itemToLicenseTemplate_default","itemToLicensee_default","itemToNotification_default","itemToObject_default","itemToPaymentMethod_default","itemToProduct_default","itemToProductModule_default","itemToToken_default","itemToTransaction_default","serialize_default","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","isNullString","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","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isReactNativeBlob","value","isReactNative","formData","isBlob","isFileList","isStream","getGlobal","G","FormDataCtor","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","fn","allOwnKeys","i","l","keys","len","key","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","a","b","thisArg","bind","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","m","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","data","cb","asap","isIterable","utils_default","AxiosError","_AxiosError","error","code","config","request","response","customProps","axiosError","message","utils_default","AxiosError_default","null_default","isVisitable","thing","utils_default","removeBrackets","key","renderKey","path","dots","token","i","isFlatArray","arr","predicates","prop","toFormData","obj","formData","options","null_default","option","source","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","value","AxiosError_default","el","index","stack","exposedHelpers","build","toFormData_default","encode","str","charMap","match","AxiosURLSearchParams","params","options","toFormData_default","prototype","name","value","encoder","_encode","pair","AxiosURLSearchParams_default","encode","val","buildURL","url","params","options","_encode","_options","utils_default","serializeFn","serializedParams","AxiosURLSearchParams_default","hashmarkIndex","InterceptorManager","fulfilled","rejected","options","id","fn","utils_default","h","InterceptorManager_default","transitional_default","URLSearchParams_default","AxiosURLSearchParams_default","FormData_default","Blob_default","browser_default","URLSearchParams_default","FormData_default","Blob_default","utils_exports","__export","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","_navigator","origin","platform_default","utils_exports","browser_default","toURLEncodedForm","data","options","toFormData_default","platform_default","value","key","path","helpers","utils_default","parsePropPath","name","utils_default","match","arrayToObject","arr","obj","keys","i","len","key","formDataToJSON","formData","buildPath","path","value","target","index","isNumericKey","isLast","formDataToJSON_default","stringifySafely","rawValue","parser","encoder","utils_default","e","defaults","transitional_default","data","headers","contentType","hasJSONContentType","isObjectPayload","formDataToJSON_default","isFileList","toURLEncodedForm","_FormData","toFormData_default","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","AxiosError_default","platform_default","status","method","defaults_default","ignoreDuplicateOf","utils_default","parseHeaders_default","rawHeaders","parsed","key","val","i","line","$internals","normalizeHeader","header","normalizeValue","value","utils_default","parseTokens","str","tokens","tokensRE","match","isValidHeaderName","matchHeaderValue","context","filter","isHeaderNameFilter","formatHeader","w","char","buildAccessors","obj","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","headers","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","key","setHeaders","parseHeaders_default","dest","entry","parser","matcher","deleted","deleteHeader","keys","i","format","normalized","targets","asStrings","thing","first","computed","target","accessors","prototype","defineAccessor","mapped","headerValue","AxiosHeaders_default","transformData","fns","response","config","defaults_default","context","headers","AxiosHeaders_default","data","utils_default","fn","isCancel","value","CanceledError","AxiosError_default","message","config","request","CanceledError_default","settle","resolve","reject","response","validateStatus","AxiosError_default","parseProtocol","url","match","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","i","bytesCount","passed","speedometer_default","throttle","fn","freq","timestamp","threshold","lastArgs","timer","invoke","args","now","passed","throttle_default","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","speedometer_default","throttle_default","e","loaded","total","progressBytes","rate","inRange","data","progressEventDecorator","throttled","lengthComputable","asyncDecorator","fn","args","utils_default","isURLSameOrigin_default","platform_default","origin","isMSIE","url","cookies_default","platform_default","name","value","expires","path","domain","secure","sameSite","cookie","utils_default","match","isAbsoluteURL","url","combineURLs","baseURL","relativeURL","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","isAbsoluteURL","combineURLs","headersToObject","thing","AxiosHeaders_default","mergeConfig","config1","config2","config","getMergedValue","target","source","prop","caseless","utils_default","mergeDeepProperties","a","b","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","merge","configValue","resolveConfig_default","config","newConfig","mergeConfig","data","withXSRFToken","xsrfHeaderName","xsrfCookieName","headers","auth","AxiosHeaders_default","buildURL","buildFullPath","utils_default","platform_default","formHeaders","allowedHeaders","key","val","isURLSameOrigin_default","xsrfValue","cookies_default","isXHRAdapterSupported","xhr_default","config","resolve","reject","_config","resolveConfig_default","requestData","requestHeaders","AxiosHeaders_default","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","request","onloadend","responseHeaders","response","settle","value","err","AxiosError_default","event","msg","timeoutErrorMessage","transitional","transitional_default","utils_default","val","key","progressEventReducer","cancel","CanceledError_default","protocol","parseProtocol","platform_default","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","err","AxiosError_default","CanceledError_default","timer","signal","utils_default","composeSignals_default","streamChunk","chunk","chunkSize","len","pos","end","readBytes","iterable","readStream","stream","reader","done","value","trackStream","onProgress","onFinish","iterator","bytes","_onFinish","e","controller","loadedBytes","err","reason","DEFAULT_CHUNK_SIZE","isFunction","utils_default","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","fn","args","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","encoder","str","supportsRequestStream","duplexAccessed","hasContentType","platform_default","supportsResponseStream","resolvers","res","type","config","method","AxiosError_default","getBodyLength","body","resolveBodyLength","headers","length","url","data","signal","cancelToken","timeout","onDownloadProgress","onUploadProgress","responseType","withCredentials","fetchOptions","resolveConfig_default","_fetch","composedSignal","composeSignals_default","request","unsubscribe","requestContentLength","_request","contentTypeHeader","onProgress","flush","progressEventDecorator","progressEventReducer","asyncDecorator","trackStream","isCredentialsSupported","resolvedOptions","response","isStreamResponse","options","prop","responseContentLength","responseData","resolve","reject","settle","AxiosHeaders_default","err","seedCache","getFetch","fetch","seeds","len","i","seed","target","map","adapter","knownAdapters","null_default","xhr_default","getFetch","utils_default","fn","value","renderReason","reason","isResolvedHandle","adapter","getAdapter","adapters","config","length","nameOrAdapter","rejectedReasons","id","AxiosError_default","reasons","state","s","adapters_default","throwIfCancellationRequested","config","CanceledError_default","dispatchRequest","AxiosHeaders_default","transformData","adapters_default","defaults_default","response","reason","isCancel","VERSION","validators","type","i","thing","deprecatedWarnings","validator","version","message","formatMessage","opt","desc","VERSION","value","opts","AxiosError_default","correctSpelling","assertOptions","options","schema","allowUnknown","keys","result","validator_default","validators","validator_default","Axios","instanceConfig","InterceptorManager_default","configOrUrl","config","err","dummy","stack","mergeConfig","transitional","paramsSerializer","headers","utils_default","contextHeaders","method","AxiosHeaders_default","requestInterceptorChain","synchronousRequestInterceptors","interceptor","transitional_default","responseInterceptorChain","promise","i","len","chain","dispatchRequest","newConfig","onFulfilled","onRejected","error","fullPath","buildFullPath","buildURL","url","generateHTTPMethod","isForm","data","Axios_default","CancelToken","_CancelToken","executor","resolvePromise","resolve","token","cancel","i","onfulfilled","_resolve","promise","message","config","request","CanceledError_default","listener","index","controller","abort","err","c","CancelToken_default","spread","callback","arr","isAxiosError","payload","utils_default","HttpStatusCode","key","value","HttpStatusCode_default","createInstance","defaultConfig","context","Axios_default","instance","bind","utils_default","instanceConfig","mergeConfig","axios","defaults_default","CanceledError_default","CancelToken_default","isCancel","VERSION","toFormData_default","AxiosError_default","promises","spread","isAxiosError","AxiosHeaders_default","thing","formDataToJSON_default","adapters_default","HttpStatusCode_default","axios_default","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","all","Cancel","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","axios_default","NlicError","_NlicError","AxiosError","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","axiosInstance","axios_default","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","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"]}
|