UNPKG

43.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.es.js","sources":["../src/handlers/form-data-factory.js","../src/axios-factory.js","../src/handlers/auth.js","../src/handlers/nodes.js","../src/handlers/workflow.js","../src/handlers/rhcore.js","../src/handlers/search.js","../src/handlers/members.js","../src/handlers/versions.js","../src/handlers/webreports.js","../src/rpc-client/error-codes.js","../src/rpc-client/index.js","../src/Session.js","../src/index.js"],"sourcesContent":["module.exports = {\n createFormData () {\n if (process.node) {\n const Klass = require('form-data')\n return new Klass()\n } else {\n return new FormData()\n }\n }\n}\n","const axios = require('axios')\nconst get = require('lodash.get')\nconst FormDataFactory = require('./handlers/form-data-factory')\n\nfunction getInstance (options) {\n const instance = axios.create(options)\n\n instance.interceptors.response.use(response => {\n const otcsticket = get(response, 'headers.otcsticket')\n\n if (otcsticket) {\n instance.defaults.headers.common.OTCSTicket = otcsticket\n }\n return response\n }, error => {\n return Promise.reject(error)\n })\n\n return instance\n}\n\nfunction axiosFactory (options) {\n const instance = getInstance(options)\n\n const username = get(options, 'username')\n const password = get(options, 'password')\n const otcsticket = get(options, 'otcsticket')\n\n if (otcsticket) {\n instance.defaults.headers.common.OTCSTicket = otcsticket\n } else if (username && password) {\n instance.interceptors.request.use(async request => {\n if (request.headers.common.OTCSTicket) {\n return request\n } else {\n const formData = FormDataFactory.createFormData()\n\n formData.append('username', username)\n formData.append('password', password)\n\n const response = process.node\n ? await axios.post(`${options.baseURL}/api/v1/auth/`, formData.getBuffer(), { headers: formData.getHeaders() })\n : await axios.post(`${options.baseURL}/api/v1/auth/`, formData)\n\n request.headers.common.OTCSTicket = get(response, 'data.ticket')\n\n return request\n }\n })\n } else {\n throw Error('You must provide an otcsticket or username and password.')\n }\n\n return instance\n}\n\nmodule.exports = axiosFactory\n","// const FormDataFactory = require('./form-data-factory')\n\nmodule.exports = session => ({\n auth () {\n return session.get('/api/v1/auth/')\n }\n})\n","// const FormDataFactory = require('./form-data-factory')\r\n// const assert = require('assert')\r\nconst SubTypes = require('./subtypes.json')\r\n\r\nmodule.exports = session => ({\r\n\r\n addablenodetypes (dataid) {\r\n return session.get(`api/v1/nodes/${dataid}/addablenodetypes`)\r\n },\r\n\r\n async addDocument ({\r\n parent_id,\r\n fileHandler,\r\n apiVersion = 'v1', // v1 or v2\r\n name = null,\r\n options = {}\r\n }) {\r\n console.assert(parent_id != null, 'parent_id cannot be null')\r\n console.assert(fileHandler != null, 'fileHandler cannot be null')\r\n console.assert(['v1', 'v2'].includes(apiVersion), \"apiVersion must be in ['v1','v2']\")\r\n\r\n const url = `api/${apiVersion}/nodes`\r\n\r\n if (process.node) {\r\n // node.js\r\n const fsp = require('fs').promises\r\n const path = require('path')\r\n\r\n const f = await fsp.readFile(fileHandler)\r\n const csName = name || path.basename(fileHandler)\r\n\r\n const params = {\r\n ...options,\r\n type: SubTypes.Document,\r\n name: csName,\r\n parent_id,\r\n file: {\r\n file: f,\r\n name: csName\r\n }\r\n }\r\n\r\n return session.postForm(url, params)\r\n } else {\r\n // browser\r\n const csName = name || fileHandler.name\r\n\r\n const params = {\r\n ...options,\r\n type: SubTypes.Document,\r\n name: csName,\r\n parent_id,\r\n file: {\r\n file: fileHandler,\r\n name: csName\r\n }\r\n }\r\n\r\n return session.postForm(url, params)\r\n }\r\n },\r\n\r\n async addDocumentMajor ({\r\n parent_id,\r\n fileHandler,\r\n name = null,\r\n description = null,\r\n options = {}\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 session.versions.promote({\r\n dataid,\r\n versionNumber: 1,\r\n description\r\n })\r\n\r\n await 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 session.postBody('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 session.get(`api/${apiVersion}/nodes/${dataid}`, {\r\n params\r\n })\r\n },\r\n\r\n ancestors (dataid, params = {}) {\r\n return session.get(`api/v1/nodes/${dataid}/ancestors`, {\r\n params\r\n })\r\n },\r\n\r\n volumeInfo (objType) {\r\n return session.get(`api/v1/volumes/${objType}`)\r\n },\r\n\r\n volumes () {\r\n return session.get('api/v2/volumes')\r\n },\r\n\r\n addFolder (parent_id, name, params = {}) {\r\n return this.addItem(SubTypes.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(SubTypes.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 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 session.delete(`api/v1/nodes/${dataid}`)\r\n },\r\n\r\n download ({ dataid, apiVersion = 'v1', filePath }) {\r\n // session.nodes.download(1267501, 'v2', '/Users/chris/Downloads/test.pdf')\r\n if (process.node) {\r\n return session.get(`api/${apiVersion}/nodes/${dataid}/content`, {\r\n responseType: 'stream'\r\n })\r\n .then(response => {\r\n const fs = require('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 ({\r\n dataid,\r\n apiVersion = 'v2',\r\n params = {}\r\n }) {\r\n return session.get(`api/${apiVersion}/nodes/${dataid}/audit`, { params })\r\n }\r\n\r\n})\r\n","// const get = require('lodash.get')\r\n\r\nmodule.exports = session => ({\r\n\r\n start (map_id) {\r\n return this.draftprocesses(map_id)\r\n .then(response => get(response, 'data.results.draftprocess_id'))\r\n .then(draftprocess_id => this.draftprocesses_update(draftprocess_id))\r\n },\r\n\r\n draftprocesses (workflow_id) {\r\n return session.postForm('api/v2/draftprocesses', {\r\n workflow_id\r\n })\r\n },\r\n\r\n draftprocesses_update (draftprocess_id) {\r\n return session.get('api/v1/forms/draftprocesses/update', {\r\n params: {\r\n draftprocess_id\r\n }\r\n })\r\n },\r\n\r\n draftprocesses_put (draftprocess_id, body) {\r\n return session.putForm(`api/v2/draftprocesses/${draftprocess_id}`, {\r\n body\r\n })\r\n }\r\n\r\n // draftprocesses_formUpdate(draftprocess_id, values) {\r\n // \tconst body = {\r\n // \t\taction: \"formUpdate\",\r\n // \t\tvalues\r\n // \t}\r\n\r\n // \treturn this.draftprocesses_put(draftprocess_id, body)\r\n // }\r\n\r\n})\r\n","module.exports = session => ({\r\n scriptNode (id, params = {}) {\r\n return session.get(`api/v1/rhcore/${id}`, {\r\n params\r\n })\r\n }\r\n})\r\n","module.exports = session => ({\n\n // https://knowledge.opentext.com/knowledge/cs.dll/Open/67789539\n\n search (where, params = {}) {\n return session.postBody('api/v2/search', {\n where,\n ...params\n })\n },\n\n regions (params = {}) {\n return session.get('api/v1/regions', params)\n }\n\n})\n","module.exports = session => ({\n\n USER: 0,\n 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 session.get(`api/${version}/members`, { params })\n },\n\n member (id, version = 'v2') {\n return session.get(`api/${version}/members/${id}`)\n }\n\n})\n","// const FormDataFactory = require('./form-data-factory')\r\n// const console.assert = require('console.assert')\r\n\r\nmodule.exports = session => ({\r\n\r\n async addVersion ({\r\n dataid,\r\n fileHandler,\r\n apiVersion = 'v1',\r\n fileName = null,\r\n options = {}\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/${apiVersion}/nodes/${dataid}/versions`\r\n\r\n if (process.node) {\r\n // node.js\r\n const fsp = require('fs').promises\r\n const path = require('path')\r\n\r\n const f = await fsp.readFile(fileHandler)\r\n const name = fileName || path.basename(fileHandler)\r\n\r\n const params = {\r\n file: {\r\n file: f,\r\n name\r\n },\r\n ...options\r\n }\r\n\r\n // console.log(params)\r\n\r\n return session.postForm(url, params)\r\n } else {\r\n // browser\r\n const name = fileName || fileHandler.name\r\n\r\n const params = {\r\n file: {\r\n file: fileHandler,\r\n name\r\n },\r\n ...options\r\n }\r\n\r\n return session.postForm(url, params)\r\n\r\n // formData.append('file', fileHandler, name)\r\n // return session.post(url, formData)\r\n }\r\n },\r\n\r\n async download ({\r\n dataid,\r\n version,\r\n filePath\r\n }) {\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 (process.node) {\r\n return session.get(`api/v1/nodes/${dataid}/versions/${version}/content`, {\r\n responseType: 'stream'\r\n })\r\n .then(response => {\r\n const fs = require('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 async list (dataid) {\r\n const url = `api/v1/nodes/${dataid}/versions`\r\n return session.get(url)\r\n },\r\n\r\n async 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 session.get(url)\r\n },\r\n\r\n async promote ({\r\n dataid,\r\n versionNumber,\r\n description = null\r\n }) {\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 session.postBody(url, {\r\n ...(!!description && {\r\n description\r\n })\r\n })\r\n },\r\n\r\n async deleteVersion ({\r\n dataid,\r\n versionNumber,\r\n apiVersion = 'v1'\r\n }) {\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 session.delete(url)\r\n },\r\n\r\n async purge ({\r\n dataid,\r\n number_to_keep = 1\r\n }) {\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 session.deleteForm(url, {\r\n number_to_keep\r\n })\r\n }\r\n\r\n})\r\n","module.exports = session => ({\n\n run (dataid, params = {}) {\n const url = `api/v1/nodes/${dataid}/output`\n return session.get(url, { params })\n }\n\n})\n","const isObject = require('is-object')\n\nconst 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}\n\n// -32000 to -32099 is reserved!\n\nclass CustomError extends Error {\n constructor (message = ErrorCodes.INTERNALERROR.message, data = null, code = ErrorCodes.INTERNALERROR.code) {\n if (isObject(message)) {\n super(message.message)\n this.code = message.code\n this.data = message.data\n } else {\n super(message)\n this.code = code\n this.data = data\n }\n }\n}\n\nmodule.exports = {\n CustomError,\n ErrorCodes\n}\n","const {\n CustomError\n} = require('./error-codes')\n\nconst get = require('lodash.get')\n\n// to be tested...\nconst sequence = {\n index: 0,\n get next () {\n this.index = this.index + 1\n return this.index\n }\n}\n\nmodule.exports = class RPCClient {\n constructor (session, baseURL) {\n this.session = session\n this.baseURL = baseURL\n this.resetQueue()\n }\n\n requestObject (method, params, id) {\n return {\n jsonrpc: '2.0',\n method,\n id,\n params\n }\n }\n\n 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 CustomError(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, params, id = sequence.next) {\n const response = await this.session.postBody(this.baseURL, {\n rpc: this.requestObject(method, params, id)\n })\n return this.handleResponse(response.data)\n }\n\n resetQueue () {\n this._batchQueue = []\n }\n\n queue (method, params, id = sequence.next) {\n this._batchQueue.push(this.requestObject(method, params, id))\n return this\n }\n\n async batch (throwOnError = false) {\n const queue = this._batchQueue\n this.resetQueue()\n const response = await this.session.postBody(this.baseURL, {\n rpc: queue\n })\n\n return get(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","const axiosFactory = require('./axios-factory')\r\nconst auth = require('./handlers/auth.js')\r\nconst nodes = require('./handlers/nodes')\r\nconst workflow = require('./handlers/workflow')\r\nconst rhcore = require('./handlers/rhcore')\r\nconst search = require('./handlers/search')\r\nconst members = require('./handlers/members')\r\nconst versions = require('./handlers/versions')\r\nconst webreports = require('./handlers/webreports')\r\nconst FormDataFactory = require('./handlers/form-data-factory')\r\nconst isnil = require('lodash.isnil')\r\nconst RPCClient = require('./rpc-client')\r\nconst dataTypesEnum = require('./data-types-enum.json')\r\n\r\n// let getCache = {}\r\n\r\nmodule.exports = class Session {\r\n constructor (options) {\r\n this.axios = axiosFactory(options)\r\n }\r\n\r\n get nodes () {\r\n // this creates a circular reference.. bad?\r\n if (this._nodes == null) {\r\n this._nodes = nodes(this)\r\n }\r\n\r\n return this._nodes\r\n }\r\n\r\n get auth () {\r\n if (this._auth == null) {\r\n this._auth = auth(this)\r\n }\r\n\r\n return this._auth\r\n }\r\n\r\n get workflow () {\r\n // this creates a circular reference.. bad?\r\n if (this._workflow == null) {\r\n this._workflow = workflow(this)\r\n }\r\n\r\n return this._workflow\r\n }\r\n\r\n get rhcore () {\r\n // this creates a circular reference.. bad?\r\n if (this._rhcore == null) {\r\n this._rhcore = rhcore(this)\r\n }\r\n\r\n return this._rhcore\r\n }\r\n\r\n get members () {\r\n // this creates a circular reference.. bad?\r\n if (this._members == null) {\r\n this._members = members(this)\r\n }\r\n\r\n return this._members\r\n }\r\n\r\n get search () {\r\n // this creates a circular reference.. bad?\r\n if (this._search == null) {\r\n this._search = search(this)\r\n }\r\n\r\n return this._search\r\n }\r\n\r\n get webreports () {\r\n // this creates a circular reference.. bad?\r\n if (this._webreports == null) {\r\n this._webreports = webreports(this)\r\n }\r\n\r\n return this._webreports\r\n }\r\n\r\n get versions () {\r\n // this creates a circular reference.. bad?\r\n if (this._versions == null) {\r\n this._versions = versions(this)\r\n }\r\n\r\n return this._versions\r\n }\r\n\r\n get dataTypesEnum () {\r\n return dataTypesEnum\r\n }\r\n\r\n rpcClient (baseURL = '/api/v1/rh/rpc/rhnode/') {\r\n return new RPCClient(this, baseURL)\r\n }\r\n\r\n _isObject (value) {\r\n return value && typeof value === 'object' && value.constructor === Object\r\n }\r\n\r\n _isString (value) {\r\n return (typeof value === 'string' || value instanceof String)\r\n }\r\n\r\n _isBoolean (value) {\r\n return (typeof value === 'boolean')\r\n }\r\n\r\n objectToForm (obj) {\r\n const formData = FormDataFactory.createFormData()\r\n\r\n for (const [key, value] of Object.entries(obj)) {\r\n if (value && value.name && value.file) {\r\n formData.append(key, value.file, value.name)\r\n } else if (Array.isArray(value) || this._isObject(value) || this._isBoolean(value)) {\r\n formData.append(key, JSON.stringify(value))\r\n } else if (!isnil(value)) {\r\n // should empty strings be sent?\r\n formData.append(key, value)\r\n }\r\n }\r\n\r\n return formData\r\n }\r\n\r\n get (...args) {\r\n return this.axios.get(...args)\r\n }\r\n\r\n /*\r\n // async getCached(...args) {\r\n // const key = sha1(JSON.stringify(args))\r\n\r\n // try {\r\n // await semaphore.acquire(key)\r\n\r\n // if (!getCache[key]) {\r\n // getCache[key] = this.get(...args)\r\n // }\r\n // } finally {\r\n // semaphore.release(key)\r\n // }\r\n\r\n // return getCache[key]\r\n // }\r\n*/\r\n putForm (url, params) {\r\n const formData = this.objectToForm(params)\r\n return process.node\r\n ? this.put(url, formData.getBuffer(), {\r\n headers: formData.getHeaders()\r\n })\r\n : this.put(url, formData)\r\n }\r\n\r\n postForm (url, params) {\r\n const formData = this.objectToForm(params)\r\n return process.node\r\n ? this.post(url, formData.getBuffer(), {\r\n headers: formData.getHeaders(),\r\n maxBodyLength: Infinity\r\n })\r\n : this.post(url, formData, {\r\n maxBodyLength: Infinity\r\n })\r\n }\r\n\r\n patchForm (url, params) {\r\n const formData = this.objectToForm(params)\r\n return process.node\r\n ? this.patch(url, formData.getBuffer(), {\r\n headers: formData.getHeaders()\r\n })\r\n : this.patch(url, formData)\r\n }\r\n\r\n deleteForm (url, params) {\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 return process.node\r\n ? this.delete(url, formData.getBuffer(), {\r\n headers: formData.getHeaders()\r\n })\r\n : this.delete(url, formData)\r\n }\r\n\r\n putBody (url, body) {\r\n return this.putForm(url, {\r\n body\r\n })\r\n }\r\n\r\n postBody (url, body) {\r\n return this.postForm(url, {\r\n body\r\n })\r\n }\r\n\r\n patchBody (url, body) {\r\n return this.patchForm(url, {\r\n body\r\n })\r\n }\r\n\r\n deleteBody (url, body) {\r\n return this.deleteForm(url, {\r\n body\r\n })\r\n }\r\n\r\n post (...args) {\r\n return this.axios.post(...args)\r\n }\r\n\r\n put (...args) {\r\n return this.axios.put(...args)\r\n }\r\n\r\n delete (...args) {\r\n return this.axios.delete(...args)\r\n\r\n // console.log(args)\r\n // console.log(url)\r\n\r\n // return this.axios.delete(URL, {\r\n // headers: {\r\n // Authorization: authorizationToken\r\n // },\r\n // data: {\r\n // source: source\r\n // }\r\n // });\r\n }\r\n\r\n options (...args) {\r\n return this.axios.options(...args)\r\n }\r\n\r\n patch (...args) {\r\n return this.axios.patch(...args)\r\n }\r\n}\r\n","const Session = require('./Session')\r\n\r\nmodule.exports.Session = Session\r\n"],"names":["require$$0","get","FormDataFactory","require$$2","axiosFactory","auth","nodes","workflow","rhcore","search","members","versions","webreports","CustomError","require$$1","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$11","Session_1"],"mappings":"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"}
\No newline at end of file