{"version":3,"file":"cs-rest.cjs","sources":["../src/rpc-client/error-codes.ts","../src/utils/subtypes-enum.ts","../src/rpc-client/index.ts","../src/handlers/service-abstract.ts","../src/handlers/auth.ts","../src/utils/is-node.ts","../src/handlers/nodes.ts","../src/utils/workflow-initiator.ts","../src/handlers/workflow.ts","../src/handlers/rhcore.ts","../src/handlers/search.ts","../src/handlers/members.ts","../src/handlers/versions.ts","../src/handlers/webreports.ts","../src/Session.ts","../src/utils/axios-factory.ts","../src/index.ts"],"sourcesContent":["const ErrorCodes = {\n  PARSEERROR: {\n    code: -32700,\n    message: \"Parse error\",\n  },\n  INVALIDREQUEST: {\n    code: -32600,\n    message: \"Invalid Request\",\n  },\n  METHODNOTFOUND: {\n    code: -32601,\n    message: \"Method not found\",\n  },\n  INVALIDPARAMS: {\n    code: -32602,\n    message: \"Invalid params\",\n  },\n  INTERNALERROR: {\n    code: -32603,\n    message: \"Internal error\",\n  },\n} as const;\n\ntype ErrorMessage = {\n  message: string;\n  code: number;\n  data: Array<any> | Record<string, any>;\n};\n\nconst isObject = (x: unknown): x is Object =>\n  typeof x === \"object\" && x !== null;\n\nclass RPCError extends Error {\n  code: number;\n  data: Array<any> | Record<string, any>;\n\n  constructor(\n    message: string | ErrorMessage = ErrorCodes.INTERNALERROR.message,\n    data = null,\n    code: number = ErrorCodes.INTERNALERROR.code\n  ) {\n    if (isObject(message)) {\n      const messageObj = message as RPCError;\n\n      super(messageObj.message);\n\n      this.code = messageObj.code;\n      this.data = messageObj.data;\n    } else {\n      super(message as string);\n\n      this.code = code;\n      this.data = data;\n    }\n  }\n}\n\nexport { RPCError, ErrorCodes };\n","/**\n * How many do we actually care about?\n */\n\nexport enum SubTypesEnum {\n  Alias = 1,\n  Category = 131,\n  Collection = 298,\n  CompoundDoc = 136,\n  Document = 144,\n  Folder = 0,\n  Generation = 2,\n  Project = 202,\n  ProjectVol = 201,\n  Release = 138,\n  Revision = 139,\n  ScriptNode = 32901,\n  Simplate = 31678,\n}\n\n// export enum SubTypesEnum {\n//   // TwoWayTee = 294,\n//   Accession = 834,\n//   ActiveFolder = 1298,\n//   Activeview = 30309,\n//   ActivityManager = 907,\n//   Alias = 1,\n//   Appearance = 480,\n//   AppearanceFolder = 483,\n//   AppearancesVolume = 481,\n//   ArchiveFolder = 31711,\n//   BackupManager = 290,\n//   BackupProcess = 291,\n//   BestBets = 274,\n//   Blog = 356,\n//   BlogEntry = 357,\n//   BoxFolder = 530,\n//   Category = 131,\n//   CategoryFolder = 132,\n//   Channel = 207,\n//   ChannelVol = 209,\n//   Classification = 199,\n//   ClassificationShortcut = 197,\n//   ClassificationTree = 196,\n//   ClassifiedItems = 194,\n//   Collection = 298,\n//   Column = 902,\n//   Comments = 345,\n//   CommentsReply = 348,\n//   CommentsVol = 346,\n//   CommExpertContainer = 3030338,\n//   CommExpertGroup = 3030339,\n//   CommStore = 3030329,\n//   CommTemplate = 3030002,\n//   CommTemplateFolder = 3030333,\n//   CommTemplateVol = 3030004,\n//   CommURLStore = 3030335,\n//   CommWorkspace = 3030334,\n//   CommXSLVolume = 3030205,\n//   CompoundDoc = 136,\n//   CompoundEMail = 557,\n//   ContentModuleFolder = 3030372,\n//   CSApplicationManifest = 32658,\n//   CSApplicationsVolume = 32657,\n//   CustomView = 146,\n//   CustomViewTemplate = 844,\n//   DataFlowManager = 270,\n//   DataSourceFolder = 276,\n//   DirWalker = 277,\n//   Discussion = 215,\n//   DispositionGroup = 602,\n//   Document = 144,\n//   DocumentLLNode = 1297,\n//   DocumentServer = 283,\n//   Dossier = 32912,\n//   DossierCabinet = 32916,\n//   DossierCabinetArchive = 31707,\n//   DossierTemplate = 32914,\n//   DossierTemplateFolder = 31709,\n//   DossierTemplatesVolume = 32917,\n//   DossierTemplateVolume = 32915,\n//   DossierVolume = 32913,\n//   DPSBinding = 31602,\n//   DPSFolder = 31601,\n//   DPSVolume = 31603,\n//   DTDLLNode = 335,\n//   DynamicView = 900,\n//   EMail = 749,\n//   EmailConversationItems = 2504,\n//   EnterpriseArchiveDocument = 753,\n//   Facet = 904,\n//   FacetFolder = 905,\n//   FacetTree = 903,\n//   FailedFolder = 1299,\n//   FixedSystemColumn = 906,\n//   Folder = 0,\n//   Form = 223,\n//   Generation = 2,\n//   GENERICCONTENTMODULE = 3030371,\n//   GlobalAppearance = 482,\n//   HoldContainer = 833,\n//   HTMLConversion = 282,\n//   HTMLFormView = 226,\n//   Importer = 293,\n//   Inbox = 731,\n//   IndexEngine = 368,\n//   IndexTracer = 147,\n//   IndexUpdate = 281,\n//   InternalOTDS = 924,\n//   ItemTemplateVol = 541,\n//   ItemTemplateVolFolder = 542,\n//   JournalVolume = 361,\n//   LibraryExtractor = 259,\n//   LibraryObj = 272,\n//   LLNodeEmailFolder = 751,\n//   LLNodeFAQ = 123475,\n//   LLNodeFAQEntry = 123476,\n//   LLNodeForum = 123469,\n//   LLNodeForumEntry = 123470,\n//   LLNodeURQuestion = 430,\n//   LLNodeURReply = 432,\n//   Locators = 422,\n//   Mailbox = 732,\n//   MailStore = 3030331,\n//   ManagedSpace = 31710,\n//   MediaType = 410,\n//   MediaTypesContainer = 414,\n//   MemcachedFolder = 919,\n//   MemcachedProcess = 920,\n//   Merge = 273,\n//   MicroPost = 1281,\n//   MicroPostVolume = 1282,\n//   MultiVolClassification = 372,\n//   MultiVolClassificationProxy = 374,\n//   MultiVolClassificationTree = 373,\n//   MyReservedItems = 870,\n//   MyWorkbenches = 532,\n//   NAVMENUVOL = 3030756,\n//   News = 208,\n//   OTCIndexObj = 257,\n//   Partition = 371,\n//   PartitionMap = 370,\n//   PersonalComm = 3030203,\n//   PersonalCommSystemVolume = 3030003,\n//   PersonalCommVol = 3030204,\n//   PersonalStagingFolder = 398,\n//   PersonalWebpage = 3030343,\n//   PhysicalItemBox = 424,\n//   PhysicalItemContainer = 412,\n//   PhysicalItemCopy = 419,\n//   PhysicalItem_non_Container = 411,\n//   PhysObjAdmin = 415,\n//   PhysObjBatchLabels = 418,\n//   PhysObjCirculation = 416,\n//   PhysObjReports = 417,\n//   Poll = 218,\n//   Process = 271,\n//   Profile = 195,\n//   Project = 202,\n//   ProjectTemplate = 543,\n//   ProjectVol = 201,\n//   Prospector = 384,\n//   ProspectorQueries = 380,\n//   ProspectorSnapshot = 387,\n//   Provenance = 829,\n//   Proxy = 260,\n//   PublishingFolder = 31712,\n//   PublishingFolderVolume = 31713,\n//   QAFolder = 441,\n//   QueryFile = 296,\n//   QuestionVolume = 431,\n//   RecentItems = 327,\n//   RecordType = 425,\n//   RecordTypesContainer = 428,\n//   RedForm = 32918,\n//   RedFormVolume = 32919,\n//   Release = 138,\n//   RemoteLLDataSource = 381,\n//   Reply = 134,\n//   Report = 299,\n//   Revision = 139,\n//   RIMSDisposition = 555,\n//   RIMSDispositionsContainer = 554,\n//   RIMSHoldMaintenance = 552,\n//   RIMSRsiContainer = 553,\n//   RMAdministration = 556,\n//   RMClassification = 551,\n//   RMFolder = 426,\n//   RMPart = 427,\n//   RMReportsContainer = 558,\n//   RMThesaurus = 559,\n//   ScanConfigurationVolume = 2505,\n//   ScheduledHoldCriteria = 835,\n//   ScriptNode = 32901,\n//   SearchBroker = 258,\n//   SearchEngine = 369,\n//   SearchManager = 269,\n//   SearchReport = 278,\n//   SearchResultsTemplate = 383,\n//   SearchTemplate = 292,\n//   Simplate = 31678,\n//   SkyPodLLVolume = 49547,\n//   SliceFolder = 275,\n//   SocialObject = 1280,\n//   SocialObjectVolume = 1283,\n//   SPCJOBDESCR = 797,\n//   SPCJOBDESCRFOLDER = 796,\n//   SPCVOLUME = 795,\n//   spdcommittee = 3030202,\n//   spdcommitteevol = 3030201,\n//   spdcommitteevolume = 3030001,\n//   spdemail = 3030130,\n//   Spider = 280,\n//   StorageManagement = 421,\n//   SubmitVersionNode = 231,\n//   Task = 206,\n//   TaskGroup = 205,\n//   TaskList = 204,\n//   TaskListVol = 210,\n//   TaskMilestone = 212,\n//   Template = 230,\n//   TemplateFolder = 268,\n//   TextDocument = 145,\n//   Topic = 130,\n//   Transfers = 423,\n//   TransportBox = 531,\n//   TransportItem = 526,\n//   TransportItemPart = 527,\n//   UrgentRequests = 3030330,\n//   URL = 140,\n//   VirtualFolder = 899,\n//   VolBlog = 123461,\n//   VolCategories = 133,\n//   VolClassification = 198,\n//   VolComments = 347,\n//   VolDAP = 987352,\n//   VolDeletedItems = 405,\n//   VolDirectory = 375,\n//   VolDiscussion = 143,\n//   VolDomainWorkspace = 180,\n//   VolDTD = 336,\n//   VolEditWorkflow = 162,\n//   VolFacets = 901,\n//   VolLibrary = 141,\n//   VolOrphan = 403,\n//   VolPersonalStaging = 397,\n//   VolPerspectives = 908,\n//   VolPhysObj = 413,\n//   VolRecMan = 550,\n//   VolRelease = 137,\n//   VolReports = 211,\n//   VolSystem = 148,\n//   VolTracer = 149,\n//   VolumeFolder = 484,\n//   VolumeLLVolume = 1296,\n//   VolWarehouse = 525,\n//   VolWorkbin = 142,\n//   VolWorkflow = 161,\n//   WarehouseFolder = 529,\n//   WebFormConnectionVolume = 236,\n//   WebFormDatabaseConnection = 235,\n//   WebFormLookup = 234,\n//   WebFormLookupVolume = 233,\n//   WebReports = 30303,\n//   WFMapLLNode = 128,\n//   WFStatusNode = 190,\n//   WIKI = 5573,\n//   WIKIPAGE = 5574,\n//   Workbench = 528,\n//   WorkflowAttachments = 154,\n//   XMLActivatorCon = 286,\n//   XMLActivatorProd = 285,\n// }\n","import { RPCError } from \"./error-codes\";\nimport Session from \"../Session\";\n\nconst sequence = {\n  index: 0,\n  get next(): number {\n    this.index = this.index + 1;\n    return this.index;\n  },\n};\n\ntype requestObjectType = {\n  jsonrpc: string;\n  method: string;\n  id: number;\n  params: Record<string, any> | Array<any>;\n};\n\nexport default class RPCClient {\n  session: Session;\n  relativePath: string;\n\n  protected _batchQueue: Array<requestObjectType>;\n\n  constructor(session: Session, relativePath: string) {\n    this.session = session;\n    this.relativePath = relativePath;\n    this.resetQueue();\n  }\n\n  protected requestObject(\n    method: string,\n    params: Record<string, any> | Array<any>,\n    id: number\n  ): requestObjectType {\n    return {\n      jsonrpc: \"2.0\",\n      method,\n      id,\n      params,\n    };\n  }\n\n  protected handleResponse(data) {\n    if (Object.prototype.hasOwnProperty.call(data, \"result\")) {\n      return data.result;\n    } else if (Object.prototype.hasOwnProperty.call(data, \"error\")) {\n      const err = data.error;\n      throw new RPCError(err.message, err.data, err.code);\n    } else {\n      throw Error(\"The server did not respond correctly.\");\n    }\n  }\n\n  // https://www.jsonrpc.org/specification#request_object\n  // params is allowed to be null!\n  // also on queue function below\n  async request(method: string, params: any, id: number = sequence.next) {\n    const response = await this.session.postBody(this.relativePath, {\n      rpc: this.requestObject(method, params, id),\n    });\n\n    return this.handleResponse(response.data);\n  }\n\n  private resetQueue(): void {\n    this._batchQueue = [];\n  }\n\n  queue(method: string, params: any, id: number = sequence.next): RPCClient {\n    this._batchQueue.push(this.requestObject(method, params, id));\n    return this;\n  }\n\n  async batch(throwOnError: boolean = false): Promise<any> {\n    const queue = this._batchQueue;\n    this.resetQueue();\n    const response = await this.session.postBody<any>(this.relativePath, {\n      rpc: queue,\n    });\n\n    return (response.data.data ?? []).map((item) => {\n      if (throwOnError) {\n        return this.handleResponse(item);\n      } else {\n        try {\n          return this.handleResponse(item);\n        } catch (e) {\n          return e;\n        }\n      }\n    });\n  }\n\n  rhnode(dataid, method, args = [], id = sequence.next) {\n    const params = {\n      dataid,\n      args,\n    };\n\n    return this.request(method, params, id);\n  }\n\n  rhnodeQueue(dataid, method, args = [], id = sequence.next) {\n    const params = {\n      dataid,\n      args,\n    };\n\n    return this.queue(method, params, id);\n  }\n}\n","import type Session from \"../Session\";\n\nclass ServiceAbstract {\n  protected _session: Session;\n\n  constructor(session: Session) {\n    this._session = session;\n  }\n\n  get session() {\n    return this._session;\n  }\n}\n\nexport default ServiceAbstract;\n","import ServiceAbstract from \"./service-abstract\";\n\nclass Auth extends ServiceAbstract {\n  auth() {\n    return this.session.get(\"/api/v1/auth/\");\n  }\n}\n\nexport default Auth;\n","/**\n * A simple check whether we're in a browser or node context.\n *\n * @returns\n */\nexport const isNode = () => typeof window === \"undefined\";\n","import { SubTypesEnum } from \"../utils/subtypes-enum\";\r\nimport ServiceAbstract from \"./service-abstract\";\r\nimport { isNode } from \"../utils/is-node\";\r\nimport { components } from \"../types/cs-rest-types/schema\";\r\n\r\n// type TNewVersionType = components[\"schemas\"][\"versions_NewVersionInfo\"];\r\n\r\nclass Nodes extends ServiceAbstract {\r\n  addablenodetypes(dataid: number) {\r\n    return this.session.get<components[\"schemas\"][\"nodes_AddableTypesInfo\"]>(\r\n      `api/v1/nodes/${dataid}/addablenodetypes`,\r\n    );\r\n  }\r\n\r\n  async addDocument({\r\n    parent_id,\r\n    fileHandler,\r\n    // apiVersion = \"v1\",\r\n    name = undefined,\r\n    description = undefined,\r\n    options = {},\r\n  }: {\r\n    parent_id: number;\r\n    fileHandler: File | string;\r\n    // apiVersion?: \"v1\" | \"v2\";\r\n    name?: string;\r\n    description?: string;\r\n    options?: Record<string, any>;\r\n  }) {\r\n    const url = `api/v1/nodes`;\r\n\r\n    if (isNode() && this.session._isString(fileHandler)) {\r\n      // node.js\r\n      const [fs, path] = await Promise.all([import(\"fs\"), import(\"path\")]);\r\n      const f = fs.createReadStream(fileHandler);\r\n\r\n      const params = {\r\n        body: {\r\n          ...options,\r\n          type: SubTypesEnum.Document,\r\n          name: name ?? path.basename(fileHandler),\r\n          parent_id,\r\n        },\r\n        file: f,\r\n      };\r\n\r\n      return await this.session.postForm<\r\n        components[\"schemas\"][\"nodes_CreateResponse\"]\r\n      >(url, params);\r\n    } else if (this.session._isFile(fileHandler)) {\r\n      // browser\r\n\r\n      const params = {\r\n        body: {\r\n          ...options,\r\n          type: SubTypesEnum.Document,\r\n          name,\r\n          description,\r\n          parent_id,\r\n        },\r\n        file: fileHandler,\r\n      };\r\n\r\n      return await this.session.postForm<\r\n        components[\"schemas\"][\"nodes_CreateResponse\"]\r\n      >(url, params);\r\n    } else {\r\n      throw new Error(\"Invalid file.\");\r\n    }\r\n  }\r\n\r\n  async addDocumentMajor({\r\n    parent_id,\r\n    fileHandler,\r\n    name = undefined,\r\n    description = undefined,\r\n    options = {},\r\n  }: {\r\n    parent_id: number;\r\n    fileHandler: File | string;\r\n    name?: string;\r\n    description?: string;\r\n    options: Record<string, any>;\r\n  }) {\r\n    const response = await this.addDocument({\r\n      parent_id,\r\n      fileHandler,\r\n      name,\r\n      options: {\r\n        ...options,\r\n        advanced_versioning: true,\r\n      },\r\n    });\r\n\r\n    const dataid = response.data.id;\r\n\r\n    await this.session.versions.promote({\r\n      dataid,\r\n      versionNumber: 1,\r\n      description,\r\n    });\r\n\r\n    await this.session.versions.deleteVersion({\r\n      dataid,\r\n      versionNumber: 1,\r\n    });\r\n\r\n    return response;\r\n  }\r\n\r\n  addItem(type, parent_id, name, params = {}) {\r\n    return this.session.postBody<\r\n      components[\"schemas\"][\"nodes_V2ResponseElementPost\"]\r\n    >(\"api/v2/nodes\", {\r\n      type,\r\n      parent_id,\r\n      name,\r\n      ...params,\r\n    });\r\n  }\r\n\r\n  node({ dataid, apiVersion = \"v2\", params = {} }) {\r\n    return this.session.get(`api/${apiVersion}/nodes/${dataid}`, {\r\n      params,\r\n    });\r\n  }\r\n\r\n  ancestors(dataid, params = {}) {\r\n    return this.session.get(`api/v1/nodes/${dataid}/ancestors`, {\r\n      params,\r\n    });\r\n  }\r\n\r\n  volumeInfo(objType) {\r\n    return this.session.get<\r\n      components[\"parameters\"][\"suppress_response_codes\"]\r\n    >(`api/v1/volumes/${objType}`);\r\n  }\r\n\r\n  volumes() {\r\n    return this.session.get(\"api/v2/volumes\");\r\n  }\r\n\r\n  addFolder(parent_id, name, params = {}) {\r\n    return this.addItem(SubTypesEnum.Folder, parent_id, name, params);\r\n  }\r\n\r\n  addGeneration(parent_id, name, original_id, version_number, params = {}) {\r\n    return this.addItem(SubTypesEnum.Generation, parent_id, name, {\r\n      original_id,\r\n      version_number,\r\n      ...params,\r\n    });\r\n  }\r\n\r\n  nodes(dataid, params = {}) {\r\n    // https://developer.opentext.com/webaccess/#url=%2Fawd%2Fresources%2Fapis%2Fcs-rest-api-for-cs-16-s%23!%2Fnodes%2FgetSubnodes_get_15&tab=501\r\n    return this.session.get(`api/v2/nodes/${dataid}/nodes`, {\r\n      params,\r\n    });\r\n  }\r\n\r\n  children(dataid, params = {}) {\r\n    return this.nodes(dataid, params);\r\n  }\r\n\r\n  delete(dataid) {\r\n    return this.session.delete(`api/v1/nodes/${dataid}`);\r\n  }\r\n\r\n  download({ dataid, apiVersion = \"v1\", filePath }) {\r\n    // this.session.nodes.download(1267501, 'v2', '/Users/chris/Downloads/test.pdf')\r\n    if (isNode()) {\r\n      return this.session\r\n        .get<any>(`api/${apiVersion}/nodes/${dataid}/content`, {\r\n          responseType: \"stream\",\r\n        })\r\n        .then(async (response) => {\r\n          const fs = await import(\"fs\");\r\n          const writer = fs.createWriteStream(filePath);\r\n\r\n          response.data.pipe(writer);\r\n\r\n          return new Promise((resolve, reject) => {\r\n            writer.on(\"finish\", resolve);\r\n            writer.on(\"error\", reject);\r\n          });\r\n        });\r\n    } else {\r\n      return Promise.reject(\"Not implemented yet\");\r\n    }\r\n  }\r\n\r\n  audit({ dataid, apiVersion = \"v2\", params = {} }) {\r\n    return this.session.get(`api/${apiVersion}/nodes/${dataid}/audit`, {\r\n      params,\r\n    });\r\n  }\r\n}\r\n\r\nexport default Nodes;\r\n","import Session from \"../Session\";\n\nimport { components } from \"../types/cs-rest-types/schema\";\n\ntype draftprocesses_DraftProcess =\n  components[\"schemas\"][\"draftprocesses_DraftProcess\"];\n\ntype forms_WorkflowPropertiesFormInfo =\n  components[\"schemas\"][\"forms_WorkflowPropertiesFormInfo\"];\n\ntype draftprocesses_DraftProcess_Put =\n  components[\"schemas\"][\"draftprocesses_DraftProcess_Put\"];\n\nexport type TWorkflowPut = {\n  action: \"Initiate\" | \"formUpdate\";\n  values?: any;\n  comment?: string;\n  authentication_info?: { password: string };\n};\n\nclass WorkflowInitiator {\n  workflowPropertiesInfo: forms_WorkflowPropertiesFormInfo | null = null;\n\n  constructor(private session: Session, private mapId: number) {}\n\n  /**\n   * This method prepares the workflow for initiation. It must be called before any other method.\n   */\n  async start() {\n    this.workflowPropertiesInfo = await this.session.workflow.start(this.mapId);\n  }\n\n  get form() {\n    return this.workflowPropertiesInfo.forms[0];\n  }\n\n  findWorkflowAttribute(attributeName: string) {\n    const properties: Record<string, any> = this.form.schema.properties;\n\n    return Object.entries(properties).find(\n      ([workflowName, value]) => value.title === attributeName\n    );\n  }\n\n  get processId(): number {\n    // @ts-ignore - This is missing in the openapi schema.\n    return this.workflowPropertiesInfo.data.process_id;\n  }\n\n  get attachmentsFolderId(): number | undefined {\n    const dataPackages = this.workflowPropertiesInfo.data.data_packages;\n    const attachmentPkg = dataPackages.find(\n      (pkg) => pkg.type === 1 && pkg.sub_type === 1\n    );\n    return attachmentPkg?.data.attachment_folder_id;\n  }\n\n  get wantComments(): boolean {\n    return this.workflowPropertiesInfo.data.comments_on;\n  }\n\n  get wantAuthentication(): boolean {\n    return this.workflowPropertiesInfo.data.authentication;\n  }\n\n  setWorkflowAttribute(\n    attributeName: string,\n    value: any\n  ): typeof WorkflowInitiator {\n    const [fieldName, definition] =\n      this.findWorkflowAttribute(attributeName) ?? [];\n\n    const attributeType = definition.type;\n    const isArray = attributeType === \"array\";\n\n    if (isArray === Array.isArray(value)) {\n      this.form.data[fieldName] = value;\n      return WorkflowInitiator;\n    } else {\n      throw new Error(\"Invalid type.\");\n    }\n  }\n\n  async formUpdate() {\n    return await this.session.workflow.draftprocessesPut(this.processId, {\n      action: \"formUpdate\",\n      values: this.form.data,\n    });\n  }\n\n  async initiate({\n    comment,\n    password,\n  }: { comment?: string; password?: string } = {}) {\n    await this.formUpdate();\n\n    const initiateValues = {\n      action: \"Initiate\",\n      ...(this.wantComments && { comment }),\n      ...(this.wantAuthentication && { authentication_info: { password } }),\n    } as const;\n\n    const response = await this.session.workflow.draftprocessesPut(\n      this.processId,\n      initiateValues\n    );\n\n    return response;\n  }\n}\n\nexport { WorkflowInitiator };\n","import ServiceAbstract from \"./service-abstract\";\r\nimport { components } from \"../types/cs-rest-types/schema\";\r\nimport { TWorkflowPut, WorkflowInitiator } from \"../utils/workflow-initiator\";\r\n\r\nclass Workflow extends ServiceAbstract {\r\n  workflowInitiator(mapId: number): WorkflowInitiator {\r\n    return new WorkflowInitiator(this.session, mapId);\r\n  }\r\n\r\n  start(mapId: number) {\r\n    return this.draftprocesses(mapId)\r\n      .then((draftProcess) => {\r\n        // this is a bug in the definition?\r\n        // @ts-ignore\r\n        return draftProcess.results.draftprocess_id as number;\r\n      })\r\n      .then((draftprocessId: number) =>\r\n        this.draftprocessesUpdate(draftprocessId)\r\n      );\r\n  }\r\n\r\n  async draftprocesses(workflowId: number) {\r\n    const { data } = await this.session.postForm<\r\n      components[\"schemas\"][\"draftprocesses_DraftProcess_V2EmptyResponse\"]\r\n    >(\"api/v2/draftprocesses\", {\r\n      workflow_id: workflowId,\r\n    });\r\n\r\n    return data;\r\n  }\r\n\r\n  async draftprocessesUpdate(draftprocessId: number) {\r\n    const { data } = await this.session.get<\r\n      components[\"schemas\"][\"forms_WorkflowPropertiesFormInfo\"]\r\n    >(\"api/v1/forms/draftprocesses/update\", {\r\n      params: {\r\n        draftprocess_id: draftprocessId,\r\n      },\r\n    });\r\n\r\n    return data;\r\n  }\r\n\r\n  async draftprocessesPut(draftprocessId: number, body: TWorkflowPut) {\r\n    const { data } = await this.session.putForm<\r\n      components[\"schemas\"][\"draftprocesses_DraftProcess_PutV2EmptyResponse\"]\r\n    >(`api/v2/draftprocesses/${draftprocessId}`, {\r\n      body,\r\n    });\r\n\r\n    return data;\r\n  }\r\n}\r\n\r\nexport default Workflow;\r\n","import ServiceAbstract from \"./service-abstract\";\r\n\r\nclass RHCore extends ServiceAbstract {\r\n  scriptNode<T>(id, body = {}) {\r\n    return this.session.postForm<T>(`api/v1/rhcore/${id}`, body);\r\n  }\r\n}\r\n\r\nexport default RHCore;\r\n","import ServiceAbstract from \"./service-abstract\";\n\nclass Search extends ServiceAbstract {\n  search(where, params = {}) {\n    return this.session.postBody(\"api/v2/search\", {\n      where,\n      ...params,\n    });\n  }\n\n  regions(params = {}) {\n    return this.session.get(\"api/v1/regions\", params);\n  }\n}\n\nexport default Search;\n","import Session from \"../Session\";\nimport ServiceAbstract from \"./service-abstract\";\n\nclass Members extends ServiceAbstract {\n  // public readonly USER: 0\n  // public readonly GROUP: 1\n\n  public readonly USER: number;\n  public readonly GROUP: number;\n\n  constructor(session: Session) {\n    super(session);\n\n    this.USER = 0;\n    this.GROUP = 1;\n  }\n  userQuery(query, options = {}, version = \"v2\") {\n    const params = {\n      limit: 20,\n      where_type: JSON.stringify([this.USER, this.GROUP]),\n      query,\n      ...options,\n    };\n\n    return this.session.get(`api/${version}/members`, { params });\n  }\n\n  member(id, version = \"v2\") {\n    return this.session.get(`api/${version}/members/${id}`);\n  }\n}\n\nexport default Members;\n","import { isNode } from \"../utils/is-node\";\r\nimport ServiceAbstract from \"./service-abstract\";\r\nimport { components } from \"../types/cs-rest-types/schema\";\r\n\r\ntype TNewVersionType = components[\"schemas\"][\"versions_NewVersionInfo\"];\r\n\r\nclass Versions extends ServiceAbstract {\r\n  async addVersion({\r\n    dataid,\r\n    fileHandler,\r\n    options = {},\r\n  }: {\r\n    dataid: number;\r\n    fileHandler: File | string;\r\n    options?: Record<string, any>;\r\n  }) {\r\n    console.assert(dataid != null, \"dataid cannot be null\");\r\n    console.assert(fileHandler != null, \"fileHandler cannot be null\");\r\n\r\n    const url = `api/v1/nodes/${dataid}/versions`;\r\n\r\n    if (isNode() && this.session._isString(fileHandler)) {\r\n      // node.js\r\n      const fs = await import(\"fs\");\r\n      const f = fs.createReadStream(fileHandler);\r\n\r\n      const params = {\r\n        file: f,\r\n        ...options,\r\n      };\r\n\r\n      return this.session.postForm<TNewVersionType>(url, params);\r\n    } else if (this.session._isFile(fileHandler)) {\r\n      // browser\r\n      const params = {\r\n        file: fileHandler,\r\n        ...options,\r\n      };\r\n\r\n      return this.session.postForm<TNewVersionType>(url, params);\r\n    } else {\r\n      throw new Error(\"Invalid file.\");\r\n    }\r\n  }\r\n\r\n  download({ dataid, version, filePath }) {\r\n    console.assert(dataid != null, \"dataid cannot be null\");\r\n    console.assert(version != null, \"version cannot be null\");\r\n    console.assert(filePath != null, \"filePath cannot be null\");\r\n\r\n    if (isNode()) {\r\n      return this.session\r\n        .get<any>(`api/v1/nodes/${dataid}/versions/${version}/content`, {\r\n          responseType: \"stream\",\r\n        })\r\n        .then(async (response) => {\r\n          const fs = await import(\"fs\");\r\n          const writer = fs.createWriteStream(filePath);\r\n\r\n          response.data.pipe(writer);\r\n\r\n          return new Promise((resolve, reject) => {\r\n            writer.on(\"finish\", resolve);\r\n            writer.on(\"error\", reject);\r\n          });\r\n        });\r\n    } else {\r\n      return Promise.reject(\"Not implemented yet\");\r\n    }\r\n  }\r\n\r\n  list(dataid: number) {\r\n    const url = `api/v1/nodes/${dataid}/versions`;\r\n    return this.session.get(url);\r\n  }\r\n  version(dataid, version_number = \"latest\") {\r\n    // latest not supported in v2\r\n    const url = `api/v1/nodes/${dataid}/versions/${version_number}`;\r\n    return this.session.get(url);\r\n  }\r\n\r\n  promote({ dataid, versionNumber, description = null }) {\r\n    console.assert(dataid != null, \"dataid cannot be null\");\r\n    console.assert(versionNumber != null, \"number_to_keep must be an integer\");\r\n\r\n    const url = `api/v2/nodes/${dataid}/versions/${versionNumber}/promote`;\r\n\r\n    return this.session.postBody(url, {\r\n      ...(!!description && {\r\n        description,\r\n      }),\r\n    });\r\n  }\r\n\r\n  deleteVersion({ dataid, versionNumber, apiVersion = \"v1\" }) {\r\n    console.assert(dataid != null, \"dataid cannot be null\");\r\n    console.assert(versionNumber != null, \"number_to_keep must be an integer\");\r\n\r\n    const url = `api/${apiVersion}/nodes/${dataid}/versions/${versionNumber}`;\r\n\r\n    // careful with deleteForm or deleteBody\r\n    return this.session.delete(url);\r\n  }\r\n\r\n  purge({ dataid, number_to_keep = 1 }) {\r\n    console.assert(dataid != null, \"dataid cannot be null\");\r\n    console.assert(!isNaN(number_to_keep), \"number_to_keep must be an integer\");\r\n\r\n    // delete parameters not supported\r\n    // https://stackoverflow.com/questions/51069552/axios-delete-request-with-body-and-headers\r\n    // number_to_keep is ignored\r\n\r\n    const url = `api/v2/nodes/${dataid}/versions`;\r\n\r\n    return this.session.deleteForm(url, {\r\n      number_to_keep,\r\n    });\r\n  }\r\n}\r\n\r\nexport default Versions;\r\n","import ServiceAbstract from \"./service-abstract\";\n\nclass WebReports extends ServiceAbstract {\n  run(dataid, params = {}) {\n    const url = `api/v1/nodes/${dataid}/output`;\n    return this.session.get(url, { params });\n  }\n}\n\nexport default WebReports;\n","import axiosFactory, { CSRestOptions } from \"./utils/axios-factory\";\r\nimport Auth from \"./handlers/auth\";\r\nimport Nodes from \"./handlers/nodes\";\r\nimport Workflow from \"./handlers/workflow\";\r\nimport RHCore from \"./handlers/rhcore\";\r\nimport Search from \"./handlers/search\";\r\nimport Members from \"./handlers/members\";\r\nimport Versions from \"./handlers/versions\";\r\nimport WebReports from \"./handlers/webreports\";\r\nimport RPCClient from \"./rpc-client/index\";\r\nimport { AxiosInstance, AxiosRequestConfig, AxiosResponse } from \"axios\";\r\n\r\nexport default class Session {\r\n  protected readonly axios: AxiosInstance;\r\n  protected _nodes: Nodes;\r\n  protected _auth: Auth;\r\n  protected _workflow: any;\r\n  protected _rhcore: RHCore;\r\n  protected _members: Members;\r\n  protected _search: Search;\r\n  protected _webreports: WebReports;\r\n  protected _versions: Versions;\r\n\r\n  public readonly baseUrl: string;\r\n\r\n  constructor(options: CSRestOptions) {\r\n    this.baseUrl = options.baseUrl;\r\n    this.axios = axiosFactory(options);\r\n  }\r\n\r\n  get nodes(): Nodes {\r\n    if (this._nodes === undefined) {\r\n      this._nodes = new Nodes(this);\r\n    }\r\n\r\n    return this._nodes;\r\n  }\r\n\r\n  get auth(): Auth {\r\n    if (this._auth === undefined) {\r\n      this._auth = new Auth(this);\r\n    }\r\n\r\n    return this._auth;\r\n  }\r\n\r\n  get workflow(): Workflow {\r\n    if (this._workflow === undefined) {\r\n      this._workflow = new Workflow(this);\r\n    }\r\n\r\n    return this._workflow;\r\n  }\r\n\r\n  get rhcore(): RHCore {\r\n    if (this._rhcore === undefined) {\r\n      this._rhcore = new RHCore(this);\r\n    }\r\n\r\n    return this._rhcore;\r\n  }\r\n\r\n  get members(): Members {\r\n    if (this._members === undefined) {\r\n      this._members = new Members(this);\r\n    }\r\n\r\n    return this._members;\r\n  }\r\n\r\n  get search(): Search {\r\n    if (this._search === undefined) {\r\n      this._search = new Search(this);\r\n    }\r\n\r\n    return this._search;\r\n  }\r\n\r\n  get webreports(): WebReports {\r\n    if (this._webreports === undefined) {\r\n      this._webreports = new WebReports(this);\r\n    }\r\n\r\n    return this._webreports;\r\n  }\r\n\r\n  get versions(): Versions {\r\n    if (this._versions === undefined) {\r\n      this._versions = new Versions(this);\r\n    }\r\n\r\n    return this._versions;\r\n  }\r\n\r\n  rpcClient(relativePath = \"/api/v1/rh/rpc/rhnode/\") {\r\n    return new RPCClient(this, relativePath);\r\n  }\r\n\r\n  _isObject(value: unknown): value is Object {\r\n    return value && typeof value === \"object\" && value.constructor === Object;\r\n  }\r\n\r\n  _isString(value: unknown): value is string {\r\n    return typeof value === \"string\" || value instanceof String;\r\n  }\r\n\r\n  _isBoolean(value: unknown): value is boolean {\r\n    return typeof value === \"boolean\";\r\n  }\r\n\r\n  _isFile(value: any): value is File {\r\n    return typeof value?.name === \"string\";\r\n  }\r\n\r\n  putForm<T>(url: string, params: Record<string, any>) {\r\n    return this.put<T>(url, this.objectToForm(params), {\r\n      headers: {\r\n        \"Content-Type\": \"multipart/form-data\",\r\n      },\r\n    });\r\n  }\r\n\r\n  postForm<T>(url: string, params: Record<string, any>) {\r\n    return this.post<T>(url, this.objectToForm(params), {\r\n      headers: {\r\n        \"Content-Type\": \"multipart/form-data\",\r\n      },\r\n      maxBodyLength: Infinity,\r\n    });\r\n  }\r\n\r\n  patchForm<T>(url: string, params: Record<string, any>) {\r\n    return this.patch<T>(url, this.objectToForm(params), {\r\n      headers: {\r\n        \"Content-Type\": \"multipart/form-data\",\r\n      },\r\n    });\r\n  }\r\n\r\n  deleteForm(url: string, params: Record<string, any>) {\r\n    // FormData does not working on Delete!!\r\n    // See here: https://stackoverflow.com/questions/51069552/axios-delete-request-with-body-and-headers\r\n    // const formData = this.objectToForm(params)\r\n\r\n    return this.delete(url);\r\n  }\r\n\r\n  objectToForm(obj: Record<string, any>) {\r\n    return Object.entries(obj).reduce(\r\n      (a: Record<string, any>, [key, value]) => {\r\n        return {\r\n          ...a,\r\n          [key]:\r\n            Array.isArray(value) || this._isObject(value)\r\n              ? JSON.stringify(value)\r\n              : value,\r\n        };\r\n      },\r\n      {}\r\n    );\r\n  }\r\n\r\n  putBody(url: string, body) {\r\n    return this.putForm(url, {\r\n      body,\r\n    });\r\n  }\r\n\r\n  postBody<T>(url: string, body: Record<string, any>) {\r\n    return this.postForm<T>(url, {\r\n      body,\r\n    });\r\n  }\r\n\r\n  patchBody(url: string, body: Record<string, any>) {\r\n    return this.patchForm(url, {\r\n      body,\r\n    });\r\n  }\r\n\r\n  deleteBody(url: string, body: Record<string, any>) {\r\n    return this.deleteForm(url, {\r\n      body,\r\n    });\r\n  }\r\n\r\n  get<T = any>(url: string, config?: AxiosRequestConfig) {\r\n    return this.axios.get<T>(url, config);\r\n  }\r\n\r\n  post<T = any>(url: string, data?: any, config?: AxiosRequestConfig) {\r\n    return this.axios.post<T>(url, data, config);\r\n  }\r\n\r\n  put<T = any>(url: string, data?: any, config?: AxiosRequestConfig) {\r\n    return this.axios.put<T>(url, data, config);\r\n  }\r\n\r\n  patch<T = any>(url: string, data?: any, config?: AxiosRequestConfig) {\r\n    return this.axios.patch<T>(url, data, config);\r\n  }\r\n\r\n  options<T = any>(url: string, config?: AxiosRequestConfig) {\r\n    return this.axios.options<T>(url, config);\r\n  }\r\n\r\n  delete<T = any>(url: string, config?: AxiosRequestConfig) {\r\n    return this.axios.delete<T>(url, config);\r\n  }\r\n\r\n  async $get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T> {\r\n    const response = await this.get<T>(url, config);\r\n    return response.data;\r\n  }\r\n}\r\n","import axios, { AxiosInstance } from \"axios\";\nimport { components } from \"../types/cs-rest-types/schema\";\n\nexport type CSRestOptions = {\n  username?: string;\n  password?: string;\n  otcsticket?: string;\n  baseUrl: string;\n};\n\nconst getInstance = (options: CSRestOptions) => {\n  const instance = axios.create({\n    baseURL: options.baseUrl,\n    paramsSerializer: {\n      // ensures ?field=A&field=B instead of ?field[]=A&field[]=B\n      indexes: null,\n    },\n  });\n\n  instance.interceptors.response.use(\n    (response) => {\n      const otcsticket = response?.headers.otcsticket;\n\n      if (otcsticket) {\n        instance.defaults.headers.common.OTCSTicket = otcsticket;\n      }\n      return response;\n    },\n    (error) => {\n      return Promise.reject(error);\n    }\n  );\n\n  return instance;\n};\n\nconst axiosFactory = (options: CSRestOptions): AxiosInstance => {\n  const instance = getInstance(options);\n\n  const username = options.username;\n  const password = options.password;\n  const otcsticket = options.otcsticket;\n\n  if (otcsticket) {\n    instance.defaults.headers.common.OTCSTicket = otcsticket;\n  } else if (username && password) {\n    instance.interceptors.request.use(async (config) => {\n      if (config.headers.common?.OTCSTicket) {\n        return config;\n      } else {\n        const response = await axios.post<\n          components[\"schemas\"][\"auth_AuthenticationInfo\"]\n        >(\n          `${options.baseUrl}/api/v1/auth/`,\n          {\n            username,\n            password,\n          },\n          {\n            headers: {\n              \"Content-Type\": \"multipart/form-data\",\n            },\n          }\n        );\n\n        config.headers.OTCSTicket = response.data.ticket;\n\n        return config;\n      }\n    });\n  } else {\n    throw Error(\"You must provide an otcsticket or username and password.\");\n  }\n\n  return instance;\n};\n\nexport default axiosFactory;\n","import RPCClient from \"./rpc-client\";\r\nimport { RPCError } from \"./rpc-client/error-codes\";\r\nimport Session from \"./Session\";\r\n\r\n// https://medium.com/ovrsea/checking-the-type-of-an-object-in-typescript-the-type-guards-24d98d9119b0\r\nconst isRPCError = (e: RPCError | any): e is RPCError => {\r\n  return (\r\n    (e as RPCError).code !== undefined && (e as RPCError).data !== undefined\r\n  );\r\n};\r\n\r\nexport { isRPCError, RPCError, Session, RPCClient };\r\n"],"names":["SubTypesEnum","RPCError","_Error","message","data","code","_this","x","messageObj","call","this","_assertThisInitialized","_inheritsLoose","_wrapNativeSuper","Error","sequence","index","next","RPCClient","session","relativePath","_batchQueue","resetQueue","_proto","prototype","requestObject","method","params","id","jsonrpc","handleResponse","Object","hasOwnProperty","result","err","error","request","Promise","undefined","resolve","postBody","rpc","then","response","e","reject","queue","push","batch","throwOnError","_this2","_response$data$data","map","item","rhnode","dataid","args","rhnodeQueue","ServiceAbstract","_createClass","_session","key","get","Auth","_ServiceAbstract","apply","arguments","auth","isNode","window","Nodes","addablenodetypes","addDocument","_ref","parent_id","fileHandler","_ref$name","name","_ref$description","description","_ref$options","options","url","_isString","all","_interopNamespace","require","_ref2","path","f","createReadStream","body","_extends","type","Document","basename","file","postForm","_isFile","addDocumentMajor","_ref3","_ref3$name","_ref3$description","_ref3$options","advanced_versioning","versions","promote","versionNumber","deleteVersion","addItem","node","_ref4","_ref4$apiVersion","apiVersion","_ref4$params","ancestors","volumeInfo","objType","volumes","addFolder","Folder","addGeneration","original_id","version_number","Generation","nodes","children","download","_ref5","_ref5$apiVersion","filePath","responseType","fs","writer","createWriteStream","pipe","on","audit","_ref6","_ref6$apiVersion","_ref6$params","WorkflowInitiator","mapId","workflowPropertiesInfo","start","workflow","_this$session$workflo","findWorkflowAttribute","attributeName","entries","form","schema","properties","find","title","setWorkflowAttribute","value","_this$findWorkflowAtt","fieldName","definition","Array","isArray","formUpdate","draftprocessesPut","processId","action","values","initiate","_temp","comment","password","_this3","initiateValues","wantComments","wantAuthentication","authentication_info","forms","process_id","attachmentPkg","data_packages","pkg","sub_type","attachment_folder_id","comments_on","authentication","Workflow","workflowInitiator","draftprocesses","draftProcess","results","draftprocess_id","draftprocessId","draftprocessesUpdate","workflowId","workflow_id","putForm","RHCore","scriptNode","Search","search","where","regions","Members","USER","GROUP","userQuery","query","version","limit","where_type","JSON","stringify","member","Versions","addVersion","console","assert","list","purge","_ref5$number_to_keep","number_to_keep","isNaN","deleteForm","WebReports","run","Session","axios","_nodes","_auth","_workflow","_rhcore","_members","_search","_webreports","_versions","baseUrl","instance","create","baseURL","paramsSerializer","indexes","interceptors","use","otcsticket","headers","defaults","common","OTCSTicket","getInstance","username","config","_config$headers$commo","post","ticket","axiosFactory","rpcClient","_isObject","constructor","String","_isBoolean","put","objectToForm","maxBodyLength","Infinity","patchForm","patch","obj","reduce","a","_extends2","putBody","patchBody","deleteBody","$get"],"mappings":"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"}