@rockcarver/frodo-lib 0.16.2-2 → 0.16.2-4

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 (128) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/cjs/api/AgentApi.js +221 -0
  3. package/cjs/api/AgentApi.js.map +1 -0
  4. package/cjs/api/AgentApi.test.js.map +1 -0
  5. package/cjs/api/ApiTypes.js.map +1 -1
  6. package/cjs/api/BaseApi.js +17 -13
  7. package/cjs/api/BaseApi.js.map +1 -1
  8. package/cjs/ext/axios-curlirize/curlirize.js +47 -0
  9. package/cjs/ext/axios-curlirize/curlirize.js.map +1 -0
  10. package/cjs/ext/axios-curlirize/lib/CurlHelper.js +74 -0
  11. package/cjs/ext/axios-curlirize/lib/CurlHelper.js.map +1 -0
  12. package/cjs/index.js +5 -1
  13. package/cjs/index.js.map +1 -1
  14. package/cjs/ops/AgentOps.js +805 -0
  15. package/cjs/ops/AgentOps.js.map +1 -0
  16. package/cjs/ops/AgentOps.test.js.map +1 -0
  17. package/cjs/ops/AuthenticateOps.js +8 -8
  18. package/cjs/ops/AuthenticateOps.js.map +1 -1
  19. package/cjs/ops/JourneyOps.test.js.map +1 -1
  20. package/cjs/ops/OpsTypes.js.map +1 -1
  21. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
  22. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
  23. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
  24. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
  25. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
  26. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
  27. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
  28. package/cjs/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/webserver.json +455 -0
  29. package/cjs/test/mocks/AgentApi/findAgentById/ajays_client.json +19 -0
  30. package/cjs/test/mocks/AgentApi/findAgentById/apacheagent.json +142 -0
  31. package/cjs/test/mocks/AgentApi/findAgentById/api_client.json +19 -0
  32. package/cjs/test/mocks/AgentApi/findAgentById/ig_chico.json +19 -0
  33. package/cjs/test/mocks/AgentApi/findAgentById/ig_mytestrun_com.json +29 -0
  34. package/cjs/test/mocks/AgentApi/findAgentById/javaAgent.json +190 -0
  35. package/cjs/test/mocks/AgentApi/findAgentById/tomcatagent.json +191 -0
  36. package/cjs/test/mocks/AgentApi/findAgentById/webserver.json +144 -0
  37. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +23 -0
  38. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
  39. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
  40. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +33 -0
  41. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/javaAgent.json +193 -0
  42. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/tomcatagent.json +195 -0
  43. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/apacheagent.json +145 -0
  44. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/webserver.json +148 -0
  45. package/cjs/test/mocks/AgentApi/findAgentByTypeAndId/not_found.json +8 -0
  46. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
  47. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
  48. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
  49. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
  50. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
  51. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
  52. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
  53. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json +455 -0
  54. package/cjs/test/mocks/AgentApi/getAgentTypes/agentTypes.json +54 -0
  55. package/cjs/test/mocks/AgentApi/getAgents/agents.json +3862 -0
  56. package/cjs/test/mocks/AgentApi/getAgentsByType/IdentityGatewayAgents.json +73 -0
  57. package/cjs/test/mocks/AgentApi/getAgentsByType/J2EEAgents.json +379 -0
  58. package/cjs/test/mocks/AgentApi/getAgentsByType/WebAgents.json +284 -0
  59. package/cjs/test/mocks/ForgeRockApiMockEngine.js +147 -20
  60. package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
  61. package/esm/api/AgentApi.mjs +164 -0
  62. package/esm/api/AgentApi.test.mjs +267 -0
  63. package/esm/api/BaseApi.mjs +17 -5
  64. package/esm/ext/axios-curlirize/curlirize.mjs +38 -0
  65. package/esm/ext/axios-curlirize/lib/CurlHelper.mjs +67 -0
  66. package/esm/index.mjs +2 -0
  67. package/esm/ops/AgentOps.mjs +576 -0
  68. package/esm/ops/AgentOps.test.mjs +1212 -0
  69. package/esm/ops/AuthenticateOps.mjs +8 -8
  70. package/esm/ops/JourneyOps.test.mjs +4 -8
  71. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
  72. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
  73. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
  74. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
  75. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
  76. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
  77. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
  78. package/esm/test/mocks/AgentApi/deleteAgentByTypeAndId/WebAgent/webserver.json +455 -0
  79. package/esm/test/mocks/AgentApi/findAgentById/ajays_client.json +19 -0
  80. package/esm/test/mocks/AgentApi/findAgentById/apacheagent.json +142 -0
  81. package/esm/test/mocks/AgentApi/findAgentById/api_client.json +19 -0
  82. package/esm/test/mocks/AgentApi/findAgentById/ig_chico.json +19 -0
  83. package/esm/test/mocks/AgentApi/findAgentById/ig_mytestrun_com.json +29 -0
  84. package/esm/test/mocks/AgentApi/findAgentById/javaAgent.json +190 -0
  85. package/esm/test/mocks/AgentApi/findAgentById/tomcatagent.json +191 -0
  86. package/esm/test/mocks/AgentApi/findAgentById/webserver.json +144 -0
  87. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +23 -0
  88. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
  89. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
  90. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +33 -0
  91. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/javaAgent.json +193 -0
  92. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/J2EEAgent/tomcatagent.json +195 -0
  93. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/apacheagent.json +145 -0
  94. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/WebAgent/webserver.json +148 -0
  95. package/esm/test/mocks/AgentApi/findAgentByTypeAndId/not_found.json +8 -0
  96. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +22 -0
  97. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json +22 -0
  98. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json +22 -0
  99. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json +32 -0
  100. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json +623 -0
  101. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json +630 -0
  102. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json +456 -0
  103. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json +455 -0
  104. package/esm/test/mocks/AgentApi/getAgentTypes/agentTypes.json +54 -0
  105. package/esm/test/mocks/AgentApi/getAgents/agents.json +3862 -0
  106. package/esm/test/mocks/AgentApi/getAgentsByType/IdentityGatewayAgents.json +73 -0
  107. package/esm/test/mocks/AgentApi/getAgentsByType/J2EEAgents.json +379 -0
  108. package/esm/test/mocks/AgentApi/getAgentsByType/WebAgents.json +284 -0
  109. package/esm/test/mocks/ForgeRockApiMockEngine.mjs +136 -20
  110. package/package.json +3 -4
  111. package/types/api/AgentApi.d.ts +51 -0
  112. package/types/api/AgentApi.d.ts.map +1 -0
  113. package/types/api/ApiTypes.d.ts +3 -0
  114. package/types/api/ApiTypes.d.ts.map +1 -1
  115. package/types/api/BaseApi.d.ts.map +1 -1
  116. package/types/ext/axios-curlirize/curlirize.d.ts +3 -0
  117. package/types/ext/axios-curlirize/curlirize.d.ts.map +1 -0
  118. package/types/ext/axios-curlirize/lib/CurlHelper.d.ts +11 -0
  119. package/types/ext/axios-curlirize/lib/CurlHelper.d.ts.map +1 -0
  120. package/types/index.d.ts +2 -0
  121. package/types/index.d.ts.map +1 -1
  122. package/types/ops/AgentOps.d.ts +210 -0
  123. package/types/ops/AgentOps.d.ts.map +1 -0
  124. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  125. package/types/ops/OpsTypes.d.ts +5 -1
  126. package/types/ops/OpsTypes.d.ts.map +1 -1
  127. package/types/test/mocks/ForgeRockApiMockEngine.d.ts +35 -2
  128. package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
