visualvault-api 1.1.0 → 2.0.0-beta.0

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.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +23 -138
  3. package/dist/VVRestApi.cjs +2574 -0
  4. package/dist/VVRestApi.cjs.map +1 -0
  5. package/dist/VVRestApi.d.cts +375 -0
  6. package/dist/VVRestApi.d.ts +375 -0
  7. package/dist/VVRestApi.js +2544 -0
  8. package/dist/VVRestApi.js.map +1 -0
  9. package/{lib/VVRestApi/VVRestApiNodeJs → dist}/config.yml +106 -100
  10. package/dist/constants.cjs +45 -0
  11. package/dist/constants.cjs.map +1 -0
  12. package/dist/constants.d.cts +48 -0
  13. package/dist/constants.d.ts +48 -0
  14. package/dist/constants.js +20 -0
  15. package/dist/constants.js.map +1 -0
  16. package/dist/index.cjs +2594 -0
  17. package/dist/index.cjs.map +1 -0
  18. package/dist/index.d.cts +2 -0
  19. package/dist/index.d.ts +2 -0
  20. package/dist/index.js +2563 -0
  21. package/dist/index.js.map +1 -0
  22. package/package.json +47 -71
  23. package/lib/VVRestApi/VVRestApiNodeJs/DocApi.js +0 -66
  24. package/lib/VVRestApi/VVRestApiNodeJs/FormsApi.js +0 -51
  25. package/lib/VVRestApi/VVRestApiNodeJs/NotificationsApi.js +0 -39
  26. package/lib/VVRestApi/VVRestApiNodeJs/StudioApi.js +0 -136
  27. package/lib/VVRestApi/VVRestApiNodeJs/VVRestApi.js +0 -1889
  28. package/lib/VVRestApi/VVRestApiNodeJs/app.js +0 -128
  29. package/lib/VVRestApi/VVRestApiNodeJs/common.js +0 -1598
  30. package/lib/VVRestApi/VVRestApiNodeJs/dts/express.d.ts +0 -125
  31. package/lib/VVRestApi/VVRestApiNodeJs/dts/node.d.ts +0 -1090
  32. package/lib/VVRestApi/VVRestApiNodeJs/log.js +0 -20
  33. package/lib/VVRestApi/VVRestApiNodeJs/public/favicon.ico +0 -0
  34. package/lib/VVRestApi/VVRestApiNodeJs/routes/scheduledscripts.js +0 -203
  35. package/lib/VVRestApi/VVRestApiNodeJs/routes/scripts.js +0 -215
  36. package/lib/VVRestApi/VVRestApiNodeJs/routes/testScheduledScripts.js +0 -131
  37. package/lib/VVRestApi/VVRestApiNodeJs/samples/SampleScheduledScript.js +0 -90
  38. package/lib/VVRestApi/VVRestApiNodeJs/samples/SendEmailScript.js +0 -51
  39. package/lib/VVRestApi/VVRestApiNodeJs/samples/fileTest.js +0 -60
  40. package/lib/VVRestApi/VVRestApiNodeJs/samples/sampleFormValidationScript.js +0 -126
  41. package/lib/VVRestApi/VVRestApiNodeJs/views/error.ejs +0 -8
  42. package/lib/VVRestApi/VVRestApiNodeJs/views/index.ejs +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/tsup/assets/cjs_shims.js","../lib/http/sessionToken.js","../lib/http/authorize.js","../lib/VVRestApi.js","../lib/DocApi.js","../lib/common.js","../lib/http/httpHelper.js","../lib/docApi/documentInstanceManager.js","../lib/FormsApi.js","../lib/formsApi/formInstanceManager.js","../lib/ObjectsApi.js","../lib/objectsApi/modelsManager.js","../lib/objectsApi/objectsManager.js","../lib/StudioApi.js","../lib/studioApi/workflowManager.js","../lib/NotificationsApi.js","../lib/notificationsApi/userNotificationsManager.js","../lib/vvRestApi/constants.js","../lib/vvRestApi/configurationManager.js","../lib/vvRestApi/emailManager.js","../lib/vvRestApi/formsManager.js","../lib/vvRestApi/groupsManager.js","../lib/vvRestApi/libraryManager.js","../lib/vvRestApi/sitesManager.js","../lib/vvRestApi/usersManager.js","../lib/vvRestApi/currentUserManager.js","../lib/vvRestApi/scheduledProcessManager.js","../lib/vvRestApi/customQueryManager.js","../lib/vvRestApi/customerManager.js","../lib/vvRestApi/customerDatabaseManager.js","../lib/vvRestApi/filesManager.js","../lib/vvRestApi/scriptsManager.js","../lib/vvRestApi/documentsManager.js","../lib/vvRestApi/projectsManager.js","../lib/vvRestApi/indexFieldsManager.js","../lib/vvRestApi/outsideProcessesManager.js","../lib/vvRestApi/securityMembersManager.js","../lib/vvRestApi/layoutsManager.js","../lib/vvRestApi/reportsManager.js"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","export class SessionToken {\n constructor() {\n this.isAuthenticated = false;\n this.apiUrl = null;\n this.baseUrl = null;\n this.authenticationUrl = null;\n this.customerAlias = null;\n this.databaseAlias = null;\n this.expirationDate = null;\n this.accessToken = null;\n this.tokenType = null;\n this.refreshToken = null;\n this.expiresIn = 0;\n this.clientId = null;\n this.clientSecret = null;\n this.userId = null;\n this.password = null;\n this.audience = null;\n }\n\n createCopy() {\n const newSession = new SessionToken();\n newSession.isAuthenticated = this.isAuthenticated;\n newSession.apiUrl = this.apiUrl;\n newSession.baseUrl = this.baseUrl;\n newSession.authenticationUrl = this.authenticationUrl;\n newSession.customerAlias = this.customerAlias;\n newSession.databaseAlias = this.databaseAlias;\n newSession.expirationDate = this.expirationDate;\n newSession.accessToken = this.accessToken;\n newSession.tokenType = this.tokenType;\n newSession.refreshToken = this.refreshToken;\n newSession.expiresIn = this.expiresIn;\n newSession.clientId = this.clientId;\n newSession.clientSecret = this.clientSecret;\n newSession.userId = this.userId;\n newSession.password = this.password;\n newSession.audience = this.audience;\n return newSession;\n }\n\n convertToJwt(jwt) {\n this.tokenType = 'jwt';\n this.accessToken = jwt[\"token\"];\n this.expirationDate = new Date(jwt[\"expires\"]);\n this.expiresIn = 0;\n }\n}\n\nexport default SessionToken;\n","import { SessionToken } from './sessionToken.js';\nimport createDebug from 'debug';\nimport yaml from 'js-yaml';\nimport fs from 'fs';\n\nconst debug = createDebug('visualvault:auth');\n\nexport class Authorize {\n constructor() {\n this.jsyaml = yaml;\n this.fs = fs;\n }\n\n async acquireSecurityToken(clientId, clientSecret, userId, password, audience, baseUrl, apiUrl, customerAlias, databaseAlias, authenticationUrl) {\n debug('acquireSecurityToken called for user: %s', userId);\n\n try {\n const sessionToken = await this.__getToken(\n clientId,\n clientSecret,\n userId,\n password,\n audience,\n baseUrl,\n customerAlias,\n databaseAlias,\n authenticationUrl,\n true\n );\n\n debug('acquireSecurityToken success');\n\n if (typeof (sessionToken) != 'undefined' && sessionToken != null) {\n sessionToken.baseUrl = baseUrl;\n sessionToken.apiUrl = apiUrl;\n sessionToken.authenticationUrl = authenticationUrl;\n sessionToken.customerAlias = customerAlias;\n sessionToken.databaseAlias = databaseAlias;\n sessionToken.clientId = clientId;\n sessionToken.clientSecret = clientSecret;\n sessionToken.userId = userId;\n sessionToken.password = password;\n sessionToken.audience = audience;\n sessionToken.isAuthenticated = true;\n }\n\n return sessionToken;\n } catch (error) {\n debug('acquireSecurityToken failed: %s', error.message);\n throw error;\n }\n }\n\n async acquireJwt(jwt, baseUrl, apiUrl, authenticationUrl, customerAlias, databaseAlias) {\n debug('acquireJwt called');\n\n try {\n const sessionToken = await this.__getJwt(\n jwt,\n baseUrl,\n customerAlias,\n databaseAlias,\n authenticationUrl,\n true\n );\n\n debug('acquireJwt success');\n\n if (typeof (sessionToken) != 'undefined' && sessionToken != null) {\n sessionToken.baseUrl = baseUrl;\n sessionToken.apiUrl = apiUrl;\n sessionToken.authenticationUrl = authenticationUrl;\n sessionToken.customerAlias = customerAlias;\n sessionToken.databaseAlias = databaseAlias;\n sessionToken.isAuthenticated = true;\n sessionToken.isJwt = true;\n }\n\n return sessionToken;\n } catch (error) {\n debug('acquireJwt failed: %s', error.message);\n throw error;\n }\n }\n\n async reacquireSecurityToken(sessionToken) {\n debug('reacquireSecurityToken called (isJwt: %s)', sessionToken.isJwt);\n\n try {\n if (sessionToken.isJwt) {\n const newToken = await this.__getJwt(\n sessionToken.accessToken,\n sessionToken.baseUrl,\n sessionToken.customerAlias,\n sessionToken.databaseAlias,\n sessionToken.authenticationUrl,\n true\n );\n\n debug('reacquireSecurityToken success (JWT)');\n return newToken;\n } else {\n const newToken = await this.__getToken(\n sessionToken.clientId,\n sessionToken.clientSecret,\n sessionToken.userId,\n sessionToken.password,\n sessionToken.audience,\n sessionToken.baseUrl,\n sessionToken.customerAlias,\n sessionToken.databaseAlias,\n sessionToken.authenticationUrl,\n true\n );\n\n debug('reacquireSecurityToken success (password grant)');\n return newToken;\n }\n } catch (error) {\n debug('reacquireSecurityToken failed: %s', error.message);\n throw error;\n }\n }\n\n async acquireRefreshToken(sessionToken) {\n if (sessionToken.isJwt) {\n return await this.reacquireSecurityToken(sessionToken);\n }\n\n const claim = {\n grant_type: 'refresh_token',\n refresh_token: sessionToken.refreshToken,\n client_id: sessionToken.clientId,\n client_secret: sessionToken.clientSecret\n };\n\n if (sessionToken['audience']) {\n claim['audience'] = sessionToken['audience'];\n }\n\n const urlSecurity = sessionToken.baseUrl + sessionToken.authenticationUrl;\n debug('acquireRefreshToken - URL: %s', urlSecurity);\n\n try {\n const response = await fetch(urlSecurity, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: new URLSearchParams(claim)\n });\n\n const body = await response.text();\n\n if (response.status === 200) {\n debug('acquireRefreshToken success');\n\n const responseObject = JSON.parse(body);\n sessionToken.accessToken = responseObject.access_token;\n sessionToken.expiresIn = responseObject.expires_in;\n sessionToken.refreshToken = responseObject.refresh_token;\n sessionToken.tokenType = responseObject.token_type;\n\n const expireDate = new Date();\n expireDate.setSeconds(expireDate.getSeconds() + sessionToken.expiresIn);\n\n sessionToken.expirationDate = expireDate;\n sessionToken.isAuthenticated = true;\n\n return sessionToken;\n } else if (response.status === 401 || response.status === 403 || response.status === 400) {\n sessionToken.isAuthenticated = false;\n throw new Error(`Authorization has been refused for current credentials (HTTP ${response.status}): ${body.substring(0, 200)}`);\n } else {\n sessionToken.isAuthenticated = false;\n throw new Error(`Unknown response for access token: HTTP ${response.status}`);\n }\n } catch (error) {\n sessionToken.isAuthenticated = false;\n debug('acquireRefreshToken error: %s', error.message);\n throw error;\n }\n }\n\n async __getToken(clientId, clientSecret, userId, password, audience, baseUrl, customerAlias, databaseAlias, authenticationUrl) {\n const sessionToken = new SessionToken();\n\n const claim = {\n grant_type: 'password',\n client_id: clientId,\n client_secret: clientSecret,\n username: userId,\n password: password,\n scope: 'vault'\n };\n\n const urlSecurity = baseUrl + authenticationUrl;\n debug('__getToken - URL: %s, user: %s, customer: %s/%s, audience: %s', urlSecurity, userId, customerAlias, databaseAlias, audience);\n\n try {\n const response = await fetch(urlSecurity, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n body: new URLSearchParams(claim)\n });\n\n const body = await response.text();\n\n if (response.status === 200) {\n const responseObject = JSON.parse(body);\n sessionToken.accessToken = responseObject.access_token;\n sessionToken.expiresIn = responseObject.expires_in;\n sessionToken.refreshToken = responseObject.refresh_token;\n sessionToken.tokenType = responseObject.token_type;\n\n const expireDate = new Date();\n expireDate.setSeconds(expireDate.getSeconds() + sessionToken.expiresIn);\n\n sessionToken.expirationDate = expireDate;\n sessionToken.isAuthenticated = true;\n\n debug('__getToken success');\n return sessionToken;\n } else if (response.status === 401 || response.status === 403 || response.status === 400) {\n sessionToken.isAuthenticated = false;\n throw new Error(`Authorization has been refused for current credentials (HTTP ${response.status}): ${body.substring(0, 200)}`);\n } else {\n sessionToken.isAuthenticated = false;\n throw new Error(`Unknown response for access token: HTTP ${response.status}`);\n }\n } catch (error) {\n sessionToken.isAuthenticated = false;\n debug('__getToken error: %s', error.message);\n throw error;\n }\n }\n\n async __getJwt(jwt, baseUrl, customerAlias, databaseAlias, authenticationUrl) {\n const sessionToken = new SessionToken();\n\n const headers = {\n Authorization: 'Bearer ' + jwt,\n };\n\n const urlSecurity = baseUrl + authenticationUrl;\n debug('__getJwt - URL: %s, customer: %s/%s', urlSecurity, customerAlias, databaseAlias);\n\n try {\n const response = await fetch(urlSecurity, {\n method: 'GET',\n headers\n });\n\n const body = await response.text();\n\n if (response.status === 200) {\n const responseObject = JSON.parse(body);\n\n sessionToken.accessToken = responseObject.data.token;\n sessionToken.expirationDate = new Date(responseObject.data.expires);\n sessionToken.isAuthenticated = true;\n sessionToken.isJwt = true;\n\n debug('__getJwt success');\n return sessionToken;\n } else if (response.status === 401 || response.status === 403 || response.status === 400) {\n sessionToken.isAuthenticated = false;\n throw new Error(`Authorization has been refused for current credentials (HTTP ${response.status}): ${body.substring(0, 200)}`);\n } else {\n sessionToken.isAuthenticated = false;\n throw new Error(`Unknown response for JWT: HTTP ${response.status}`);\n }\n } catch (error) {\n sessionToken.isAuthenticated = false;\n debug('__getJwt error: %s', error.message);\n throw error;\n }\n }\n\n endsWith(source, suffix) {\n return source.indexOf(suffix, source.length - suffix.length) !== -1;\n }\n}\n\nexport default Authorize;","import DocApi from './DocApi.js';\r\nimport FormsApi from './FormsApi.js';\r\nimport ObjectsApi from './ObjectsApi.js';\r\nimport StudioApi from './StudioApi.js';\r\nimport NotificationsApi from './NotificationsApi.js';\r\nimport common from './common.js';\r\nimport yaml from 'js-yaml';\r\nimport fs from 'fs';\r\nimport { fileURLToPath } from 'url';\r\nimport path from 'path';\r\nimport createDebug from 'debug';\r\n\r\nconst debug = createDebug('visualvault:api');\r\n\r\n// Import all managers from vvRestApi directory\r\nimport { Constants } from './vvRestApi/constants.js';\r\nimport { ConfigurationManager } from './vvRestApi/configurationManager.js';\r\nimport { EmailManager } from './vvRestApi/emailManager.js';\r\nimport { FormsManager, ReturnField, FormFieldCollection } from './vvRestApi/formsManager.js';\r\nimport { GroupsManager } from './vvRestApi/groupsManager.js';\r\nimport { LibraryManager } from './vvRestApi/libraryManager.js';\r\nimport { SitesManager } from './vvRestApi/sitesManager.js';\r\nimport { UsersManager } from './vvRestApi/usersManager.js';\r\nimport { CurrentUserManager } from './vvRestApi/currentUserManager.js';\r\nimport { ScheduledProcessManager } from './vvRestApi/scheduledProcessManager.js';\r\nimport { CustomQueryManager } from './vvRestApi/customQueryManager.js';\r\nimport { CustomerManager } from './vvRestApi/customerManager.js';\r\nimport { CustomerDatabaseManager } from './vvRestApi/customerDatabaseManager.js';\r\nimport { FilesManager } from './vvRestApi/filesManager.js';\r\nimport { ScriptsManager } from './vvRestApi/scriptsManager.js';\r\nimport { DocumentsManager } from './vvRestApi/documentsManager.js';\r\nimport { ProjectsManager } from './vvRestApi/projectsManager.js';\r\nimport { IndexFieldsManager } from './vvRestApi/indexFieldsManager.js';\r\nimport { OutsideProcessesManager } from './vvRestApi/outsideProcessesManager.js';\r\nimport { SecurityMembersManager } from './vvRestApi/securityMembersManager.js';\r\nimport { LayoutsManager } from './vvRestApi/layoutsManager.js';\r\nimport { ReportsManager } from './vvRestApi/reportsManager.js';\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = path.dirname(__filename);\r\n\r\n/**\r\n * Main VisualVault API client providing access to all API managers.\r\n */\r\nexport class VVClient {\r\n /** @type {*} */ constants;\r\n /** @type {*} */ configuration;\r\n /** @type {*} */ customQuery;\r\n /** @type {*} */ documents;\r\n /** @type {*} */ email;\r\n /** @type {*} */ files;\r\n /** @type {*} */ forms;\r\n /** @type {*} */ groups;\r\n /** @type {*} */ library;\r\n /** @type {*} */ sites;\r\n /** @type {*} */ users;\r\n /** @type {*} */ scheduledProcess;\r\n /** @type {*} */ scripts;\r\n /** @type {*} */ projects;\r\n /** @type {*} */ customer;\r\n /** @type {*} */ customerDatabase;\r\n /** @type {*} */ indexFields;\r\n /** @type {*} */ outsideProcesses;\r\n /** @type {*} */ securityMembers;\r\n /** @type {*} */ layouts;\r\n /** @type {*} */ reports;\r\n\r\n /**\r\n * @param {*} sessionToken - Session token from authentication\r\n */\r\n constructor(sessionToken) {\r\n this.yamlConfig = yaml.load(fs.readFileSync(path.join(__dirname, 'config.yml'), 'utf8'));\r\n\r\n this._httpHelper = new common.httpHelper(sessionToken, this.yamlConfig);\r\n this.constants = new Constants();\r\n this.configuration = new ConfigurationManager(this._httpHelper);\r\n\r\n this.customQuery = new CustomQueryManager(this._httpHelper);\r\n this.documents = new DocumentsManager(this._httpHelper);\r\n this.email = new EmailManager(this._httpHelper);\r\n this.files = new FilesManager(this._httpHelper);\r\n this.forms = new FormsManager(this._httpHelper);\r\n this.groups = new GroupsManager(this._httpHelper);\r\n this.library = new LibraryManager(this._httpHelper);\r\n this.sites = new SitesManager(this._httpHelper);\r\n this.users = new UsersManager(this._httpHelper);\r\n this.currentUser = new CurrentUserManager(this._httpHelper);\r\n this.scheduledProcess = new ScheduledProcessManager(this._httpHelper);\r\n this.scripts = new ScriptsManager(this._httpHelper);\r\n this.projects = new ProjectsManager(this._httpHelper);\r\n this.customer = new CustomerManager(this._httpHelper);\r\n this.customerDatabase = new CustomerDatabaseManager(this._httpHelper);\r\n this.indexFields = new IndexFieldsManager(this._httpHelper);\r\n this.outsideProcesses = new OutsideProcessesManager(this._httpHelper);\r\n this.securityMembers = new SecurityMembersManager(this._httpHelper);\r\n this.layouts = new LayoutsManager(this._httpHelper);\r\n this.reports = new ReportsManager(this._httpHelper);\r\n\r\n this._docApi = null;\r\n Object.defineProperties(this, {\r\n docApi: {\r\n get: function () {\r\n if (this._docApi != null && this._docApi.isEnabled && this._docApi.baseUrl) {\r\n return this._docApi;\r\n } else {\r\n throw new ReferenceError(\"Document Api not enabled\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n this._formsApi = null;\r\n Object.defineProperties(this, {\r\n formsApi: {\r\n get: function () {\r\n if (this._formsApi != null && this._formsApi.isEnabled && this._formsApi.baseUrl) {\r\n return this._formsApi;\r\n } else {\r\n throw new ReferenceError(\"Forms Api not enabled\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n this._objectsApi = null;\r\n Object.defineProperties(this, {\r\n objectsApi: {\r\n get: function () {\r\n if (this._objectsApi != null && this._objectsApi.isEnabled && this._objectsApi.baseUrl) {\r\n return this._objectsApi;\r\n } else {\r\n throw new ReferenceError(\"Objects Api not enabled\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n this._studioApi = null;\r\n Object.defineProperties(this, {\r\n studioApi: {\r\n get: function () {\r\n if (this._studioApi != null && this._studioApi.isEnabled && this._studioApi.baseUrl) {\r\n return this._studioApi;\r\n } else {\r\n throw new ReferenceError(\"Studio Api not enabled\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n this._notificationsApi = null;\r\n Object.defineProperties(this, {\r\n notificationsApi: {\r\n get: function () {\r\n if (this._notificationsApi != null && this._notificationsApi.isEnabled && this._notificationsApi.baseUrl) {\r\n return this._notificationsApi;\r\n } else {\r\n throw new ReferenceError(\"Notifications Api not enabled\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n async createDocApi(sessionToken) {\r\n const docApiConfigResponse = JSON.parse(await this.configuration.getDocApiConfig());\r\n\r\n if (docApiConfigResponse && docApiConfigResponse['data']) {\r\n const docApiSession = sessionToken.createCopy();\r\n docApiSession.baseUrl = docApiConfigResponse.data['apiUrl'];\r\n docApiSession.apiUrl = this.yamlConfig.DocApiUri;\r\n if (docApiSession['tokenType'] == 'jwt') {\r\n this._docApi = new DocApi(docApiSession, docApiConfigResponse.data);\r\n } else if (this.users) {\r\n const jwtResponse = JSON.parse(await this.users.getUserJwt(docApiSession.audience));\r\n\r\n if (jwtResponse['data'] && jwtResponse['data']['token']) {\r\n docApiSession.convertToJwt(jwtResponse['data']);\r\n this._docApi = new DocApi(docApiSession, docApiConfigResponse.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async createFormsApi(sessionToken) {\r\n const formsApiConfigResponse = JSON.parse(await this.configuration.getFormsApiConfig());\r\n\r\n if (formsApiConfigResponse && formsApiConfigResponse['data']) {\r\n const formsApiSession = sessionToken.createCopy();\r\n formsApiSession.baseUrl = formsApiConfigResponse.data['formsApiUrl'];\r\n formsApiSession.apiUrl = this.yamlConfig.FormsApiUri;\r\n if (formsApiSession['tokenType'] == 'jwt') {\r\n this._formsApi = new FormsApi(formsApiSession, formsApiConfigResponse.data);\r\n } else if (this.users) {\r\n const jwtResponse = JSON.parse(await this.users.getUserJwt(formsApiSession.audience));\r\n\r\n if (jwtResponse['data'] && jwtResponse['data']['token']) {\r\n formsApiSession.convertToJwt(jwtResponse['data']);\r\n this._formsApi = new FormsApi(formsApiSession, formsApiConfigResponse.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async createObjectsApi(sessionToken) {\r\n const objectsApiConfigResponse = JSON.parse(await this.configuration.getObjectsApiConfig());\r\n\r\n if (objectsApiConfigResponse && objectsApiConfigResponse['data']) {\r\n const objectsApiSession = sessionToken.createCopy();\r\n objectsApiSession.baseUrl = objectsApiConfigResponse.data['apiUrl'];\r\n objectsApiSession.apiUrl = '';\r\n if (objectsApiSession['tokenType'] == 'jwt') {\r\n this._objectsApi = new ObjectsApi(objectsApiSession, objectsApiConfigResponse.data);\r\n } else if (this.users) {\r\n const jwtResponse = JSON.parse(await this.users.getUserJwt(objectsApiSession.audience));\r\n\r\n if (jwtResponse['data'] && jwtResponse['data']['token']) {\r\n objectsApiSession.convertToJwt(jwtResponse['data']);\r\n this._objectsApi = new ObjectsApi(objectsApiSession, objectsApiConfigResponse.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async createStudioApi(sessionToken) {\r\n const studioApiConfigResponse = JSON.parse(await this.configuration.getStudioApiConfig());\r\n\r\n if (studioApiConfigResponse && studioApiConfigResponse['data']) {\r\n const studioApiSession = sessionToken.createCopy();\r\n studioApiSession.baseUrl = studioApiConfigResponse.data['studioApiUrl'];\r\n studioApiSession.apiUrl = '';\r\n if (studioApiSession['tokenType'] == 'jwt') {\r\n this._studioApi = new StudioApi(studioApiSession, studioApiConfigResponse.data);\r\n } else if (this.users) {\r\n const jwtResponse = JSON.parse(await this.users.getUserJwt(studioApiSession.audience));\r\n\r\n if (jwtResponse['data'] && jwtResponse['data']['token']) {\r\n studioApiSession.convertToJwt(jwtResponse['data']);\r\n this._studioApi = new StudioApi(studioApiSession, studioApiConfigResponse.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async createNotificationsApi(sessionToken) {\r\n const notificationsApiConfigResponse = JSON.parse(await this.configuration.getNotificationsApiConfig());\r\n\r\n if (notificationsApiConfigResponse && notificationsApiConfigResponse['data']) {\r\n const notificationsApiSession = sessionToken.createCopy();\r\n notificationsApiSession.baseUrl = notificationsApiConfigResponse.data['apiUrl'];\r\n notificationsApiSession.apiUrl = this.yamlConfig.NotificationsApiUri;\r\n if (notificationsApiSession['tokenType'] == 'jwt') {\r\n this._notificationsApi = new NotificationsApi(notificationsApiSession, notificationsApiConfigResponse.data);\r\n } else if (this.users) {\r\n const jwtResponse = JSON.parse(await this.users.getUserJwt(notificationsApiSession.audience));\r\n\r\n if (jwtResponse['data'] && jwtResponse['data']['token']) {\r\n notificationsApiSession.convertToJwt(jwtResponse['data']);\r\n this._notificationsApi = new NotificationsApi(notificationsApiSession, notificationsApiConfigResponse.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async _convertToJwt(sessionToken) {\r\n const jwtResponse = JSON.parse(await this.users.getUserJwt(sessionToken.audience));\r\n if (jwtResponse['data'] && jwtResponse['data']['token']) {\r\n sessionToken.convertToJwt(jwtResponse['data']);\r\n } else {\r\n throw new Error('Failed to get JWT: API response missing data.token property');\r\n }\r\n }\r\n\r\n endsWith(source, suffix) {\r\n return source.indexOf(suffix, source.length - suffix.length) !== -1;\r\n }\r\n\r\n /**\r\n * Get the current security token\r\n * @returns {string} The access token\r\n */\r\n getSecurityToken() {\r\n return this._httpHelper._sessionToken.accessToken;\r\n }\r\n\r\n /**\r\n * Check if the client is authenticated\r\n * @returns {boolean} True if authenticated\r\n */\r\n isAuthenticated() {\r\n return this._httpHelper._sessionToken.isAuthenticated;\r\n }\r\n\r\n /**\r\n * Get the base URL\r\n * @returns {string} The base URL\r\n */\r\n getBaseUrl() {\r\n return this._httpHelper._sessionToken.baseUrl;\r\n }\r\n}\r\n\r\n/**\r\n * Authentication class for obtaining VaultApi client instances.\r\n */\r\nexport class Authorize extends common.authorize {\r\n /**\r\n * Authenticate and get a VaultApi client instance\r\n * @param {string} clientId - OAuth client ID\r\n * @param {string} clientSecret - OAuth client secret\r\n * @param {string} userId - User username\r\n * @param {string} password - User password\r\n * @param {string} audience - OAuth audience\r\n * @param {string} baseVaultUrl - VisualVault base URL\r\n * @param {string} customerAlias - Customer alias\r\n * @param {string} databaseAlias - Database alias\r\n * @returns {Promise<VVClient>} Authenticated client instance\r\n */\r\n async getVaultApi(clientId, clientSecret, userId, password, audience, baseVaultUrl, customerAlias, databaseAlias) {\r\n debug('getVaultApi called for user: %s, customer: %s/%s', userId, customerAlias, databaseAlias);\r\n\r\n const config = this.jsyaml.load(this.fs.readFileSync(__dirname + '/config.yml', 'utf8'));\r\n\r\n if (this.endsWith(baseVaultUrl, '/')) {\r\n baseVaultUrl = baseVaultUrl.substring(0, baseVaultUrl.length - 1);\r\n }\r\n\r\n const apiUrl = config.ApiUri.replace('{custalias}', customerAlias).replace('{custdbalias}', databaseAlias);\r\n const authenticationUrl = config.AutheticateUri;\r\n\r\n const sessionToken = await this.acquireSecurityToken(clientId, clientSecret, userId, password, audience, baseVaultUrl, apiUrl, customerAlias, databaseAlias, authenticationUrl);\r\n const client = new VVClient(sessionToken);\r\n\r\n try {\r\n await client._convertToJwt(sessionToken);\r\n await Promise.all([\r\n client.createDocApi(sessionToken),\r\n client.createFormsApi(sessionToken),\r\n client.createObjectsApi(sessionToken),\r\n client.createStudioApi(sessionToken),\r\n client.createNotificationsApi(sessionToken),\r\n ]);\r\n return client;\r\n } catch (error) {\r\n debug('Failed to convert to JWT or create specialized APIs: %s', error.message);\r\n return client;\r\n }\r\n }\r\n\r\n /**\r\n * Get a VaultApi client from an existing JWT token\r\n * @param {string} jwt - JWT authentication token\r\n * @param {string} baseVaultUrl - VisualVault base URL\r\n * @param {string} customerAlias - Customer alias\r\n * @param {string} databaseAlias - Database alias\r\n * @param {Date} expirationDate - Token expiration date\r\n * @returns {Promise<VVClient>} Authenticated client instance\r\n */\r\n async getVaultApiFromJwt(jwt, baseVaultUrl, customerAlias, databaseAlias, expirationDate) {\r\n debug('getVaultApiFromJwt called for customer: %s/%s', customerAlias, databaseAlias);\r\n\r\n const config = this.jsyaml.load(this.fs.readFileSync(__dirname + '/config.yml', 'utf8'));\r\n\r\n if (this.endsWith(baseVaultUrl, '/')) {\r\n baseVaultUrl = baseVaultUrl.substring(0, baseVaultUrl.length - 1);\r\n }\r\n\r\n const apiUrl = config.ApiUri.replace('{custalias}', customerAlias).replace('{custdbalias}', databaseAlias);\r\n const authenticationUrl = apiUrl + config.ResourceUri.UsersGetJwt;\r\n\r\n if (expirationDate && expirationDate >= new Date(new Date().getTime() + 30 * 1000)) {\r\n const sessionToken = new common.sessionToken();\r\n\r\n sessionToken.accessToken = jwt;\r\n sessionToken.baseUrl = baseVaultUrl;\r\n sessionToken.apiUrl = apiUrl;\r\n sessionToken.authenticationUrl = authenticationUrl;\r\n sessionToken.customerAlias = customerAlias;\r\n sessionToken.databaseAlias = databaseAlias;\r\n sessionToken.expirationDate = expirationDate;\r\n sessionToken.isAuthenticated = true;\r\n sessionToken.isJwt = true;\r\n\r\n const client = new VVClient(sessionToken);\r\n\r\n return Promise.all([\r\n client.createDocApi(sessionToken),\r\n client.createFormsApi(sessionToken),\r\n client.createObjectsApi(sessionToken),\r\n client.createStudioApi(sessionToken),\r\n ])\r\n .then(() => client)\r\n .catch((error) => {\r\n debug('Failed to create specialized APIs: %s', error.message);\r\n return client;\r\n });\r\n } else {\r\n const token = await this.acquireJwt(jwt, baseVaultUrl, apiUrl, authenticationUrl, customerAlias, databaseAlias);\r\n const client = new VVClient(token);\r\n\r\n try {\r\n await Promise.all([\r\n client.createDocApi(token),\r\n client.createFormsApi(token),\r\n client.createObjectsApi(token),\r\n client.createStudioApi(token),\r\n ]);\r\n return client;\r\n } catch (error) {\r\n debug('Failed to create specialized APIs: %s', error.message);\r\n return client;\r\n }\r\n }\r\n }\r\n\r\n endsWith(source, suffix) {\r\n return source.indexOf(suffix, source.length - suffix.length) !== -1;\r\n }\r\n}\r\n\r\n// Export helper classes from formsManager for backward compatibility\r\nexport const forms = {\r\n returnField: ReturnField,\r\n formFieldCollection: FormFieldCollection\r\n};\r\n\r\nexport default {\r\n vvClient: VVClient,\r\n authorize: Authorize,\r\n forms\r\n};\r\n","// DocApi\r\nimport common from './common.js';\r\nimport { DocumentInstanceManager } from './docApi/documentInstanceManager.js';\r\nimport yaml from 'js-yaml';\r\nimport fs from 'fs';\r\nimport { fileURLToPath } from 'url';\r\nimport path from 'path';\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = path.dirname(__filename);\r\n\r\nexport class DocApi {\r\n constructor(sessionToken, docApiConfig) {\r\n if (!sessionToken['tokenType'] && sessionToken['tokenType'] != 'jwt') {\r\n return;\r\n }\r\n\r\n const yamlConfig = yaml.load(fs.readFileSync(__dirname + '/config.yml', 'utf8'));\r\n this._httpHelper = new common.httpHelper(sessionToken, yamlConfig);\r\n\r\n this.isEnabled = docApiConfig['isEnabled'] || false;\r\n this.baseUrl = docApiConfig['apiUrl'] || null;\r\n this.roleSecurity = docApiConfig['roleSecurity'] || false;\r\n\r\n if (this.isEnabled) {\r\n this.documentInstances = new DocumentInstanceManager(this._httpHelper);\r\n }\r\n }\r\n}\r\n\r\nexport default DocApi;\r\n","// Re-export the modernized HTTP modules\nexport { HttpHelper as httpHelper } from './http/httpHelper.js';\nexport { SessionToken as sessionToken } from './http/sessionToken.js';\nexport { Authorize as authorize } from './http/authorize.js';\n\n// Default export for backward compatibility\nimport { HttpHelper } from './http/httpHelper.js';\nimport { SessionToken } from './http/sessionToken.js';\nimport { Authorize } from './http/authorize.js';\n\nexport default {\n httpHelper: HttpHelper,\n sessionToken: SessionToken,\n authorize: Authorize\n};\n","import createDebug from 'debug';\n\nconst debug = createDebug('visualvault:http');\n\nexport class HttpHelper {\n constructor(sessionToken, yamlConfig) {\n this._sessionToken = sessionToken;\n this._config = yamlConfig;\n this._maxRetries = 3;\n }\n\n async doVvClientRequest(url, options, params, data, buffer) {\n // If the token is within 30 seconds of expiration, refresh it\n if (this._sessionToken.expirationDate < new Date(new Date().getTime() + 30 * 1000)) {\n debug('accessToken has expired, calling __acquireRefreshToken');\n\n try {\n await this.__acquireRefreshToken();\n debug('return success from __acquireRefreshToken');\n return await this.__doVvClientCallRequest(url, options, params, data, buffer);\n } catch (error) {\n debug('return fail from __acquireRefreshToken: %s', error.message);\n throw new Error('Unable to obtain Authorization, error: ' + error);\n }\n } else {\n return await this.__doVvClientCallRequest(url, options, params, data, buffer);\n }\n }\n\n async __doVvClientCallRequest(url, options, params, data, buffer, retries = 0) {\n try {\n let responseData;\n\n if (options.method === 'GET') {\n responseData = await this.httpGet(url, params);\n } else if (options.method === 'GETSTREAM') {\n responseData = await this.httpGetStream(url, params);\n } else if (options.method === 'POST') {\n responseData = await this.httpPost(url, params, data);\n } else if (options.method === 'POSTSTREAM') {\n responseData = await this.httpPostStream(url, params, data, buffer);\n } else if (options.method === 'PUT') {\n responseData = await this.httpPut(url, params, data);\n } else if (options.method === 'PUTSTREAM') {\n responseData = await this.httpPutStream(url, params, data, buffer);\n } else if (options.method === 'DELETE') {\n responseData = await this.httpDelete(url, params);\n } else {\n throw new Error('http request method name error');\n }\n\n return responseData;\n } catch (error) {\n // Handle retry logic for 429 status\n if (error.status === 429 && retries < this._maxRetries) {\n const timeout = this.__getRetryDelay(error.retryTime);\n debug('Timed Out: Retrying in %d ms. (%d retries left)', timeout, this._maxRetries - retries - 1);\n\n await new Promise(resolve => setTimeout(resolve, timeout));\n return await this.__doVvClientCallRequest(url, options, params, data, buffer, retries + 1);\n }\n\n throw error;\n }\n }\n\n async __makeRequest(url, options) {\n const headers = {\n 'Authorization': 'Bearer ' + this._sessionToken.accessToken,\n 'Content-Type': 'application/json'\n };\n\n debug('Performing request to url: %s', url);\n\n const fetchOptions = {\n method: options.method,\n headers: { ...headers, ...options.headers }\n };\n\n // Add query parameters to URL\n if (options.qs && Object.keys(options.qs).length > 0) {\n const queryString = new URLSearchParams(options.qs).toString();\n url = `${url}?${queryString}`;\n }\n\n // Add body for POST/PUT requests\n if (options.json && (options.method === 'POST' || options.method === 'PUT')) {\n fetchOptions.body = JSON.stringify(options.json);\n }\n\n const response = await fetch(url, fetchOptions);\n const responseText = await response.text();\n\n if (!response.ok) {\n let parsedData;\n try {\n parsedData = JSON.parse(responseText);\n } catch (e) {\n parsedData = { meta: responseText };\n }\n\n if (response.status === 401 || response.status === 403) {\n this._sessionToken.isAuthenticated = false;\n throw new Error(JSON.stringify(parsedData.meta));\n } else if (response.status === 429) {\n const error = new Error(JSON.stringify(parsedData.meta));\n error.status = 429;\n error.retryTime = parsedData.meta?.retryTime;\n throw error;\n } else {\n throw new Error(responseText);\n }\n }\n\n return responseText;\n }\n\n async __makePostStreamRequest(url, options, buffer) {\n debug('Performing stream request to url: %s', url);\n\n const formData = new FormData();\n\n // Add form fields\n if (options.json) {\n for (const key in options.json) {\n if (options.json.hasOwnProperty(key)) {\n formData.append(key, options.json[key]);\n }\n }\n }\n\n // Add file(s) to multipart data\n if (Buffer.isBuffer(buffer)) {\n // Single file\n const filename = options.json?.fileName || \"file\";\n const blob = new Blob([buffer]);\n formData.append('fileUpload', blob, filename);\n } else if (Array.isArray(buffer)) {\n // Multiple files\n for (let i = 0; i < buffer.length; i++) {\n const fileInfoObj = buffer[i];\n if (Buffer.isBuffer(fileInfoObj.buffer)) {\n const fileName = fileInfoObj.fileName || `file${i}`;\n const blob = new Blob([fileInfoObj.buffer]);\n formData.append('fileUpload', blob, fileName);\n } else {\n throw new Error(`Invalid 'buffer' property found on fileObj at index ${i}`);\n }\n }\n } else {\n throw new Error('Expecting Buffer');\n }\n\n const headers = {\n 'Authorization': 'Bearer ' + this._sessionToken.accessToken\n };\n\n const response = await fetch(url, {\n method: options.method,\n headers,\n body: formData\n });\n\n const responseText = await response.text();\n\n if (!response.ok) {\n throw new Error(responseText);\n }\n\n return responseText;\n }\n\n async httpGet(url, params) {\n const options = { method: 'GET', qs: params || {}, headers: {}, json: null };\n\n if (this._sessionToken.accessToken == null) {\n throw new Error('Access token is null');\n }\n\n return await this.__makeRequest(url, options);\n }\n\n async httpGetStream(url, params) {\n if (this._sessionToken.accessToken == null) {\n throw new Error('Access token is null');\n }\n\n const headers = {\n 'Authorization': 'Bearer ' + this._sessionToken.accessToken,\n 'Content-Type': 'application/json; charset=utf-8'\n };\n\n if (params && Object.keys(params).length > 0) {\n const queryString = new URLSearchParams(params).toString();\n url = `${url}?${queryString}`;\n }\n\n const response = await fetch(url, { method: 'GET', headers });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const buffer = await response.arrayBuffer();\n return Buffer.from(buffer);\n }\n\n async httpPost(url, params, data) {\n const options = { method: 'POST', qs: params || {}, json: data, headers: {} };\n\n if (this._sessionToken.accessToken == null) {\n throw new Error('Access token is null');\n }\n\n return await this.__makeRequest(url, options);\n }\n\n async httpPostStream(url, params, data, buffer) {\n const options = { method: 'POST', qs: params || {}, json: data, headers: {} };\n\n if (this._sessionToken.accessToken == null) {\n throw new Error('Access token is null');\n }\n\n return await this.__makePostStreamRequest(url, options, buffer);\n }\n\n async httpPut(url, params, data) {\n const options = { method: 'PUT', qs: params || {}, json: data, headers: {} };\n\n if (this._sessionToken.accessToken == null) {\n throw new Error('Access token is null');\n }\n\n return await this.__makeRequest(url, options);\n }\n\n async httpPutStream(url, params, data, buffer) {\n const options = { method: 'PUT', qs: params || {}, json: data, headers: {} };\n\n if (this._sessionToken.accessToken == null) {\n throw new Error('Access token is null');\n }\n\n return await this.__makePostStreamRequest(url, options, buffer);\n }\n\n async httpDelete(url, params) {\n const options = { method: 'DELETE', qs: params || {}, json: null, headers: {} };\n\n if (this._sessionToken.accessToken == null) {\n throw new Error('Access token is null');\n }\n\n return await this.__makeRequest(url, options);\n }\n\n async __acquireRefreshToken() {\n this._sessionToken.isAuthenticated = false;\n\n // Import authorize dynamically to avoid circular dependency\n const { Authorize } = await import('./authorize.js');\n const vvAuthorize = new Authorize();\n\n try {\n await vvAuthorize.acquireRefreshToken(this._sessionToken);\n } catch (error) {\n await vvAuthorize.reacquireSecurityToken(this._sessionToken);\n }\n }\n\n request(httpVerb, url, params, data) {\n const options = { method: httpVerb.toUpperCase() };\n debug('Performing %s request to url: %s', httpVerb.toUpperCase(), url);\n return this.doVvClientRequest(url, options, params, data);\n }\n\n getUrl(resourceUrl) {\n return this._sessionToken.baseUrl + this._sessionToken.apiUrl + resourceUrl;\n }\n\n __getRetryDelay(retryTime) {\n let delay = 10;\n if (retryTime && !isNaN(Date.parse(retryTime))) {\n const now = new Date();\n delay = Date.parse(retryTime) - now.getTime();\n if (delay < 0) {\n delay *= -1;\n }\n }\n return delay;\n }\n}\n\nexport default HttpHelper;\n","export class DocumentInstanceManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n async GetRevision(documentRevisionId) {\n let resourceUri = this._httpHelper._config.ResourceUri.DocApi.GetRevision;\n resourceUri = resourceUri.replace('{id}', documentRevisionId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n async getDocumentOcrStatus(documentRevisionId) {\n let resourceUri = this._httpHelper._config.ResourceUri.DocApi.OcrStatus;\n resourceUri = resourceUri.replace('{id}', documentRevisionId);\n const url = this._httpHelper.getUrl(resourceUri);\n\n const opts = { method: 'GET' };\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n async updateDocumentOcrStatus(documentRevisionId, data) {\n let resourceUri = this._httpHelper._config.ResourceUri.DocApi.OcrStatus;\n resourceUri = resourceUri.replace('{id}', documentRevisionId);\n const url = this._httpHelper.getUrl(resourceUri);\n\n const opts = { method: 'PUT' };\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n async search(criteriaList, searchFolders, excludeFolders, sortBy, sortDirection = 'desc', page = 0, take = 15, archiveType = 0, roleSecurity = false) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.DocApi.AdvancedSearch);\n\n const data = {\n criteriaList,\n searchFolders,\n excludeFolders,\n sortBy,\n sortDirection,\n page,\n take,\n archiveType,\n roleSecurity\n };\n\n const options = { method: 'POST'};\n return this._httpHelper.doVvClientRequest(url, options, null, data);\n }\n}\n\nexport default DocumentInstanceManager;","// FormsApi\r\nimport common from './common.js';\r\nimport FormInstanceManager from './formsApi/formInstanceManager.js';\r\nimport yaml from 'js-yaml';\r\nimport fs from 'fs';\r\nimport { fileURLToPath } from 'url';\r\nimport path from 'path';\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = path.dirname(__filename);\r\n\r\nexport class FormsApi {\r\n constructor(sessionToken, formsApiConfig) {\r\n if (!sessionToken['tokenType'] && sessionToken['tokenType'] != 'jwt') {\r\n return;\r\n }\r\n\r\n const yamlConfig = yaml.load(fs.readFileSync(__dirname + '/config.yml', 'utf8'));\r\n this._httpHelper = new common.httpHelper(sessionToken, yamlConfig);\r\n\r\n this.isEnabled = formsApiConfig['isEnabled'] || false;\r\n this.baseUrl = formsApiConfig['formsApiUrl'] || null;\r\n\r\n if (this.isEnabled) {\r\n this.formInstances = new FormInstanceManager(this._httpHelper);\r\n }\r\n }\r\n}\r\n\r\nexport default FormsApi;\r\n","export class FormInstanceManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n async postForm(params, data, formTemplateRevisionId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormsApi.FormInstance;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n data['formTemplateId'] = formTemplateRevisionId || data['formTemplateId'];\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n async postFormRevision(params, data, formTemplateRevisionId, formId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormsApi.FormInstance;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n // only add these if provided. params could already have the value\n data['formTemplateId'] = formTemplateRevisionId || data['formTemplateId'];\n data['formId'] = formId || data['formId'];\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n}\n\nexport default FormInstanceManager;","// Objects API\r\nimport common from './common.js';\r\nimport ModelsManager from './objectsApi/modelsManager.js';\r\nimport ObjectsManager from './objectsApi/objectsManager.js';\r\nimport yaml from 'js-yaml';\r\nimport fs from 'fs';\r\nimport { fileURLToPath } from 'url';\r\nimport path from 'path';\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = path.dirname(__filename);\r\n\r\nexport class ObjectsApi {\r\n constructor(sessionToken, objectsApiConfig) {\r\n if(!sessionToken['tokenType'] && sessionToken['tokenType'] != 'jwt') {\r\n return;\r\n }\r\n\r\n const yamlConfig = yaml.load(fs.readFileSync(__dirname + '/config.yml', 'utf8'));\r\n this._httpHelper = new common.httpHelper(sessionToken, yamlConfig);\r\n\r\n this.isEnabled = objectsApiConfig['isEnabled'] || false;\r\n this.baseUrl = objectsApiConfig['apiUrl'] || null;\r\n\r\n if(this.isEnabled) {\r\n this.models = new ModelsManager(this._httpHelper);\r\n this.objects = new ObjectsManager(this._httpHelper);\r\n }\r\n }\r\n}\r\n\r\nexport default ObjectsApi;\r\n","export class ModelsManager {\n constructor(httpHelper){\n this._httpHelper = httpHelper;\n }\n\n /**\n * Retrieves a list of available models\n * @param {object} params - Optional URL parameters to include in the request\n */\n async getModels(params) {\n const resourceUri = this._httpHelper._config.ResourceUri.ObjectsApi.Models;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n params = params || {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n /**\n * Retrieves a specific model by its ID\n * @param {string} modelId - The ID (Guid) for the requested model\n * @param {object} params - Optional URL parameters to include in the request\n */\n async getModelById(modelId, params) {\n let resourceUri = this._httpHelper._config.ResourceUri.ObjectsApi.ModelById;\n resourceUri = resourceUri.replace('{id}', modelId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n params = params || {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default ModelsManager;","export class ObjectsManager {\n constructor(httpHelper){\n this._httpHelper = httpHelper;\n }\n\n /**\n * Retrieves a specific object by its ID\n * @param {string} objectId - The ID (Guid) for the requested object\n * @param {object} params - Optional URL parameters to include in the request\n */\n async getObject(objectId, params) {\n let resourceUri = this._httpHelper._config.ResourceUri.ObjectsApi.ObjectById;\n resourceUri = resourceUri.replace('{id}', objectId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n params = params || {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n /**\n * Retrieves a paged list of objects associated with a given model\n * @param {string} modelId - The ID (Guid) for the requested model to search\n * @param {object} data - Data to send in the request body\n * @param {object} params - Optional URL parameters to include in the request\n */\n async getObjectsByModelId(modelId, data, params) {\n let resourceUri = this._httpHelper._config.ResourceUri.ObjectsApi.ObjectSearchByModelId;\n resourceUri = resourceUri.replace('{modelId}', modelId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n data = data || {};\n params = params || {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n /**\n * Creates a new object adhering to a given model\n * @param {string} modelId - The ID (Guid) used to create a new object for that model\n * @param {object} data - Data to send in the request body\n * @param {object} params - Optional URL parameters to include in the request\n */\n async createObject(modelId, data, params) {\n const resourceUri = this._httpHelper._config.ResourceUri.ObjectsApi.Object;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n data = data || {};\n params = params || {};\n\n data['modelId'] = modelId || data['modelId'];\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n /**\n * Updates an existing object by its ID (Guid) and revision ID (Guid)\n * @param {string} objectId - The ID (Guid) for the requested object to update\n * @param {string} objectRevisionId - The revision ID (Guid) for the requested object to update\n * @param {object} data - Data to send in the request body\n * @param {object} params - Optional URL parameters to include in the request\n */\n async updateObject(objectId, objectRevisionId, data, params) {\n let resourceUri = this._httpHelper._config.ResourceUri.ObjectsApi.ObjectById;\n resourceUri = resourceUri.replace('{id}', objectId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n data = data || {};\n params = params || {};\n\n data['revisionId'] = objectRevisionId || data['revisionId'];\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n /**\n * Deletes an existing object by its ID (Guid)\n * @param {string} objectId - The ID (Guid) for the requested object to delete\n * @param {object} params - Optional URL parameters to include in the request\n */\n async deleteObject(objectId, params) {\n let resourceUri = this._httpHelper._config.ResourceUri.ObjectsApi.ObjectById;\n resourceUri = resourceUri.replace('{id}', objectId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n params = params || {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default ObjectsManager;","// Studio API\r\nimport common from './common.js';\r\nimport WorkflowManager from './studioApi/workflowManager.js';\r\nimport yaml from 'js-yaml';\r\nimport fs from 'fs';\r\nimport { fileURLToPath } from 'url';\r\nimport path from 'path';\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = path.dirname(__filename);\r\n\r\nexport class StudioApi {\r\n constructor(sessionToken, studioApiConfig){\r\n if(!sessionToken['tokenType'] && sessionToken['tokenType'] != 'jwt'){\r\n return;\r\n }\r\n\r\n const yamlConfig = yaml.load(fs.readFileSync(__dirname + '/config.yml', 'utf8'));\r\n this._httpHelper = new common.httpHelper(sessionToken, yamlConfig);\r\n\r\n this.isEnabled = studioApiConfig['isEnabled'] || false;\r\n this.baseUrl = studioApiConfig['studioApiUrl'] || null;\r\n\r\n if(this.isEnabled){\r\n this.workflow = new WorkflowManager(this._httpHelper);\r\n }\r\n }\r\n}\r\n\r\nexport default StudioApi;\r\n","export class WorkflowManager {\n constructor(httpHelper){\n this._httpHelper = httpHelper;\n }\n\n async getWorkflow(workflowId){\n const resourceUri = this._httpHelper._config.ResourceUri.StudioApi.WorkflowLatestPublishedId.replace('{id}', workflowId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n const data = {};\n const params = {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n async getWorkflowByName(workflowName){\n const resourceUri = this._httpHelper._config.ResourceUri.StudioApi.WorkflowLatestPublished;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n const data = {};\n const params = { name: workflowName };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n async getWorkflowVariables(params, workflowId){\n const resourceUri = this._httpHelper._config.ResourceUri.StudioApi.WorkflowVariables.replace('{id}', workflowId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n const data = {};\n params = params || {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n /**\n * Triggers workflow\n * @param {string} workflowId\n * @param {number} workflowRevision\n * @param {string} objectId\n * @param {object[]} workflowVariables - workflow values to be submitted to the workflow\n * * @param {string} workflowVariables[].name = name of variable\n * * @param {*} workflowVariables[].value - value to be passed\n * * @param {number} workflowVariables[].dataType - Text: 1, Number: 2, Date: 3, Boolean: 4\n */\n async triggerWorkflow(workflowId, workflowRevision, objectId, workflowVariables){\n const resourceUri = this._httpHelper._config.ResourceUri.StudioApi.WorkflowRun.replace('{id}', workflowId).replace('{revision}', workflowRevision);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n const data = {\n objectId,\n reference: 'API',\n data: {\n workflowVariables,\n dataSetVariables: []\n }\n };\n const params = {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n /**\n * Terminates the workflow instance\n * @param {string} workflowId\n * @param {string} instanceId\n * @returns\n */\n async terminateWorkflow(workflowId, instanceId){\n const resourceUri = this._httpHelper._config.ResourceUri.StudioApi.WorkflowTerminate.replace('{workflowId}', workflowId).replace('{instanceId}', instanceId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n const data = {};\n const params = {};\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n /**\n * Returns workflow history for an object under the provided workflow\n * @param {string} workflowId\n * @param {string} objectId\n * @returns\n */\n async GetWorkflowHistoryForObject(objectId, workflowId){\n const resourceUri = this._httpHelper._config.ResourceUri.StudioApi.WorkflowHistoryObject.replace('{workflowId}', workflowId).replace('{objectId}', objectId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n const data = {};\n const params = {};\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n /**\n * Returns the running workflow, if any, for an object under the provided workflow\n * @param {string} workflowId\n * @param {string} objectId\n * @returns\n */\n async GetRunningWorkflowForObject(objectId, workflowId){\n const resourceUri = this._httpHelper._config.ResourceUri.StudioApi.WorkflowHistoryRunningObject.replace('{workflowId}', workflowId).replace('{objectId}', objectId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n const data = {};\n const params = {};\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n}\n\nexport default WorkflowManager;","// Notifications API\r\nimport common from './common.js';\r\nimport UserNotificationsManager from './notificationsApi/userNotificationsManager.js';\r\nimport yaml from 'js-yaml';\r\nimport fs from 'fs';\r\nimport { fileURLToPath } from 'url';\r\nimport path from 'path';\r\n\r\nconst __filename = fileURLToPath(import.meta.url);\r\nconst __dirname = path.dirname(__filename);\r\n\r\nexport class NotificationsApi {\r\n constructor(sessionToken, notificationsApiConfig) {\r\n if(!sessionToken['tokenType'] && sessionToken['tokenType'] != 'jwt'){\r\n return;\r\n }\r\n\r\n const yamlConfig = yaml.load(fs.readFileSync(__dirname + '/config.yml', 'utf8'));\r\n this._httpHelper = new common.httpHelper(sessionToken, yamlConfig);\r\n\r\n this.isEnabled = notificationsApiConfig['isEnabled'] || false;\r\n this.baseUrl = notificationsApiConfig['apiUrl'] || null;\r\n\r\n if (this.isEnabled) {\r\n this.users = new UserNotificationsManager(this._httpHelper);\r\n }\r\n }\r\n}\r\n\r\nexport default NotificationsApi;\r\n","export class UserNotificationsManager {\n constructor (httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n async forceUIRefresh(userGuid) {\n const resourceUri = this._httpHelper._config.ResourceUri.NotificationsApi.ForceUIRefresh.replace('{id}', userGuid);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n const params = {};\n const data = {};\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n}\n\nexport default UserNotificationsManager;","export class Constants {\n constructor() {\n // Empty constructor - properties are defined as instance properties\n }\n\n alertEventIds = {\n // Folder Events\n folderSecurityModified: \"F06FD123-2C52-4F43-9122-34335A5BD8C6\", // \"CategorySecurity\"\n childFolderSecurityModified: \"30167D46-86CF-4E89-B1AE-FC00BB378F67\", // \"CategorySecurityCascade\"\n folderDocumentAdded: \"3702CFBF-555C-4032-BFB2-E25829788BAC\", // \"NewCategoryDoc\"\n childFolderDocumentAdded: \"28946E3C-AEAF-402B-BCE3-8DEAC3D19877\", // \"NewCategoryDocCascade\"\n\n // Document Events\n documentCheckedIn: \"D47804AB-AEE9-4002-BAB5-9F1AC0366076\", // \"CheckIn\"\n documentCheckedOut: \"4BBA55C1-7AF6-48FF-BFBE-EC7A58EB7F01\", // \"CheckOut\"\n documentDetailsModified: \"3B9D493F-2B45-4877-ABC1-5CA74F92723D\", // \"DocumentDetails\"\n documentSecurityModified: \"BAC187DC-78A8-4A8B-B50F-DB5D5AEE11B9\", // \"DocumentSecurity\"\n documentViewed: \"140B9E97-8D93-48D0-837B-AB4FD419B6D6\", // \"DocumentViewed\"\n\n // Project Events\n projectDocumentAddedOrRemoved: \"300DB724-5C51-4C38-B2E2-FFE19634A373\", // \"NewProjectDoc\"\n projectViewed: \"92F0C5F4-68DC-4309-9ABF-13B8E2198F79\" // \"ProjectView\"\n };\n\n securityRoles = {\n // RoleType\n Owner: \"Owner\",\n Editor: \"Editor\",\n Viewer: \"Viewer\"\n };\n\n securityMemberType = {\n // MemberType\n User: \"User\",\n Group: \"Group\"\n };\n\n relationType = {\n Parent: \"Parent\",\n Child: \"Child\",\n Peer: \"Peer\"\n };\n}\n\nexport default Constants;\n","export class ConfigurationManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getDocApiConfig() {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.ConfigurationDocApi);\n const opts = { method: 'GET' };\n const params = {};\n const data = {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n getFormsApiConfig() {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.ConfigurationFormsApi);\n const opts = { method: 'GET' };\n const params = {};\n const data = {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n getObjectsApiConfig() {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.ConfigurationObjectsApi);\n const opts = { method: 'GET' };\n const params = {};\n const data = {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n getStudioApiConfig() {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.ConfigurationStudioApi);\n const opts = { method: 'GET' };\n const params = {};\n const data = {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n getNotificationsApiConfig() {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.ConfigurationNotificationApi);\n const opts = { method: 'GET' };\n const params = {};\n const data = {};\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n}\n\nexport default ConfigurationManager;\n","export class EmailManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n postEmails(params, data) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.Emails);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n postEmailsWithAttachments(params, data, fileObjs) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.Emails);\n const opts = { method: 'POSTSTREAM' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data, fileObjs);\n }\n}\n\nexport default EmailManager;\n","import createDebug from 'debug';\n\nconst debug = createDebug('visualvault:forms');\n\n/**\n * Helper class for form field return values\n */\nexport class ReturnField {\n /** @type {string} */ id;\n /** @type {string} */ name;\n /** @type {*} */ value;\n /** @type {boolean} */ isError;\n /** @type {string} */ errorMessage;\n\n /**\n * @param {string} id - Field ID\n * @param {string} name - Field name\n * @param {*} value - Field value\n * @param {boolean} isError - Whether field has an error\n * @param {string} errorMessage - Error message if any\n */\n constructor(id, name, value, isError, errorMessage) {\n this.id = id;\n this.name = name;\n this.value = value;\n this.isError = isError;\n this.errorMessage = errorMessage;\n }\n}\n\n/**\n * Helper class for managing form field collections\n */\nexport class FormFieldCollection {\n /**\n * @param {Array<*>} ffColl - Array of form fields\n */\n constructor(ffColl) {\n this._ffColl = ffColl;\n }\n\n /**\n * Get a form field by name\n * @param {string} name - Field name to search for\n * @returns {*} The field or null if not found\n */\n getFormFieldByName(name) {\n const fieldName = name.toLowerCase();\n return this._ffColl.find(field =>\n field.name.toLowerCase() === fieldName\n ) || null;\n }\n\n /**\n * Get a form field by ID\n * @param {string} id - Field ID to search for\n * @returns {*} The field or null if not found\n */\n getFormFieldById(id) {\n const fieldId = id.toLowerCase();\n return this._ffColl.find(field =>\n field.id.toLowerCase() === fieldId\n ) || null;\n }\n\n /**\n * Get the array of all form fields\n * @returns {Array<*>} Array of form fields\n */\n getFieldArray() {\n return this._ffColl;\n }\n}\n\n/**\n * Manager class for forms API operations\n */\nexport class FormsManager {\n /**\n * @param {*} httpHelper - HTTP helper instance\n */\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n returnField(id, name, value, isError, errorMessage) {\n return new ReturnField(id, name, value, isError, errorMessage);\n }\n\n getFormTemplates(params) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.FormTemplates);\n const opts = { method: 'GET' };\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n /**\n * @param {string} templateName\n * @returns {Promise<{formsManager: FormsManager, templateIdGuid: string, templateRevisionIdGuid: string, error?: string}>}\n */\n async getFormTemplateIdByName(templateName) {\n const params = {\n fields: \"id, name, description, revision, revisionId\",\n q: `name eq '${templateName}'`\n };\n\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.FormTemplates);\n const opts = { method: 'GET' };\n\n try {\n const resp = await this._httpHelper.doVvClientRequest(url, opts, params, null);\n const templateResp = JSON.parse(resp);\n\n let templateId;\n let templateRevisionId;\n\n if (templateResp.data && templateResp.data.length > 0) {\n templateId = templateResp.data[0].id;\n templateRevisionId = templateResp.data[0].revisionId;\n }\n\n return {\n formsManager: this,\n templateIdGuid: templateId,\n templateRevisionIdGuid: templateRevisionId\n };\n } catch (error) {\n debug('Failed to get form template by name \"%s\": %s', templateName, error.message);\n\n return {\n formsManager: this,\n templateIdGuid: '',\n templateRevisionIdGuid: '',\n error: error.message\n };\n }\n }\n\n async getForms(params, formTemplateId) {\n // If formTemplateId is not a Guid assume it's a template name and fetch the Guid\n if (!this.isGuid(formTemplateId)) {\n const resp = await this.getFormTemplateIdByName(formTemplateId);\n const templateIdGuid = resp.templateIdGuid;\n const resourceUri = this._httpHelper._config.ResourceUri.Forms.replace('{id}', templateIdGuid);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n } else {\n const resourceUri = this._httpHelper._config.ResourceUri.Forms.replace('{id}', formTemplateId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n }\n\n setFieldImage(formId, fieldId, imageId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstanceImage.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri);\n\n const data = { fieldId, imageId };\n const params = { fieldId, imageId };\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n importFormTemplate(data, formTemplateId, buffer) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormTemplatesImport.replace('{id}', formTemplateId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUTSTREAM' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data, buffer);\n }\n\n async postForms(params, data, formTemplateId) {\n // If formTemplateId is not a Guid assume it's a template name and fetch the Guid\n if (!this.isGuid(formTemplateId)) {\n const resp = await this.getFormTemplateIdByName(formTemplateId);\n const templateIdGuid = resp.templateIdGuid;\n const resourceUri = this._httpHelper._config.ResourceUri.Forms.replace('{id}', templateIdGuid);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n } else {\n const resourceUri = this._httpHelper._config.ResourceUri.Forms.replace('{id}', formTemplateId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n }\n\n async postFormRevision(params, data, formTemplateId, formId) {\n // If formTemplateId is not a Guid assume it's a template name and fetch the Guid\n if (!this.isGuid(formTemplateId)) {\n const resp = await this.getFormTemplateIdByName(formTemplateId);\n const templateIdGuid = resp.templateIdGuid;\n const resourceUri = this._httpHelper._config.ResourceUri.Forms.replace('{id}', templateIdGuid);\n const url = this._httpHelper.getUrl(resourceUri + '/' + formId);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n } else {\n const resourceUri = this._httpHelper._config.ResourceUri.Forms.replace('{id}', formTemplateId);\n const url = this._httpHelper.getUrl(resourceUri + '/' + formId);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n }\n\n postFormRevisionByFormId(params, data, formId) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.FormsId).replace('{id}', formId);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n updateFormInstanceOriginator(formInstanceId, newOriginatorUsID) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstanceUpdateOriginator.replace('{id}', formInstanceId);\n const url = this._httpHelper.getUrl(resourceUri);\n\n const params = { userId: newOriginatorUsID };\n const data = null;\n const opts = { method: \"PUT\" };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n relateForm(formId, relateToId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/relateForm');\n\n const params = { relateToId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n relateFormByDocId(formId, relateToDocId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/relateForm');\n\n const params = { relateToDocId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n relateDocument(formId, relateToId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/relateDocument');\n\n const params = { relateToId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n relateDocumentByDocId(formId, relateToDocId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/relateDocument');\n\n const params = { relateToDocId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n relateProject(formId, relateToId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/relateProject');\n\n const params = { relateToId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n relateProjectByName(formId, relateToProjectName) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/relateProject');\n\n const params = { relateToProjectName };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n unrelateForm(formId, relateToId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/unrelateForm');\n\n const params = { relateToId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n unrelateFormByDocId(formId, relateToDocId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/unrelateForm');\n\n const params = { relateToDocId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n unrelateDocument(formId, relateToId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/unrelateDocument');\n\n const params = { relateToId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n unrelateDocumentByDocId(formId, relateToDocId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/unrelateDocument');\n\n const params = { relateToDocId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n unrelateProject(formId, relateToId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/unrelateProject');\n\n const params = { relateToId };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n unrelateProjectByName(formId, relateToProjectName) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri + '/unrelateProject');\n\n const params = { relateToProjectName };\n const data = null;\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n getFormRelatedDocs(formId, params) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstanceRelatedDocs.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n if (params === undefined) {\n params = null;\n }\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getFormRelatedForms(formId, params) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstanceRelatedForms.replace('{id}', formId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n if (params === undefined) {\n params = null;\n }\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n isGuid(stringToTest) {\n let testString = stringToTest;\n if (testString[0] === \"{\") {\n testString = testString.substring(1, testString.length - 1);\n }\n const regexGuid = /^(\\{){0,1}[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}(\\}){0,1}$/gi;\n return regexGuid.test(testString);\n }\n\n getFormInstanceById(templateId, instanceId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormId.replace('{id}', templateId).replace('{formId}', instanceId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n getFormInstancePDF(templateId, instanceId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormIdPdf.replace('{id}', templateId).replace('{formId}', instanceId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GETSTREAM' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n getFormTemplateFields(templateId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormDesignerFormsTemplatesIdFields.replace('{id}', templateId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n deleteFormInstance(instanceId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormInstance.replace('{id}', instanceId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n releaseFormTemplate(formTemplateId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FormTemplatesRelease.replace('{id}', formTemplateId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n}\n\n// Default export for backward compatibility\nexport default FormsManager;\n","export class GroupsManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getGroups(params) {\n const resourceUri = this._httpHelper._config.ResourceUri.GetGroups;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getGroupsUsers(params, groupId) {\n const resourceUri = this._httpHelper._config.ResourceUri.GroupsUsers.replace('{id}', groupId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getGroupUser(params, groupId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.GroupsAddUser.replace('{groupId}', groupId).replace('{userId}', userId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n addUserToGroup(params, groupId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.GroupsAddUser.replace('{groupId}', groupId).replace('{userId}', userId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n removeUserFromGroup(params, groupId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.GroupsAddUser.replace('{groupId}', groupId).replace('{userId}', userId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default GroupsManager;\n","export class LibraryManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getFolders(params) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.Folders);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n postFolderByPath(params, data, folderPath) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.Folders);\n\n data.folderpath = folderPath;\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n // Valid fields to be defined on the \"data\" parameter to be updated on the folder: name, description\n putFolder(params, data, folderId) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.FoldersId.replace('{id}', folderId));\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n deleteFolder(folderId) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.FoldersId.replace('{id}', folderId));\n const opts = { method: 'DELETE' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n copyFolder(params, data) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.FoldersCopy);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n moveFolder(params, data) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.FoldersMove);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n getDocuments(params, folderId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Documents.replace('{id}', folderId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n updateFolderIndexFieldOverrideSettings(folderId, fieldId, queryId, displayField, valueField, dropDownListId, required, defaultValue) {\n const data = {\n queryId,\n queryValueField: valueField,\n queryDisplayField: displayField,\n dropDownListId,\n required,\n defaultValue\n };\n\n const resourceUri = this._httpHelper._config.ResourceUri.FoldersIdIndexFieldsId.replace('{id}', folderId).replace('{indexFieldId}', fieldId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n getFolderIndexFields(params, folderId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FolderIndexFields.replace('{id}', folderId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n postFolderAlertSubscription(folderId, eventId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FolderAlertsId.replace('{folderId}', folderId).replace('{eventId}', eventId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n const params = {\n usId: userId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n deleteFolderAlertSubscription(folderId, eventId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FolderAlertsId.replace('{folderId}', folderId).replace('{eventId}', eventId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n const params = {\n usId: userId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getFolderSecurityMembers(params, folderId) {\n const resourceUri = this._httpHelper._config.ResourceUri.FolderSecurity.replace('{folderId}', folderId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n putFolderSecurityMember(folderId, memberId, memberType, securityRole, cascadeSecurityChanges) {\n const resourceUri = this._httpHelper._config.ResourceUri.FolderSecurityId.replace('{folderId}', folderId).replace('{memberId}', memberId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n const data = {\n memberType,\n securityRole,\n cascadeSecurityChanges\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n deleteFolderSecurityMember(folderId, memberId, cascadeSecurityChanges) {\n const resourceUri = this._httpHelper._config.ResourceUri.FolderSecurityId.replace('{folderId}', folderId).replace('{memberId}', memberId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n const params = {\n cascadeSecurityChanges\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default LibraryManager;\n","export class SitesManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getSites(params) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.Sites);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n postSites(params, data) {\n const resourceUri = this._httpHelper._config.ResourceUri.Sites;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n putSites(params, data, siteId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Sites;\n const url = this._httpHelper.getUrl(resourceUri + '/' + siteId);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n getGroups(params, siteId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Groups.replace('{id}', siteId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n postGroups(params, data, siteId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Groups.replace('{id}', siteId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n putGroups(params, data, siteId, grId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Groups.replace('{id}', siteId);\n const url = this._httpHelper.getUrl(resourceUri + '/' + grId);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n changeUserSite(userId, newSiteId) {\n const resourceUri = this._httpHelper._config.ResourceUri.ChangeUserSite;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n const data = {\n UserId: userId,\n NewSiteId: newSiteId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n}\n\nexport default SitesManager;\n","export class UsersManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getUsers(params, siteId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Users.replace('{id}', siteId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n postUsers(params, data, siteId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Users.replace('{id}', siteId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n putUsers(params, data, siteId, usId) {\n const resourceUri = this._httpHelper._config.ResourceUri.Users.replace('{id}', siteId);\n const url = this._httpHelper.getUrl(resourceUri + '/' + usId);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n putUsersEndpoint(params, data, usId) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.User + '/' + usId);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n getUser(params) {\n const resourceUri = this._httpHelper._config.ResourceUri.User;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getUserById(params, usId) {\n const resourceUri = this._httpHelper._config.ResourceUri.UserById.replace('{id}', usId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getUserGroups(params, usId) {\n const resourceUri = this._httpHelper._config.ResourceUri.UserGroups.replace('{id}', usId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getUserSupervisors(params, usId) {\n const resourceUri = this._httpHelper._config.ResourceUri.UserSupervisors.replace('{id}', usId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getUserSupervisees(params, usId) {\n const resourceUri = this._httpHelper._config.ResourceUri.UserSupervisees.replace('{id}', usId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getUserLoginToken(usId) {\n const resourceUri = this._httpHelper._config.ResourceUri.UserWebToken.replace('{id}', usId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n const params = [];\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getUserJwt(audience) {\n const resourceUri = this._httpHelper._config.ResourceUri.UsersGetJwt;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n const params = {};\n if (audience) {\n params['audience'] = audience;\n }\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getCurrentUser() {\n const resourceUri = this._httpHelper._config.ResourceUri.UsersWhoAmI;\n const baseUrl = this._httpHelper._sessionToken.baseUrl;\n const url = baseUrl + \"/api/v1\" + resourceUri;\n const opts = { method: 'GET' };\n const params = [];\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n resetPassword(usId, sendEmail = true) {\n const resourceUri = this._httpHelper._config.ResourceUri.UsersPassword.replace('{id}', usId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n const params = [];\n\n const data = {\n resetPassword: true,\n sendEmail\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n updateUserId(usId, newUserId) {\n const resourceUri = this._httpHelper._config.ResourceUri.UsersIdUserId.replace('{id}', usId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n const params = [];\n\n const data = {\n userId: newUserId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n}\n\nexport default UsersManager;\n","export class CurrentUserManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n /**\n * Gets the currently authenticated user's information.\n * @param {Object} [params] - Optional query parameters.\n * @returns {Promise<string>} A promise that resolves with the current user's information as a JSON string.\n */\n async getCurrentUser(params) {\n var resourceUri = this._httpHelper._config.ResourceUri.UsersMe;\n var url = this._httpHelper.getUrl(resourceUri);\n var opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default CurrentUserManager;\n","export class ScheduledProcessManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n postCompletion(id, action, result, message) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.ScheduledProcess) + '/' + id;\n const opts = { method: 'POST' };\n\n const params = {\n action\n };\n\n if (result !== null && (typeof result === 'boolean' || result.length > 0)) {\n params.result = result.toString();\n }\n\n if (message && message.length > 0) {\n params.message = message;\n }\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n runAllScheduledProcesses() {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.ScheduledProcess) + '/Run';\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n}\n\nexport default ScheduledProcessManager;\n","export class CustomQueryManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getCustomQueryResultsByName(queryName, params) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.CustomQuery);\n const opts = { method: 'GET' };\n\n if (!params) {\n params = {};\n }\n params.queryName = queryName;\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getCustomQueryResultsById(id, params) {\n const url = this._httpHelper.getUrl(this._httpHelper._config.ResourceUri.CustomQuery + '/' + id);\n const opts = { method: 'GET' };\n\n if (!params) {\n params = {};\n }\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default CustomQueryManager;\n","export class CustomerManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n createCustomerInvite(data) {\n const baseUrl = this._httpHelper._sessionToken.baseUrl;\n let url = baseUrl + \"/api/v1/\" + this._httpHelper._config.ResourceUri.CustomerInvite;\n\n url = url.replace(/\\/api\\/\\//g, '/api/');\n url = url.replace(/\\/v1\\/\\//g, '/v1/');\n\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, '', data);\n }\n\n assignUser(customerId, data) {\n const baseUrl = this._httpHelper._sessionToken.baseUrl;\n const url = baseUrl + \"/api/v1/\" + this._httpHelper._config.ResourceUri.CustomerAssignUser.replace('{customerId}', customerId);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, '', data);\n }\n}\n\nexport default CustomerManager;\n","import createDebug from 'debug';\n\nconst debug = createDebug('visualvault:customer-db');\n\nexport class CustomerDatabaseManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n assignUser(customerId, data) {\n const baseUrl = this._httpHelper._sessionToken.baseUrl;\n const url = baseUrl + \"/api/v1/\" + this._httpHelper._config.ResourceUri.CustomerDatabaseAssignUser.replace('{databaseId}', customerId);\n const opts = { method: 'PUT' };\n\n return this._httpHelper.doVvClientRequest(url, opts, '', data);\n }\n\n removeUser(authenticationUserId, databaseId) {\n const baseUrl = this._httpHelper._sessionToken.baseUrl;\n let url = baseUrl + \"/api/v1\" + this._httpHelper._config.ResourceUri.UserDelete.replace('{databaseId}', databaseId);\n url = url.replace(\"{authenticationUserId}\", authenticationUserId);\n debug('Removing user %s from database %s: %s', authenticationUserId, databaseId, url);\n const opts = { method: 'DELETE' };\n const params = [];\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default CustomerDatabaseManager;\n","export class FilesManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getFileBytesQuery(query) {\n const resourceUri = this._httpHelper._config.ResourceUri.FilesQuery + query;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GETSTREAM' };\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n getFileBytesId(id) {\n const resourceUri = this._httpHelper._config.ResourceUri.FilesId.replace('{id}', id);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GETSTREAM' };\n return this._httpHelper.doVvClientRequest(url, opts, null, null);\n }\n\n postFile(data, buffer) {\n const resourceUri = this._httpHelper._config.ResourceUri.Files;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POSTSTREAM' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data, buffer);\n }\n}\n\nexport default FilesManager;\n","export class ScriptsManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n runWebService(serviceName, serviceData, usId) {\n let resourceUri = this._httpHelper._config.ResourceUri.Scripts + '?name=' + serviceName;\n if (typeof usId !== 'undefined' && usId !== null) {\n resourceUri += `&usId=${usId}`;\n }\n\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n return this._httpHelper.doVvClientRequest(url, opts, null, serviceData);\n }\n\n completeWorkflowWebService(executionId, workflowVariables) {\n const resourceUri = this._httpHelper._config.ResourceUri.ScriptsCompleteWf;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n const postData = {\n executionId,\n workflowVariables\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, postData);\n }\n}\n\nexport default ScriptsManager;\n","export class DocumentsManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n postDoc(data) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsPost;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n postDocWithFile(data, fileData) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsPost;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POSTSTREAM' };\n return this._httpHelper.doVvClientRequest(url, opts, null, data, fileData);\n }\n\n copyDocument(params, data, documentId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsIdCopy.replace('{id}', documentId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n moveDocument(params, data, documentId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsIdMove.replace('{id}', documentId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n return this._httpHelper.doVvClientRequest(url, opts, params, data);\n }\n\n deleteDocument(params, revisionId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsId.replace('{id}', revisionId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getDocumentRevision(params, revisionId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsId.replace('{id}', revisionId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getDocuments(params) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsPost;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n putDocumentIndexFields(data, documentId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentIndexFields.replace('{id}', documentId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n postDocumentAlertSubscription(documentId, eventId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentAlertsId.replace('{documentId}', documentId).replace('{eventId}', eventId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n const params = {\n usId: userId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n deleteDocumentAlertSubscription(documentId, eventId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentAlertsId.replace('{documentId}', documentId).replace('{eventId}', eventId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n const params = {\n usId: userId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n getDocumentRevisionOcrProperties(params, revisionId) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsIdOcr.replace('{id}', revisionId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n relateDocuments(revisionId, relateToRevisionId, relateType) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsIdRelateDocument.replace('{id}', revisionId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n const data = {\n relateToId: relateToRevisionId,\n relateType\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n\n updateDocumentExpiration(documentId, expirationDate) {\n const resourceUri = this._httpHelper._config.ResourceUri.DocumentsIdExpiration.replace('{id}', documentId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n const data = {\n expirationDate\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, data);\n }\n}\n\nexport default DocumentsManager;\n","export class ProjectsManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n postProjectAlertSubscription(projectId, eventId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.ProjectAlertsId.replace('{projectId}', projectId).replace('{eventId}', eventId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n const params = {\n usId: userId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n deleteProjectAlertSubscription(projectId, eventId, userId) {\n const resourceUri = this._httpHelper._config.ResourceUri.ProjectAlertsId.replace('{projectId}', projectId).replace('{eventId}', eventId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n const params = {\n usId: userId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default ProjectsManager;\n","export class IndexFieldsManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getIndexFields(params) {\n const resourceUri = this._httpHelper._config.ResourceUri.IndexFields;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default IndexFieldsManager;\n","export class OutsideProcessesManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getOutsideProcesses(params) {\n const resourceUri = this._httpHelper._config.ResourceUri.OutsideProcesses;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default OutsideProcessesManager;\n","export class SecurityMembersManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n addSecurityMember(parentId, memberId, roleType, isGroup) {\n const resourceUri = this._httpHelper._config.ResourceUri.SecurityMembers;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'POST' };\n\n const postData = {\n parentId,\n memberId,\n role: roleType,\n isGroup\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, postData);\n }\n\n getSecurityMembersForParentId(parentId) {\n const resourceUri = this._httpHelper._config.ResourceUri.SecurityMembers;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n const params = {\n parentId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n removeSecurityMember(parentId, memberId) {\n const resourceUri = this._httpHelper._config.ResourceUri.SecurityMembers;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'DELETE' };\n\n const params = {\n parentId,\n memberId\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n\n updateSecurityMember(parentId, memberId, roleType) {\n const resourceUri = this._httpHelper._config.ResourceUri.SecurityMembers;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'PUT' };\n\n const postData = {\n parentId,\n memberId,\n role: roleType\n };\n\n return this._httpHelper.doVvClientRequest(url, opts, null, postData);\n }\n}\n\nexport default SecurityMembersManager;\n","export class LayoutsManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getLayout() {\n const resourceUri = this._httpHelper._config.ResourceUri.Layout;\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GET' };\n\n return this._httpHelper.doVvClientRequest(url, opts, {}, null);\n }\n}\n\nexport default LayoutsManager;\n","export class ReportsManager {\n constructor(httpHelper) {\n this._httpHelper = httpHelper;\n }\n\n getReportPDF(reportId, params) {\n const resourceUri = this._httpHelper._config.ResourceUri.ReportServerPDF.replace('{id}', reportId);\n const url = this._httpHelper.getUrl(resourceUri);\n const opts = { method: 'GETSTREAM' };\n\n return this._httpHelper.doVvClientRequest(url, opts, params, null);\n }\n}\n\nexport default ReportsManager;\n"],"mappings":"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","names":["createDebug","yaml","fs","Authorize","import_debug","debug","createDebug","Authorize","import_js_yaml","import_fs","__filename","path","yaml","fs","import_js_yaml","import_fs","import_url","import_path","__filename","__dirname","path","yaml","fs","import_js_yaml","import_fs","import_url","import_path","__filename","__dirname","path","yaml","fs","import_js_yaml","import_fs","import_url","import_path","__filename","__dirname","path","yaml","fs","import_js_yaml","import_fs","import_url","import_path","__filename","__dirname","path","yaml","fs","import_js_yaml","import_fs","import_url","import_path","import_debug","import_debug","debug","createDebug","import_debug","debug","createDebug","debug","createDebug","__filename","__dirname","path","yaml","fs","Authorize"]}