{"version":3,"sources":["jsdelivr-header.js","/npm/@adempiere/grpc-api@5.1.0/index.js"],"names":[],"mappings":"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","file":"/npm/@adempiere/grpc-api@5.1.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@adempiere/grpc-api@5.1.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*************************************************************************************\n * Product: ADempiere gRPC Client                                                    *\n * Copyright (C) 2018-2023 E.R.P. Consultores y Asociados, C.A.                      *\n * Contributor(s): Yamel Senih ysenih@erpya.com                                      *\n * This program is free software: you can redistribute it and/or modify              *\n * it under the terms of the GNU General Public License as published by              *\n * the Free Software Foundation, either version 3 of the License, or                 *\n * (at your option) any later version.                                               *\n * This program is distributed in the hope that it will be useful,                   *\n * but WITHOUT ANY WARRANTY; without even the implied warranty of                    *\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the                      *\n * GNU General Public License for more details.                                      *\n * You should have received a copy of the GNU General Public License                 *\n * along with this program. If not, see <https://www.gnu.org/licenses/>.             *\n ************************************************************************************/\n\nconst { getMetadata } = require('@adempiere/grpc-api/src/utils/metadata.js');\n\n class Api {\n\n  /**\n   * Constructor, No authentication required\n   * @param {string} host\n   * @param {string} version\n   * @param {string} language\n   */\n  constructor(config) {\n    if(config) {\n      const adempiereConfig = config.adempiereApi.api\n      this.businessHost = adempiereConfig.businessHost\n      this.version = adempiereConfig.version\n      this.language = adempiereConfig.language\n      this.token = adempiereConfig.token\n    }\n\n    this.initUIService()\n    this.initBusinessService()\n    console.log('ADempiere Api Client Started')\n  }\n\n  // Init connection\n  initUIService() {\n    const grpc = require('@grpc/grpc-js');\n    const services = require('./src/grpc/proto/business_grpc_pb');\n    this.ui = new services.UserInterfaceClient(\n      this.businessHost,\n      grpc.credentials.createInsecure()\n    );\n  }\n\n  // Init connection\n  initBusinessService() {\n    const grpc = require('@grpc/grpc-js');\n    const services = require('./src/grpc/proto/business_grpc_pb');\n    this.business = new services.BusinessDataClient(\n      this.businessHost,\n      grpc.credentials.createInsecure()\n    );\n  }\n\n  //  Get UI Service\n  getUIService() {\n    return this.ui\n  }\n\n  //  Get Business Service\n  getBusinessService() {\n    return this.business\n  }\n\n  //  Business CRUD\n  //  Get a Entity\n  getEntity({\n    token,\n    id,\n    uuid,\n    tableName\n  }, callback) {\n    const { GetEntityRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new GetEntityRequest()\n    request.setId(id)\n    request.setUuid(uuid)\n    request.setTableName(tableName)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getBusinessService().getEntity(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Create a Entity\n  createEntity({\n    token,\n    tableName,\n    attributes\n  }, callback) {\n    const { CreateEntityRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new CreateEntityRequest();\n\n    request.setTableName(tableName);\n    if (attributes) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      attributes.forEach(attribute => {\n        request.addAttributes(\n          getKeyValueToGRPC({\n            columnName: attribute.key,\n            value: attribute.value\n          })\n        );\n      })\n    }\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getBusinessService().createEntity(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Create a Entity\n  updateEntity({\n    token,\n    tableName,\n    id,\n    uuid,\n    attributes\n  }, callback) {\n    const { UpdateEntityRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new UpdateEntityRequest();\n\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n    if (attributes) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      attributes.forEach(attribute => {\n        request.addAttributes(\n          getKeyValueToGRPC({\n            columnName: attribute.key,\n            value: attribute.value\n          })\n        );\n      })\n    }\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getBusinessService().updateEntity(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Create a Entity\n  createEntity({\n    token,\n    tableName,\n    attributes\n  }, callback) {\n    const { CreateEntityRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new CreateEntityRequest();\n\n    request.setTableName(tableName)\n    if (attributes) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      attributes.forEach(attribute => {\n        request.addAttributes(\n          getKeyValueToGRPC({\n            columnName: attribute.key,\n            value: attribute.value\n          })\n        );\n      })\n    }\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getBusinessService().createEntity(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Delete a Entity\n  deleteEntity({\n    token,\n    id,\n    uuid,\n    ids = [],\n    tableName\n  }, callback) {\n    const { DeleteEntityRequest } = require('./src/grpc/proto/business_pb.js');\n    const request = new DeleteEntityRequest();\n\n    request.setId(id);\n    request.setUuid(uuid);\n    request.setTableName(tableName);\n\n    // selection list id\n    if (!this.isEmptyValue(ids)) {\n      request.setIdsList(ids);\n    }\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getBusinessService().deleteEntity(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  List Entities\n  listEntities({\n    token,\n    tableName,\n    //  DSL\n    filters,\n    columns,\n    //  Custom Query\n    query,\n    whereClause,\n    orderByClause,\n    limit,\n    //  Page Data\n    pageSize,\n    pageToken\n  }, callback) {\n    const { ListEntitiesRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new ListEntitiesRequest()\n\n    const { getCriteriaToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n    //  TODO: Add support to all parameters\n    request.setCriteria(\n      getCriteriaToGRPC({\n        tableName,\n        filters,\n        query,\n        whereClause,\n        orderByClause,\n        limit\n      })\n    );\n    //  For columns\n    if (columns) {\n      columns.forEach(column => request.addColumns(column))\n    }\n    request.setPageSize(pageSize)\n    request.setPageToken(pageToken)\n    //  TODO: Add Criteria\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getBusinessService().listEntities(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n\n  //  User Interface\n\n  //  Create Chat Entry\n  createChatEntry({\n    token,\n    tableName,\n    id,\n    uuid,\n    comment\n  }, callback) {\n    const { CreateChatEntryRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new CreateChatEntryRequest()\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n    request.setComment(comment)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().createChatEntry(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Unlock Private Access\n  unlockPrivateAccess({\n    token,\n    tableName,\n    id,\n    uuid\n  }, callback) {\n    const { UnlockPrivateAccessRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new UnlockPrivateAccessRequest()\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().unlockPrivateAccess(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Lock Private Access\n  lockPrivateAccess({\n    token,\n    tableName,\n    id,\n    uuid\n  }, callback) {\n    const { LockPrivateAccessRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new LockPrivateAccessRequest()\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().lockPrivateAccess(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Get Private Access\n  getPrivateAccess({\n    token,\n    tableName,\n    id,\n    uuid\n  }, callback) {\n    const { GetPrivateAccessRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new GetPrivateAccessRequest()\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().getPrivateAccess(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Get Record Access for current role\n  getRecordAccess({\n    token,\n    tableName,\n    id,\n    uuid\n  }, callback) {\n    const { GetRecordAccessRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new GetRecordAccessRequest()\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().getRecordAccess(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  // Set Record Access for current role\n  setRecordAccess({\n    token,\n    tableName,\n    id,\n    uuid,\n    recordAccesses\n  }, callback) {\n    const { SetRecordAccessRequest, RecordAccessRole } = require('./src/grpc/proto/business_pb.js')\n    const request = new SetRecordAccessRequest()\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n    //  Set access for role\n    if(recordAccesses) {\n      recordAccesses.forEach(record => {\n        const recordAccessRole = new RecordAccessRole()\n        recordAccessRole.setRoleId(record.roleId)\n        if(record.roleUuid) {\n          recordAccessRole.setRoleUuid(record.roleUuid)\n        }\n        if(record.roleName) {\n          recordAccessRole.setRoleName(record.roleName)\n        }\n        recordAccessRole.setIsActive(record.isActive)\n        recordAccessRole.setIsExclude(record.isExclude)\n        recordAccessRole.setIsReadOnly(record.isReadOnly)\n        recordAccessRole.setIsDependentEntities(record.isDependentEntities)\n        request.addRecordAccesses(recordAccessRole)\n      })\n    }\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().setRecordAccess(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  // Set preference value for a attribute\n  setPreference({\n    token,\n    containerUuid,\n    columnName,\n    isForCurrentUser,\n    isForCurrentClient,\n    isForCurrentOrganization,\n    isForCurrentContainer,\n    value\n  }, callback) {\n    const { SetPreferenceRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new SetPreferenceRequest()\n    if(containerUuid) {\n      request.setContainerUuid(containerUuid)\n    }\n    request.setColumnName(columnName)\n    request.setValue(value)\n    request.setIsForCurrentUser(isForCurrentUser)\n    request.setIsForCurrentClient(isForCurrentClient)\n    request.setIsForCurrentOrganization(isForCurrentOrganization)\n    request.setIsForCurrentContainer(isForCurrentContainer)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().setPreference(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  // Delete preference based on criteria for it\n  deletePreference({\n    token,\n    containerUuid,\n    columnName,\n    isForCurrentUser,\n    isForCurrentClient,\n    isForCurrentOrganization,\n    isForCurrentContainer,\n    value\n  }, callback) {\n    const { DeletePreferenceRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new DeletePreferenceRequest()\n    if(containerUuid) {\n      request.setContainerUuid(containerUuid)\n    }\n    request.setColumnName(columnName)\n    request.setIsForCurrentUser(isForCurrentUser)\n    request.setIsForCurrentClient(isForCurrentClient)\n    request.setIsForCurrentOrganization(isForCurrentOrganization)\n    request.setIsForCurrentContainer(isForCurrentContainer)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().deletePreference(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Get Context Information Value\n  getContextInfoValue({\n    token,\n    query,\n    uuid,\n    id\n  }, callback) {\n    const { GetContextInfoValueRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new GetContextInfoValueRequest()\n    request.setQuery(query)\n    request.setUuid(uuid)\n    request.setId(id)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().getContextInfoValue(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  List references of record\n  listReferences({\n    token,\n    tableName,\n    windowUuid,\n    id,\n    uuid,\n    pageSize,\n    pageToken\n  }, callback) {\n    const { ListReferencesRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new ListReferencesRequest()\n    request.setTableName(tableName)\n    request.setUuid(uuid)\n    request.setId(id)\n    request.setWindowUuid(windowUuid)\n    request.setPageSize(pageSize)\n    request.setPageToken(pageToken)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().listReferences(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  List Browser Items\n  listBrowserItems({\n    token,\n    uuid,\n    tableName,\n    //  DSL\n    filters,\n    contextAttributes,\n    pageSize,\n    pageToken\n  }, callback) {\n    const { ListBrowserItemsRequest } = require('./src/grpc/proto/business_pb.js');\n    const request = new ListBrowserItemsRequest();\n\n    const { getCriteriaToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n    const criteriaGrpc = getCriteriaToGRPC({\n      tableName,\n      filters\n    });\n    request.setCriteria(criteriaGrpc);\n\n    if (!this.isEmptyValue(contextAttributes)) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      const { getTypeOfValue } = require('@adempiere/grpc-api/src/utils/valueUtils.js');\n\n      if (getTypeOfValue(contextAttributes) === 'String') {\n        contextAttributes = JSON.parse(contextAttributes);\n      }\n\n      contextAttributes.forEach(attribute => {\n        let parsedAttribute = attribute;\n        if (getTypeOfValue(attribute) === 'String') {\n          parsedAttribute = JSON.parse(attribute);\n        }\n        request.addContextAttributes(\n          getKeyValueToGRPC({\n            columnName: parsedAttribute.key,\n            value: parsedAttribute.value\n          })\n        );\n      })\n    }\n\n    request.setUuid(uuid);\n    request.setPageSize(pageSize);\n    request.setPageToken(pageToken);\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().listBrowserItems(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  /**\n   * Update Browser Entity\n   * @param {string} token session uuid\n   * @param {number} id identifier of smart browser\n   * @param {string} id universally unique identifier of smart browser\n   * @param {object} \n   */\n  updateBrowserEntity({\n    token,\n    id,\n    uuid,\n    recordId,\n    attributes\n  }, callback) {\n    const { UpdateBrowserEntityRequest } = require('./src/grpc/proto/business_pb.js');\n    const request = new UpdateBrowserEntityRequest();\n\n    request.setId(id);\n    request.setUuid(uuid);\n    request.setRecordId(recordId);\n\n    // browser records selections list\n    if (!this.isEmptyValue(attributes)) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      const { getTypeOfValue } = require('@adempiere/grpc-api/src/utils/valueUtils.js');\n  \n      if (getTypeOfValue(attributes) === 'String') {\n        attributes = JSON.parse(attributes);\n      }\n\n      attributes.forEach(attribute => {\n        let parsedAttribute = attribute;\n        if (getTypeOfValue(attribute) === 'String') {\n          parsedAttribute = JSON.parse(attribute);\n        }\n  \n        const attributeConverted = getKeyValueToGRPC({\n          columnName: parsedAttribute.key,\n          value: parsedAttribute.value\n        });\n\n        request.addAttributes(attributeConverted);\n      });\n    }\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().updateBrowserEntity(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  List Lookup Items\n  listLookupItems({\n    token,\n    processParameterUuid,\n    fieldUuid,\n    browseFieldUuid,\n    referenceUuid,\n    columnUuid,\n    columnName,\n    tableName,\n    searchValue,\n    contextAttributes,\n    pageSize,\n    pageToken\n  }, callback) {\n    const { ListLookupItemsRequest } = require('./src/grpc/proto/business_pb.js');\n    const request = new ListLookupItemsRequest();\n\n    request.setProcessParameterUuid(processParameterUuid);\n    request.setFieldUuid(fieldUuid);\n    request.setBrowseFieldUuid(browseFieldUuid);\n    //\n    request.setReferenceUuid(referenceUuid);\n    request.setTableName(tableName);\n    request.setColumnUuid(columnUuid);\n    request.setColumnName(columnName);\n    request.setSearchValue(searchValue);\n    if (!this.isEmptyValue(contextAttributes)) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      const { getTypeOfValue } = require('@adempiere/grpc-api/src/utils/valueUtils.js');\n\n      if (getTypeOfValue(contextAttributes) === 'String') {\n        contextAttributes = JSON.parse(contextAttributes);\n      }\n      contextAttributes.forEach(attribute => {\n        let parsedAttribute = attribute;\n        if (getTypeOfValue(attribute) === 'String') {\n          parsedAttribute = JSON.parse(attribute);\n        }\n        request.addContextAttributes(\n          getKeyValueToGRPC({\n            columnName: parsedAttribute.key,\n            value: parsedAttribute.value\n          })\n        );\n      })\n    }\n    request.setPageSize(pageSize);\n    request.setPageToken(pageToken);\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().listLookupItems(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Get Lookup\n  getLookupItem({\n    token,\n    processParameterUuid,\n    fieldUuid,\n    browseFieldUuid,\n    referenceUuid,\n    columnUuid,\n    columnName,\n    tableName,\n    contextAttributes,\n    id,\n    uuid\n  }, callback) {\n    const { GetLookupItemRequest } = require('./src/grpc/proto/business_pb.js');\n    const request = new GetLookupItemRequest();\n    request.setUuid(uuid);\n    request.setId(id);\n    request.setProcessParameterUuid(processParameterUuid);\n    request.setFieldUuid(fieldUuid);\n    request.setBrowseFieldUuid(browseFieldUuid);\n    //\n    request.setReferenceUuid(referenceUuid);\n    request.setTableName(tableName);\n    request.setColumnUuid(columnUuid);\n    request.setColumnName(columnName);\n\n    if (!this.isEmptyValue(contextAttributes)) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      const { getTypeOfValue } = require('@adempiere/grpc-api/src/utils/valueUtils.js');\n\n      if (getTypeOfValue(contextAttributes) === 'String') {\n        contextAttributes = JSON.parse(contextAttributes);\n      }\n      contextAttributes.forEach(attribute => {\n        let parsedAttribute = attribute;\n        if (getTypeOfValue(attribute) === 'String') {\n          parsedAttribute = JSON.parse(attribute);\n        }\n        request.addContextAttributes(\n          getKeyValueToGRPC({\n            columnName: parsedAttribute.key,\n            value: parsedAttribute.value\n          })\n        );\n      })\n    }\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().getLookupItem(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  List translations\n  listTranslations({\n    token,\n    tableName,\n    uuid,\n    id,\n    pageSize,\n    pageToken\n  }, callback) {\n    const { ListTranslationsRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new ListTranslationsRequest()\n    request.setTableName(tableName)\n    request.setUuid(uuid)\n    request.setId(id)\n    request.setPageSize(pageSize)\n    request.setPageToken(pageToken)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().listTranslations(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  //  Rollback a value from entity\n  rollbackEntity({\n    token,\n    tableName,\n    id,\n    uuid,\n    logId\n  }, callback) {\n    const { RollbackEntityRequest } = require('./src/grpc/proto/business_pb.js')\n    const request = new RollbackEntityRequest()\n    request.setTableName(tableName)\n    request.setId(id)\n    request.setUuid(uuid)\n    request.setLogId(logId)\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().rollbackEntity(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  // List General Info\n  listGeneralInfo({\n    token,\n    //  DSL\n    filters = [],\n    searchValue,\n    contextAttributes,\n    // references\n    processParameterUuid,\n    fieldUuid,\n    browseFieldUuid,\n    columnUuid,\n    tableName,\n    columnName,\n    referenceUuid,\n    // Page Data\n    pageSize,\n    pageToken\n  }, callback) {\n    const { ListGeneralInfoRequest } = require('./src/grpc/proto/business_pb.js');\n    const request = new ListGeneralInfoRequest();\n\n    request.setFieldUuid(fieldUuid);\n    request.setProcessParameterUuid(processParameterUuid);\n    request.setBrowseFieldUuid(browseFieldUuid);\n    request.setColumnUuid(columnUuid);\n    request.setTableName(tableName);\n    request.setColumnName(columnName);\n    request.setReferenceUuid(referenceUuid);\n\n    const { getCriteriaToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n    request.setFilters(\n      getCriteriaToGRPC({\n        tableName,\n        filters\n      })\n    );\n\n    request.setSearchValue(searchValue);\n    if (!this.isEmptyValue(contextAttributes)) {\n      const { getKeyValueToGRPC } = require('@adempiere/grpc-api/src/utils/baseDataTypeToGRPC.js');\n      const { getTypeOfValue } = require('@adempiere/grpc-api/src/utils/valueUtils.js');\n\n      if (getTypeOfValue(contextAttributes) === 'String') {\n        contextAttributes = JSON.parse(contextAttributes);\n      }\n      contextAttributes.forEach(attribute => {\n        let parsedAttribute = attribute;\n        if (getTypeOfValue(attribute) === 'String') {\n          parsedAttribute = JSON.parse(attribute);\n        }\n        request.addContextAttributes(\n          getKeyValueToGRPC({\n            columnName: parsedAttribute.key,\n            value: parsedAttribute.value\n          })\n        );\n      });\n    }\n\n    request.setPageSize(pageSize);\n    request.setPageToken(pageToken);\n\n    const metadata = getMetadata({\n      token\n    });\n\n    this.getUIService().listGeneralInfo(\n      request,\n      metadata,\n      callback\n    );\n  }\n\n  isEmptyValue(value) {\n    const { isEmptyValue } = require('./src/utils/valueUtils.js');\n\n    return isEmptyValue(value);\n  }\n}\n\nmodule.exports = Api;\n"]}