@@ -8,7 +8,7 @@ import storage from '../storage/SessionStorage';
8
8
  import path from 'path';
9
9
  import { fileURLToPath } from 'url';
10
10
  import { curlirizeMessage, printMessage } from '../ops/utils/Console';
11
- import _curlirize from 'axios-curlirize';
11
+ import _curlirize from '../ext/axios-curlirize/curlirize';
12
12
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
13
  const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8'));
14
14
  axiosRetry(axios, {
@@ -107,7 +107,10 @@ export function generateAmApi(resource, requestOverride = {}) {
107
107
  let headers = {
108
108
  'User-Agent': userAgent,
109
109
  'Content-Type': 'application/json',
110
- 'Accept-API-Version': resource.apiVersion,
110
+ // only add API version if we have it
111
+ ...(resource.apiVersion && {
112
+ 'Accept-API-Version': resource.apiVersion
113
+ }),
111
114
  // only send session cookie if we know its name and value
112
115
  ...(storage.session.getCookieName() && storage.session.getCookieValue() && {
113
116
  Cookie: `${storage.session.getCookieName()}=${storage.session.getCookieValue()}`
@@ -151,8 +154,14 @@ export function generateAmApi(resource, requestOverride = {}) {
151
154
  export function generateOauth2Api(resource, requestOverride = {}) {
152
155
  let headers = {
153
156
  'User-Agent': userAgent,
154
- 'Accept-API-Version': resource.apiVersion,
155
- Cookie: `${storage.session.raw['cookieName']}=${storage.session.raw['cookieValue']}`
157
+ // only add API version if we have it
158
+ ...(resource.apiVersion && {
159
+ 'Accept-API-Version': resource.apiVersion
160
+ }),
161
+ // only send session cookie if we know its name and value
162
+ ...(storage.session.getCookieName() && storage.session.getCookieValue() && {
163
+ Cookie: `${storage.session.getCookieName()}=${storage.session.getCookieValue()}`
164
+ })
156
165
  };
157
166
  if (requestOverride['headers']) {
158
167
  headers = {
@@ -288,7 +297,10 @@ export function generateESVApi(resource, requestOverride = {}) {
288
297
  const headers = {
289
298
  'User-Agent': userAgent,
290
299
  'Content-Type': 'application/json',
291
- 'Accept-API-Version': resource.apiVersion
300
+ // only add API version if we have it
301
+ ...(resource.apiVersion && {
302
+ 'Accept-API-Version': resource.apiVersion
303
+ })
292
304
  };
293
305
  const requestDetails = {
294
306
  // baseURL: getTenantURL(storage.session.getTenant()),
@@ -0,0 +1,38 @@
1
+ import { CurlHelper } from './lib/CurlHelper';
2
+ function defaultLogCallback(curlResult, err = undefined) {
3
+ const {
4
+ command
5
+ } = curlResult;
6
+ if (err) {
7
+ console.error(err);
8
+ } else {
9
+ console.info(command);
10
+ }
11
+ }
12
+ export default ((instance, callback = defaultLogCallback) => {
13
+ instance.interceptors.request.use(req => {
14
+ try {
15
+ const curl = new CurlHelper(req);
16
+ req.curlObject = curl;
17
+ req.curlCommand = curl.generateCommand();
18
+ req.clearCurl = () => {
19
+ delete req.curlObject;
20
+ delete req.curlCommand;
21
+ delete req.clearCurl;
22
+ };
23
+ } catch (err) {
24
+ // Even if the axios middleware is stopped, no error should occur outside.
25
+ callback(null, err);
26
+ } finally {
27
+ if (req.curlirize !== false) {
28
+ callback({
29
+ command: req.curlCommand,
30
+ object: req.curlObject
31
+ });
32
+ }
33
+ // eslint-disable-next-line no-unsafe-finally
34
+ return req;
35
+ }
36
+ });
37
+ });
38
+ //# sourceMappingURL=curlirize.js.map
@@ -0,0 +1,67 @@
1
+ export class CurlHelper {
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+
4
+ constructor(config) {
5
+ this.request = config;
6
+ }
7
+ getHeaders() {
8
+ let headers = this.request.headers,
9
+ curlHeaders = '';
10
+
11
+ // get the headers concerning the appropriate method (defined in the global axios instance)
12
+ // eslint-disable-next-line no-prototype-builtins
13
+ if (headers.hasOwnProperty('common')) {
14
+ headers = this.request.headers[this.request.method];
15
+ }
16
+
17
+ // add any custom headers (defined upon calling methods like .get(), .post(), etc.)
18
+ for (const property in this.request.headers) {
19
+ if (!['common', 'delete', 'get', 'head', 'patch', 'post', 'put'].includes(property)) {
20
+ headers[property] = this.request.headers[property];
21
+ }
22
+ }
23
+ for (const property in headers) {
24
+ const header = `${property}:${headers[property]}`;
25
+ curlHeaders = `${curlHeaders} -H "${header}"`;
26
+ }
27
+ return curlHeaders.trim();
28
+ }
29
+ getMethod() {
30
+ return `-X ${this.request.method.toUpperCase()}`;
31
+ }
32
+ getBody() {
33
+ if (typeof this.request.data !== 'undefined' && this.request.data !== '' && this.request.data !== null && this.request.method.toUpperCase() !== 'GET') {
34
+ const data = typeof this.request.data === 'object' || Object.prototype.toString.call(this.request.data) === '[object Array]' ? JSON.stringify(this.request.data) : this.request.data;
35
+ return `--data '${data}'`.trim();
36
+ } else {
37
+ return '';
38
+ }
39
+ }
40
+ getUrl() {
41
+ if (this.request.baseURL) {
42
+ return this.request.baseURL + '/' + this.request.url;
43
+ }
44
+ return this.request.url;
45
+ }
46
+ getQueryString() {
47
+ let params = '',
48
+ i = 0;
49
+ for (const param in this.request.params) {
50
+ params += i !== 0 ? `&${param}=${this.request.params[param]}` : `?${param}=${this.request.params[param]}`;
51
+ i++;
52
+ }
53
+ return params;
54
+ }
55
+ getBuiltURL() {
56
+ let url = this.getUrl();
57
+ if (this.getQueryString() !== '') {
58
+ url = url.charAt(url.length - 1) === '/' ? url.substr(0, url.length - 1) : url;
59
+ url += this.getQueryString();
60
+ }
61
+ return url.trim();
62
+ }
63
+ generateCommand() {
64
+ return `curl ${this.getMethod()} ${this.getHeaders()} ${this.getBody()} "${this.getBuiltURL()}"`.trim().replace(/\s{2,}/g, ' ');
65
+ }
66
+ }
67
+ //# sourceMappingURL=CurlHelper.js.map
package/esm/index.mjs CHANGED
@@ -2,6 +2,7 @@ import Color from 'colors';
2
2
  Color.enable();
3
3
 
4
4
  // Api Layer
5
+ export * as AgentRaw from './api/AgentApi';
5
6
  export * as EmailTemplateRaw from './api/EmailTemplateApi';
6
7
  export * as NodeRaw from './api/NodeApi';
7
8
  export * as SecretsRaw from './api/SecretsApi';
@@ -13,6 +14,7 @@ export * as VariablesRaw from './api/VariablesApi';
13
14
 
14
15
  // Ops Layer
15
16
  export * as Admin from './ops/AdminOps';
17
+ export * as Agent from './ops/AgentOps';
16
18
  export * as Authenticate from './ops/AuthenticateOps';
17
19
  export * as CirclesOfTrust from './ops/CirclesOfTrustOps';
18
20
  export * as ConnectionProfile from './ops/ConnectionProfileOps';