@rockcarver/frodo-lib 0.12.1 → 0.12.2-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 (135) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/cjs/api/BaseApi.js +36 -8
  3. package/cjs/api/BaseApi.js.map +1 -1
  4. package/cjs/api/NodeApi.js +190 -0
  5. package/cjs/api/NodeApi.js.map +1 -0
  6. package/cjs/api/NodeApi.test.js.map +1 -0
  7. package/cjs/api/StartupApi.js +21 -8
  8. package/cjs/api/StartupApi.js.map +1 -1
  9. package/cjs/api/StartupApi.test.js.map +1 -0
  10. package/cjs/api/TreeApi.js +28 -161
  11. package/cjs/api/TreeApi.js.map +1 -1
  12. package/cjs/api/TreeApi.test.js.map +1 -0
  13. package/cjs/index.js +15 -5
  14. package/cjs/index.js.map +1 -1
  15. package/cjs/ops/IdpOps.js +1 -1
  16. package/cjs/ops/IdpOps.js.map +1 -1
  17. package/cjs/ops/JourneyOps.js +202 -203
  18. package/cjs/ops/JourneyOps.js.map +1 -1
  19. package/cjs/ops/StartupOps.js +61 -71
  20. package/cjs/ops/StartupOps.js.map +1 -1
  21. package/cjs/ops/utils/Console.js +3 -2
  22. package/cjs/ops/utils/Console.js.map +1 -1
  23. package/esm/api/BaseApi.mjs +35 -7
  24. package/esm/api/NodeApi.mjs +114 -0
  25. package/esm/api/NodeApi.test.mjs +105 -0
  26. package/esm/api/StartupApi.mjs +18 -8
  27. package/esm/api/StartupApi.test.mjs +56 -0
  28. package/esm/api/TreeApi.mjs +27 -99
  29. package/esm/api/TreeApi.test.mjs +175 -0
  30. package/esm/index.mjs +7 -5
  31. package/esm/ops/IdpOps.mjs +1 -1
  32. package/esm/ops/JourneyOps.mjs +165 -154
  33. package/esm/ops/StartupOps.mjs +59 -62
  34. package/esm/ops/utils/Console.mjs +3 -2
  35. package/package.json +7 -4
  36. package/types/api/AuthenticateApi.d.ts +2 -0
  37. package/types/api/AuthenticateApi.d.ts.map +1 -0
  38. package/types/api/BaseApi.d.ts +50 -0
  39. package/types/api/BaseApi.d.ts.map +1 -0
  40. package/types/api/CirclesOfTrustApi.d.ts +24 -0
  41. package/types/api/CirclesOfTrustApi.d.ts.map +1 -0
  42. package/types/api/EmailTemplateApi.d.ts +22 -0
  43. package/types/api/EmailTemplateApi.d.ts.map +1 -0
  44. package/types/api/IdmConfigApi.d.ts +39 -0
  45. package/types/api/IdmConfigApi.d.ts.map +1 -0
  46. package/types/api/LogApi.d.ts +4 -0
  47. package/types/api/LogApi.d.ts.map +1 -0
  48. package/types/api/ManagedObjectApi.d.ts +21 -0
  49. package/types/api/ManagedObjectApi.d.ts.map +1 -0
  50. package/types/api/NodeApi.d.ts +38 -0
  51. package/types/api/NodeApi.d.ts.map +1 -0
  52. package/types/api/OAuth2ClientApi.d.ts +18 -0
  53. package/types/api/OAuth2ClientApi.d.ts.map +1 -0
  54. package/types/api/OAuth2OIDCApi.d.ts +22 -0
  55. package/types/api/OAuth2OIDCApi.d.ts.map +1 -0
  56. package/types/api/OAuth2ProviderApi.d.ts +5 -0
  57. package/types/api/OAuth2ProviderApi.d.ts.map +1 -0
  58. package/types/api/RealmApi.d.ts +30 -0
  59. package/types/api/RealmApi.d.ts.map +1 -0
  60. package/types/api/Saml2Api.d.ts +52 -0
  61. package/types/api/Saml2Api.d.ts.map +1 -0
  62. package/types/api/ScriptApi.d.ts +24 -0
  63. package/types/api/ScriptApi.d.ts.map +1 -0
  64. package/types/api/SecretsApi.d.ts +10 -0
  65. package/types/api/SecretsApi.d.ts.map +1 -0
  66. package/types/api/ServerInfoApi.d.ts +10 -0
  67. package/types/api/ServerInfoApi.d.ts.map +1 -0
  68. package/types/api/SocialIdentityProvidersApi.d.ts +31 -0
  69. package/types/api/SocialIdentityProvidersApi.d.ts.map +1 -0
  70. package/types/api/StartupApi.d.ts +14 -0
  71. package/types/api/StartupApi.d.ts.map +1 -0
  72. package/types/api/ThemeApi.d.ts +54 -0
  73. package/types/api/ThemeApi.d.ts.map +1 -0
  74. package/types/api/TreeApi.d.ts +24 -0
  75. package/types/api/TreeApi.d.ts.map +1 -0
  76. package/types/api/VariablesApi.d.ts +32 -0
  77. package/types/api/VariablesApi.d.ts.map +1 -0
  78. package/types/api/utils/ApiUtils.d.ts +29 -0
  79. package/types/api/utils/ApiUtils.d.ts.map +1 -0
  80. package/types/api/utils/Base64.d.ts +30 -0
  81. package/types/api/utils/Base64.d.ts.map +1 -0
  82. package/types/index.d.ts +26 -0
  83. package/types/index.d.ts.map +1 -0
  84. package/types/ops/AdminOps.d.ts +11 -0
  85. package/types/ops/AdminOps.d.ts.map +1 -0
  86. package/types/ops/AuthenticateOps.d.ts +6 -0
  87. package/types/ops/AuthenticateOps.d.ts.map +1 -0
  88. package/types/ops/CirclesOfTrustOps.d.ts +40 -0
  89. package/types/ops/CirclesOfTrustOps.d.ts.map +1 -0
  90. package/types/ops/ConnectionProfileOps.d.ts +47 -0
  91. package/types/ops/ConnectionProfileOps.d.ts.map +1 -0
  92. package/types/ops/EmailTemplateOps.d.ts +40 -0
  93. package/types/ops/EmailTemplateOps.d.ts.map +1 -0
  94. package/types/ops/IdmOps.d.ts +27 -0
  95. package/types/ops/IdmOps.d.ts.map +1 -0
  96. package/types/ops/IdpOps.d.ts +45 -0
  97. package/types/ops/IdpOps.d.ts.map +1 -0
  98. package/types/ops/JourneyOps.d.ts +145 -0
  99. package/types/ops/JourneyOps.d.ts.map +1 -0
  100. package/types/ops/LogOps.d.ts +5 -0
  101. package/types/ops/LogOps.d.ts.map +1 -0
  102. package/types/ops/ManagedObjectOps.d.ts +14 -0
  103. package/types/ops/ManagedObjectOps.d.ts.map +1 -0
  104. package/types/ops/OAuth2ClientOps.d.ts +24 -0
  105. package/types/ops/OAuth2ClientOps.d.ts.map +1 -0
  106. package/types/ops/OrganizationOps.d.ts +11 -0
  107. package/types/ops/OrganizationOps.d.ts.map +1 -0
  108. package/types/ops/RealmOps.d.ts +22 -0
  109. package/types/ops/RealmOps.d.ts.map +1 -0
  110. package/types/ops/SamlOps.d.ts +51 -0
  111. package/types/ops/SamlOps.d.ts.map +1 -0
  112. package/types/ops/ScriptOps.d.ts +30 -0
  113. package/types/ops/ScriptOps.d.ts.map +1 -0
  114. package/types/ops/SecretsOps.d.ts +63 -0
  115. package/types/ops/SecretsOps.d.ts.map +1 -0
  116. package/types/ops/StartupOps.d.ts +25 -0
  117. package/types/ops/StartupOps.d.ts.map +1 -0
  118. package/types/ops/ThemeOps.d.ts +66 -0
  119. package/types/ops/ThemeOps.d.ts.map +1 -0
  120. package/types/ops/VariablesOps.d.ts +39 -0
  121. package/types/ops/VariablesOps.d.ts.map +1 -0
  122. package/types/ops/utils/Console.d.ts +63 -0
  123. package/types/ops/utils/Console.d.ts.map +1 -0
  124. package/types/ops/utils/DataProtection.d.ts +6 -0
  125. package/types/ops/utils/DataProtection.d.ts.map +1 -0
  126. package/types/ops/utils/ExportImportUtils.d.ts +22 -0
  127. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -0
  128. package/types/ops/utils/OpsUtils.d.ts +27 -0
  129. package/types/ops/utils/OpsUtils.d.ts.map +1 -0
  130. package/types/ops/utils/Wordwrap.d.ts +1 -0
  131. package/types/ops/utils/Wordwrap.d.ts.map +1 -0
  132. package/types/storage/SessionStorage.d.ts +47 -0
  133. package/types/storage/SessionStorage.d.ts.map +1 -0
  134. package/types/storage/StaticStorage.d.ts +14 -0
  135. package/types/storage/StaticStorage.d.ts.map +1 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.12.2-0] - 2022-09-02
11
+
10
12
  ## [0.12.1] - 2022-08-27
11
13
 
12
14
  ### Changed
@@ -451,7 +453,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
451
453
  - Fixed problem with adding connection profiles
452
454
  - Miscellaneous bug fixes
453
455
 
454
- [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.12.1...HEAD
456
+ [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.12.2-0...HEAD
457
+
458
+ [0.12.2-0]: https://github.com/rockcarver/frodo-lib/compare/v0.12.1...v0.12.2-0
455
459
 
456
460
  [0.12.1]: https://github.com/rockcarver/frodo-lib/compare/v0.12.1-0...v0.12.1
457
461
 
@@ -10,12 +10,12 @@ exports.generateLogApi = generateLogApi;
10
10
  exports.generateLogKeysApi = generateLogKeysApi;
11
11
  exports.generateOauth2Api = generateOauth2Api;
12
12
 
13
+ var _agentkeepalive = _interopRequireDefault(require("agentkeepalive"));
14
+
13
15
  var _axios = _interopRequireDefault(require("axios"));
14
16
 
15
17
  var _axiosRetry = _interopRequireDefault(require("axios-retry"));
16
18
 
17
- var https = _interopRequireWildcard(require("https"));
18
-
19
19
  var _httpsProxyAgent = _interopRequireDefault(require("https-proxy-agent"));
20
20
 
21
21
  var _url = _interopRequireWildcard(require("url"));
@@ -48,15 +48,32 @@ var pkg = JSON.parse(_fs.default.readFileSync(_path.default.resolve(_dirname, '.
48
48
  shouldResetTimeout: true,
49
49
  retryCondition: _error => true // retry no matter what
50
50
 
51
- });
52
- var timeout = 30000;
51
+ }); // all agents
52
+
53
+ var timeout = 30000; // agentkeepalive
54
+
55
+ var maxSockets = 100;
56
+ var maxFreeSockets = 10;
57
+ var freeSocketTimeout = 30000;
53
58
  var userAgent = "".concat(pkg.name, "/").concat(pkg.version);
54
- var httpsAgent;
59
+ var httpAgent, httpsAgent;
60
+
61
+ function getHttpAgent() {
62
+ if (httpAgent) return httpAgent;
63
+ httpAgent = new _agentkeepalive.default({
64
+ maxSockets,
65
+ maxFreeSockets,
66
+ timeout,
67
+ freeSocketTimeout
68
+ });
69
+ return httpAgent;
70
+ }
55
71
  /**
56
72
  * Helper method to create properly configured httpsAgent
57
73
  * @returns {any} appropriate httpsAgent
58
74
  */
59
75
 
76
+
60
77
  function getHttpsAgent() {
61
78
  if (httpsAgent) return httpsAgent;
62
79
  var options = {
@@ -78,7 +95,12 @@ function getHttpsAgent() {
78
95
  return httpsAgent;
79
96
  }
80
97
 
81
- httpsAgent = new https.Agent(options);
98
+ httpsAgent = new _agentkeepalive.default.HttpsAgent(_objectSpread(_objectSpread({}, options), {}, {
99
+ maxSockets,
100
+ maxFreeSockets,
101
+ timeout,
102
+ freeSocketTimeout
103
+ }));
82
104
  return httpsAgent;
83
105
  }
84
106
  /**
@@ -107,7 +129,7 @@ function generateAmApi(resource) {
107
129
  'User-Agent': userAgent,
108
130
  'Content-Type': 'application/json',
109
131
  'Accept-API-Version': resource.apiVersion,
110
- Cookie: "".concat(_SessionStorage.default.session.raw['cookieName'], "=").concat(_SessionStorage.default.session.raw['cookieValue'])
132
+ Cookie: "".concat(_SessionStorage.default.session.getCookieName(), "=").concat(_SessionStorage.default.session.getCookieValue())
111
133
  };
112
134
 
113
135
  if (requestOverride['headers']) {
@@ -115,10 +137,11 @@ function generateAmApi(resource) {
115
137
  }
116
138
 
117
139
  var requestDetails = _objectSpread(_objectSpread({
118
- baseURL: "".concat(_SessionStorage.default.session.getTenant(), "/json").concat(resource.path),
140
+ baseURL: "".concat(_SessionStorage.default.session.getTenant(), "/json"),
119
141
  timeout
120
142
  }, requestOverride), {}, {
121
143
  headers,
144
+ httpAgent: getHttpAgent(),
122
145
  httpsAgent: getHttpsAgent(),
123
146
  proxy: getProxy()
124
147
  });
@@ -154,6 +177,7 @@ function generateOauth2Api(resource) {
154
177
  timeout
155
178
  }, requestOverride), {}, {
156
179
  headers,
180
+ httpAgent: getHttpAgent(),
157
181
  httpsAgent: getHttpsAgent(),
158
182
  proxy: getProxy()
159
183
  });
@@ -182,6 +206,7 @@ function generateIdmApi() {
182
206
  'Content-Type': 'application/json'
183
207
  }
184
208
  }, requestOverride), {}, {
209
+ httpAgent: getHttpAgent(),
185
210
  httpsAgent: getHttpsAgent(),
186
211
  proxy: getProxy()
187
212
  });
@@ -215,6 +240,7 @@ function generateLogKeysApi() {
215
240
  timeout,
216
241
  headers
217
242
  }, requestOverride), {}, {
243
+ httpAgent: getHttpAgent(),
218
244
  httpsAgent: getHttpsAgent(),
219
245
  proxy: getProxy()
220
246
  });
@@ -249,6 +275,7 @@ function generateLogApi() {
249
275
  timeout,
250
276
  headers
251
277
  }, requestOverride), {}, {
278
+ httpAgent: getHttpAgent(),
252
279
  httpsAgent: getHttpsAgent(),
253
280
  proxy: getProxy()
254
281
  });
@@ -279,6 +306,7 @@ function generateESVApi(resource) {
279
306
  timeout,
280
307
  headers
281
308
  }, requestOverride), {}, {
309
+ httpAgent: getHttpAgent(),
282
310
  httpsAgent: getHttpsAgent(),
283
311
  proxy: getProxy()
284
312
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BaseApi.js","names":["__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","axiosRetry","axios","retries","shouldResetTimeout","retryCondition","_error","timeout","userAgent","name","version","httpsAgent","getHttpsAgent","options","rejectUnauthorized","storage","session","getAllowInsecureConnection","httpsProxy","process","env","HTTPS_PROXY","https_proxy","console","error","parsed","url","hostname","port","protocol","HttpsProxyAgent","https","Agent","getProxy","generateAmApi","resource","requestOverride","headers","apiVersion","Cookie","raw","requestDetails","baseURL","getTenant","proxy","request","create","generateOauth2Api","generateIdmApi","getTenantURL","getBearerToken","generateLogKeysApi","generateLogApi","getLogApiKey","getLogApiSecret","generateESVApi"],"sources":["api/BaseApi.ts"],"sourcesContent":["import axios, { AxiosProxyConfig } from 'axios';\nimport axiosRetry from 'axios-retry';\nimport * as https from 'https';\nimport HttpsProxyAgent from 'https-proxy-agent';\nimport url from 'url';\nimport fs from 'fs';\nimport storage from '../storage/SessionStorage';\nimport { getTenantURL } from './utils/ApiUtils';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\naxiosRetry(axios, {\n retries: 3,\n shouldResetTimeout: true,\n retryCondition: (_error) => true, // retry no matter what\n});\n\nconst timeout = 30000;\nconst userAgent = `${pkg.name}/${pkg.version}`;\nlet httpsAgent;\n\n/**\n * Helper method to create properly configured httpsAgent\n * @returns {any} appropriate httpsAgent\n */\nfunction getHttpsAgent() {\n if (httpsAgent) return httpsAgent;\n const options = {\n rejectUnauthorized: !storage.session.getAllowInsecureConnection(),\n };\n const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy;\n if (httpsProxy) {\n // https://github.com/axios/axios/issues/3459\n console.error(`Using proxy ${httpsProxy}`['yellow']);\n const parsed = url.parse(httpsProxy);\n options['host'] = parsed.hostname;\n options['port'] = parsed.port;\n options['protocol'] = parsed.protocol;\n options.rejectUnauthorized = !storage.session.getAllowInsecureConnection();\n httpsAgent = HttpsProxyAgent(options);\n return httpsAgent;\n }\n httpsAgent = new https.Agent(options);\n return httpsAgent;\n}\n\n/**\n * Get Proxy config\n * @returns {AxiosProxyConfig | false} axios proxy config or false\n */\nfunction getProxy(): AxiosProxyConfig | false {\n if (process.env.HTTPS_PROXY || process.env.https_proxy) return false;\n return null;\n}\n\n/**\n * Generates an AM Axios API instance\n * @param {object} resource Takes an object takes a resource object. example:\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either\n * add on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateAmApi(resource, requestOverride = {}) {\n let headers = {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n 'Accept-API-Version': resource.apiVersion,\n Cookie: `${storage.session.raw['cookieName']}=${storage.session.raw['cookieValue']}`,\n };\n if (requestOverride['headers']) {\n headers = {\n ...headers,\n ...requestOverride['headers'],\n };\n }\n\n const requestDetails = {\n baseURL: `${storage.session.getTenant()}/json${resource.path}`,\n timeout,\n ...requestOverride,\n headers,\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates an OAuth2 Axios API instance\n * @param {object} resource Takes an object takes a resource object. example:\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either\n * add on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateOauth2Api(resource, requestOverride = {}) {\n let headers = {\n 'User-Agent': userAgent,\n 'Accept-API-Version': resource.apiVersion,\n Cookie: `${storage.session.raw['cookieName']}=${storage.session.raw['cookieValue']}`,\n };\n if (requestOverride['headers']) {\n headers = {\n ...headers,\n ...requestOverride['headers'],\n };\n }\n\n const requestDetails = {\n baseURL: `${storage.session.getTenant()}/json${resource.path}`,\n timeout,\n ...requestOverride,\n headers,\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates an IDM Axios API instance\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateIdmApi(requestOverride = {}) {\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers: {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n },\n ...requestOverride,\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n if (storage.session.getBearerToken()) {\n requestDetails.headers[\n 'Authorization'\n ] = `Bearer ${storage.session.getBearerToken()}`;\n }\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates a LogKeys API Axios instance\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateLogKeysApi(requestOverride = {}) {\n const headers = {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n };\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers,\n ...requestOverride,\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n if (storage.session.getBearerToken()) {\n requestDetails.headers[\n 'Authorization'\n ] = `Bearer ${storage.session.getBearerToken()}`;\n }\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates a Log API Axios instance\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateLogApi(requestOverride = {}) {\n const headers = {\n 'User-Agent': userAgent,\n 'X-API-Key': storage.session.getLogApiKey(),\n 'X-API-Secret': storage.session.getLogApiSecret(),\n };\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers,\n ...requestOverride,\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates an ESV Axios API instance for Environment Secrets and Variables\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateESVApi(resource, requestOverride = {}) {\n const headers = {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n 'Accept-API-Version': resource.apiVersion,\n };\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers,\n ...requestOverride,\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n if (storage.session.getBearerToken()) {\n requestDetails.headers[\n 'Authorization'\n ] = `Bearer ${storage.session.getBearerToken()}`;\n }\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseApi.js","names":["__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","axiosRetry","axios","retries","shouldResetTimeout","retryCondition","_error","timeout","maxSockets","maxFreeSockets","freeSocketTimeout","userAgent","name","version","httpAgent","httpsAgent","getHttpAgent","Agent","getHttpsAgent","options","rejectUnauthorized","storage","session","getAllowInsecureConnection","httpsProxy","process","env","HTTPS_PROXY","https_proxy","console","error","parsed","url","hostname","port","protocol","HttpsProxyAgent","HttpsAgent","getProxy","generateAmApi","resource","requestOverride","headers","apiVersion","Cookie","getCookieName","getCookieValue","requestDetails","baseURL","getTenant","proxy","request","create","generateOauth2Api","raw","generateIdmApi","getTenantURL","getBearerToken","generateLogKeysApi","generateLogApi","getLogApiKey","getLogApiSecret","generateESVApi"],"sources":["api/BaseApi.ts"],"sourcesContent":["import Agent from 'agentkeepalive';\nimport axios, { AxiosProxyConfig } from 'axios';\nimport axiosRetry from 'axios-retry';\nimport HttpsProxyAgent from 'https-proxy-agent';\nimport url from 'url';\nimport fs from 'fs';\nimport storage from '../storage/SessionStorage';\nimport { getTenantURL } from './utils/ApiUtils';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst pkg = JSON.parse(\n fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf8')\n);\n\naxiosRetry(axios, {\n retries: 3,\n shouldResetTimeout: true,\n retryCondition: (_error) => true, // retry no matter what\n});\n\n// all agents\nconst timeout = 30000;\n\n// agentkeepalive\nconst maxSockets = 100;\nconst maxFreeSockets = 10;\nconst freeSocketTimeout = 30000;\n\nconst userAgent = `${pkg.name}/${pkg.version}`;\nlet httpAgent, httpsAgent;\n\nfunction getHttpAgent() {\n if (httpAgent) return httpAgent;\n httpAgent = new Agent({\n maxSockets,\n maxFreeSockets,\n timeout,\n freeSocketTimeout,\n });\n return httpAgent;\n}\n\n/**\n * Helper method to create properly configured httpsAgent\n * @returns {any} appropriate httpsAgent\n */\nfunction getHttpsAgent() {\n if (httpsAgent) return httpsAgent;\n const options = {\n rejectUnauthorized: !storage.session.getAllowInsecureConnection(),\n };\n const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy;\n if (httpsProxy) {\n // https://github.com/axios/axios/issues/3459\n console.error(`Using proxy ${httpsProxy}`['yellow']);\n const parsed = url.parse(httpsProxy);\n options['host'] = parsed.hostname;\n options['port'] = parsed.port;\n options['protocol'] = parsed.protocol;\n options.rejectUnauthorized = !storage.session.getAllowInsecureConnection();\n httpsAgent = HttpsProxyAgent(options);\n return httpsAgent;\n }\n httpsAgent = new Agent.HttpsAgent({\n ...options,\n maxSockets,\n maxFreeSockets,\n timeout,\n freeSocketTimeout,\n });\n return httpsAgent;\n}\n\n/**\n * Get Proxy config\n * @returns {AxiosProxyConfig | false} axios proxy config or false\n */\nfunction getProxy(): AxiosProxyConfig | false {\n if (process.env.HTTPS_PROXY || process.env.https_proxy) return false;\n return null;\n}\n\n/**\n * Generates an AM Axios API instance\n * @param {object} resource Takes an object takes a resource object. example:\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either\n * add on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateAmApi(resource, requestOverride = {}) {\n let headers = {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n 'Accept-API-Version': resource.apiVersion,\n Cookie: `${storage.session.getCookieName()}=${storage.session.getCookieValue()}`,\n };\n if (requestOverride['headers']) {\n headers = {\n ...headers,\n ...requestOverride['headers'],\n };\n }\n\n const requestDetails = {\n baseURL: `${storage.session.getTenant()}/json`,\n timeout,\n ...requestOverride,\n headers,\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates an OAuth2 Axios API instance\n * @param {object} resource Takes an object takes a resource object. example:\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either\n * add on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateOauth2Api(resource, requestOverride = {}) {\n let headers = {\n 'User-Agent': userAgent,\n 'Accept-API-Version': resource.apiVersion,\n Cookie: `${storage.session.raw['cookieName']}=${storage.session.raw['cookieValue']}`,\n };\n if (requestOverride['headers']) {\n headers = {\n ...headers,\n ...requestOverride['headers'],\n };\n }\n\n const requestDetails = {\n baseURL: `${storage.session.getTenant()}/json${resource.path}`,\n timeout,\n ...requestOverride,\n headers,\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates an IDM Axios API instance\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateIdmApi(requestOverride = {}) {\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers: {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n },\n ...requestOverride,\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n if (storage.session.getBearerToken()) {\n requestDetails.headers[\n 'Authorization'\n ] = `Bearer ${storage.session.getBearerToken()}`;\n }\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates a LogKeys API Axios instance\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateLogKeysApi(requestOverride = {}) {\n const headers = {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n };\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers,\n ...requestOverride,\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n if (storage.session.getBearerToken()) {\n requestDetails.headers[\n 'Authorization'\n ] = `Bearer ${storage.session.getBearerToken()}`;\n }\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates a Log API Axios instance\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateLogApi(requestOverride = {}) {\n const headers = {\n 'User-Agent': userAgent,\n 'X-API-Key': storage.session.getLogApiKey(),\n 'X-API-Secret': storage.session.getLogApiSecret(),\n };\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers,\n ...requestOverride,\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n\n/**\n * Generates an ESV Axios API instance for Environment Secrets and Variables\n * @param {object} requestOverride Takes an object of AXIOS parameters that can be used to either add\n * on extra information or override default properties https://github.com/axios/axios#request-config\n *\n * @returns {AxiosInstance}\n */\nexport function generateESVApi(resource, requestOverride = {}) {\n const headers = {\n 'User-Agent': userAgent,\n 'Content-Type': 'application/json',\n 'Accept-API-Version': resource.apiVersion,\n };\n const requestDetails = {\n baseURL: getTenantURL(storage.session.getTenant()),\n timeout,\n headers,\n ...requestOverride,\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n if (storage.session.getBearerToken()) {\n requestDetails.headers[\n 'Authorization'\n ] = `Bearer ${storage.session.getBearerToken()}`;\n }\n\n const request = axios.create(requestDetails);\n\n return request;\n}\n"],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deleteNode = deleteNode;
7
+ exports.getNode = getNode;
8
+ exports.getNodeTypes = getNodeTypes;
9
+ exports.getNodes = getNodes;
10
+ exports.getNodesByType = getNodesByType;
11
+ exports.putNode = putNode;
12
+
13
+ var _util = _interopRequireDefault(require("util"));
14
+
15
+ var _ApiUtils = require("./utils/ApiUtils");
16
+
17
+ var _BaseApi = require("./BaseApi");
18
+
19
+ var _SessionStorage = _interopRequireDefault(require("../storage/SessionStorage"));
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+
23
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
24
+
25
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
26
+
27
+ var queryAllNodeTypesURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes?_action=getAllTypes';
28
+ var queryAllNodesByTypeURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes/%s?_queryFilter=true';
29
+ var queryAllNodesURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes?_action=nextdescendents';
30
+ var nodeURLTemplate = '%s/json%s/realm-config/authentication/authenticationtrees/nodes/%s/%s';
31
+ var apiVersion = 'protocol=2.1,resource=1.0';
32
+
33
+ var getNodeApiConfig = () => {
34
+ var configPath = (0, _ApiUtils.getCurrentRealmPath)();
35
+ return {
36
+ path: "".concat(configPath, "/authentication/authenticationtrees"),
37
+ apiVersion
38
+ };
39
+ };
40
+ /**
41
+ * Get all node types
42
+ * @returns {Promise} a promise that resolves to an array of node type objects
43
+ */
44
+
45
+
46
+ function getNodeTypes() {
47
+ return _getNodeTypes.apply(this, arguments);
48
+ }
49
+ /**
50
+ * Get all nodes
51
+ * @returns {Promise} a promise that resolves to an array of node objects
52
+ */
53
+
54
+
55
+ function _getNodeTypes() {
56
+ _getNodeTypes = _asyncToGenerator(function* () {
57
+ var urlString = _util.default.format(queryAllNodeTypesURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)());
58
+
59
+ var response = yield (0, _BaseApi.generateAmApi)(getNodeApiConfig()).post(urlString, {}, {
60
+ withCredentials: true,
61
+ headers: {
62
+ 'Accept-Encoding': 'gzip, deflate, br'
63
+ }
64
+ });
65
+ return response.data.result;
66
+ });
67
+ return _getNodeTypes.apply(this, arguments);
68
+ }
69
+
70
+ function getNodes() {
71
+ return _getNodes.apply(this, arguments);
72
+ }
73
+ /**
74
+ * Get all nodes by type
75
+ * @param {string} nodeType node type
76
+ * @returns {Promise} a promise that resolves to an array of node objects of the requested type
77
+ */
78
+
79
+
80
+ function _getNodes() {
81
+ _getNodes = _asyncToGenerator(function* () {
82
+ var urlString = _util.default.format(queryAllNodesURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)());
83
+
84
+ var response = yield (0, _BaseApi.generateAmApi)(getNodeApiConfig()).post(urlString, {}, {
85
+ withCredentials: true,
86
+ headers: {
87
+ 'Accept-Encoding': 'gzip, deflate, br'
88
+ }
89
+ });
90
+ return response.data.result;
91
+ });
92
+ return _getNodes.apply(this, arguments);
93
+ }
94
+
95
+ function getNodesByType(_x) {
96
+ return _getNodesByType.apply(this, arguments);
97
+ }
98
+ /**
99
+ * Get node by uuid and type
100
+ * @param {String} nodeId node uuid
101
+ * @param {String} nodeType node type
102
+ * @returns {Promise} a promise that resolves to a node object
103
+ */
104
+
105
+
106
+ function _getNodesByType() {
107
+ _getNodesByType = _asyncToGenerator(function* (nodeType) {
108
+ var urlString = _util.default.format(queryAllNodesByTypeURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), nodeType);
109
+
110
+ var response = yield (0, _BaseApi.generateAmApi)(getNodeApiConfig()).get(urlString, {
111
+ withCredentials: true
112
+ });
113
+ return response.data.result;
114
+ });
115
+ return _getNodesByType.apply(this, arguments);
116
+ }
117
+
118
+ function getNode(_x2, _x3) {
119
+ return _getNode.apply(this, arguments);
120
+ }
121
+ /**
122
+ * Put node by uuid and type
123
+ * @param {String} nodeId node uuid
124
+ * @param {String} nodeType node type
125
+ * @param {Object} nodeData node object
126
+ * @returns {Promise} a promise that resolves to an object containing a node object
127
+ */
128
+
129
+
130
+ function _getNode() {
131
+ _getNode = _asyncToGenerator(function* (nodeId, nodeType) {
132
+ var urlString = _util.default.format(nodeURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), nodeType, nodeId);
133
+
134
+ var {
135
+ data
136
+ } = yield (0, _BaseApi.generateAmApi)(getNodeApiConfig()).get(urlString, {
137
+ withCredentials: true
138
+ });
139
+ return data;
140
+ });
141
+ return _getNode.apply(this, arguments);
142
+ }
143
+
144
+ function putNode(_x4, _x5, _x6) {
145
+ return _putNode.apply(this, arguments);
146
+ }
147
+ /**
148
+ * Delete node by uuid and type
149
+ * @param {String} nodeId node uuid
150
+ * @param {String} nodeType node type
151
+ * @returns {Promise} a promise that resolves to an object containing a node object
152
+ */
153
+
154
+
155
+ function _putNode() {
156
+ _putNode = _asyncToGenerator(function* (nodeId, nodeType, nodeData) {
157
+ // until we figure out a way to use transport keys in Frodo,
158
+ // we'll have to drop those encrypted attributes.
159
+ var cleanData = (0, _ApiUtils.deleteDeepByKey)(nodeData, '-encrypted');
160
+
161
+ var urlString = _util.default.format(nodeURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), nodeType, nodeId);
162
+
163
+ var {
164
+ data
165
+ } = yield (0, _BaseApi.generateAmApi)(getNodeApiConfig()).put(urlString, cleanData, {
166
+ withCredentials: true
167
+ });
168
+ return data;
169
+ });
170
+ return _putNode.apply(this, arguments);
171
+ }
172
+
173
+ function deleteNode(_x7, _x8) {
174
+ return _deleteNode.apply(this, arguments);
175
+ }
176
+
177
+ function _deleteNode() {
178
+ _deleteNode = _asyncToGenerator(function* (nodeId, nodeType) {
179
+ var urlString = _util.default.format(nodeURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), nodeType, nodeId);
180
+
181
+ var {
182
+ data
183
+ } = yield (0, _BaseApi.generateAmApi)(getNodeApiConfig()).delete(urlString, {
184
+ withCredentials: true
185
+ });
186
+ return data;
187
+ });
188
+ return _deleteNode.apply(this, arguments);
189
+ }
190
+ //# sourceMappingURL=NodeApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeApi.js","names":["queryAllNodeTypesURLTemplate","queryAllNodesByTypeURLTemplate","queryAllNodesURLTemplate","nodeURLTemplate","apiVersion","getNodeApiConfig","configPath","getCurrentRealmPath","path","getNodeTypes","urlString","util","format","storage","session","getTenant","response","generateAmApi","post","withCredentials","headers","data","result","getNodes","getNodesByType","nodeType","get","getNode","nodeId","putNode","nodeData","cleanData","deleteDeepByKey","put","deleteNode","delete"],"sources":["api/NodeApi.ts"],"sourcesContent":["import util from 'util';\nimport { deleteDeepByKey, getCurrentRealmPath } from './utils/ApiUtils';\nimport { generateAmApi } from './BaseApi';\nimport storage from '../storage/SessionStorage';\n\nconst queryAllNodeTypesURLTemplate =\n '%s/json%s/realm-config/authentication/authenticationtrees/nodes?_action=getAllTypes';\nconst queryAllNodesByTypeURLTemplate =\n '%s/json%s/realm-config/authentication/authenticationtrees/nodes/%s?_queryFilter=true';\nconst queryAllNodesURLTemplate =\n '%s/json%s/realm-config/authentication/authenticationtrees/nodes?_action=nextdescendents';\nconst nodeURLTemplate =\n '%s/json%s/realm-config/authentication/authenticationtrees/nodes/%s/%s';\n\nconst apiVersion = 'protocol=2.1,resource=1.0';\nconst getNodeApiConfig = () => {\n const configPath = getCurrentRealmPath();\n return {\n path: `${configPath}/authentication/authenticationtrees`,\n apiVersion,\n };\n};\n\n/**\n * Get all node types\n * @returns {Promise} a promise that resolves to an array of node type objects\n */\nexport async function getNodeTypes() {\n const urlString = util.format(\n queryAllNodeTypesURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const response = await generateAmApi(getNodeApiConfig()).post(\n urlString,\n {},\n {\n withCredentials: true,\n headers: { 'Accept-Encoding': 'gzip, deflate, br' },\n }\n );\n return response.data.result;\n}\n\n/**\n * Get all nodes\n * @returns {Promise} a promise that resolves to an array of node objects\n */\nexport async function getNodes() {\n const urlString = util.format(\n queryAllNodesURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const response = await generateAmApi(getNodeApiConfig()).post(\n urlString,\n {},\n {\n withCredentials: true,\n headers: { 'Accept-Encoding': 'gzip, deflate, br' },\n }\n );\n return response.data.result;\n}\n\n/**\n * Get all nodes by type\n * @param {string} nodeType node type\n * @returns {Promise} a promise that resolves to an array of node objects of the requested type\n */\nexport async function getNodesByType(nodeType: string) {\n const urlString = util.format(\n queryAllNodesByTypeURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n nodeType\n );\n const response = await generateAmApi(getNodeApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return response.data.result;\n}\n\n/**\n * Get node by uuid and type\n * @param {String} nodeId node uuid\n * @param {String} nodeType node type\n * @returns {Promise} a promise that resolves to a node object\n */\nexport async function getNode(nodeId: string, nodeType: string) {\n const urlString = util.format(\n nodeURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n nodeType,\n nodeId\n );\n const { data } = await generateAmApi(getNodeApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data;\n}\n\n/**\n * Put node by uuid and type\n * @param {String} nodeId node uuid\n * @param {String} nodeType node type\n * @param {Object} nodeData node object\n * @returns {Promise} a promise that resolves to an object containing a node object\n */\nexport async function putNode(nodeId: string, nodeType: string, nodeData) {\n // until we figure out a way to use transport keys in Frodo,\n // we'll have to drop those encrypted attributes.\n const cleanData = deleteDeepByKey(nodeData, '-encrypted');\n const urlString = util.format(\n nodeURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n nodeType,\n nodeId\n );\n const { data } = await generateAmApi(getNodeApiConfig()).put(\n urlString,\n cleanData,\n {\n withCredentials: true,\n }\n );\n return data;\n}\n\n/**\n * Delete node by uuid and type\n * @param {String} nodeId node uuid\n * @param {String} nodeType node type\n * @returns {Promise} a promise that resolves to an object containing a node object\n */\nexport async function deleteNode(nodeId: string, nodeType: string) {\n const urlString = util.format(\n nodeURLTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath(),\n nodeType,\n nodeId\n );\n const { data } = await generateAmApi(getNodeApiConfig()).delete(urlString, {\n withCredentials: true,\n });\n return data;\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeApi.test.js","names":["__dirname","path","dirname","fileURLToPath","mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","describe","test","response","JSON","parse","fs","readFileSync","resolve","onPost","reply","types","NodeRaw","getNodeTypes","expect","toBeTruthy","length","toBe","onGet","nodes","getNodesByType","node","getNode","toMatchObject","code","reason","message","assertions","error","data","nodeData","onPut","putNode","onDelete","deleteNode","_id","toEqual"],"sources":["api/NodeApi.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { NodeRaw, state } from '../index';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst mock = new MockAdapter(axios);\n\nstate.default.session.setTenant('');\nstate.default.session.setRealm('alpha');\nstate.default.session.setCookieName('cookieName');\nstate.default.session.setCookieValue('cookieValue');\n\ndescribe('NodeApi - getNodeTypes()', () => {\n test('getNodeTypes() 1: Get all node types', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/NodeApi/getNodeTypes/types.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes?_action=getAllTypes'\n )\n .reply(200, response);\n const types = await NodeRaw.getNodeTypes();\n expect(types).toBeTruthy();\n expect(types.length).toBe(99);\n });\n});\n\ndescribe('NodeApi - getNodesByType()', () => {\n test('getNodesByType() 1: Get all page nodes', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/NodeApi/getNodesByType/PageNode.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode?_queryFilter=true'\n )\n .reply(200, response);\n const nodes = await NodeRaw.getNodesByType('PageNode');\n expect(nodes).toBeTruthy();\n expect(nodes.length).toBe(161);\n });\n});\n\ndescribe('NodeApi - getNode()', () => {\n test('getNode() 1: Get existing page node [1aea363f-d8d2-4711-b88d-d58fff92dbae]', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/NodeApi/getNode/PageNode_1aea363f-d8d2-4711-b88d-d58fff92dbae.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/1aea363f-d8d2-4711-b88d-d58fff92dbae'\n )\n .reply(200, response);\n const node = await NodeRaw.getNode(\n '1aea363f-d8d2-4711-b88d-d58fff92dbae',\n 'PageNode'\n );\n expect(node).toBeTruthy();\n expect(node).toMatchObject(response);\n });\n\n test('getNode() 2: Get non-existing page node [00000000-0000-0000-0000-000000000000]', async () => {\n mock\n .onGet(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/00000000-0000-0000-0000-000000000000'\n )\n .reply(404, {\n code: 404,\n reason: 'Not Found',\n message: 'Not Found',\n });\n expect.assertions(2);\n try {\n await NodeRaw.getNode('00000000-0000-0000-0000-000000000000', 'PageNode');\n } catch (error) {\n expect(error.response).toBeTruthy();\n expect(error.response.data).toMatchObject({\n code: 404,\n reason: 'Not Found',\n message: 'Not Found',\n });\n }\n });\n});\n\ndescribe('NodeApi - putNode()', () => {\n test('putNode() 1: Create page node [0ad90971-d08a-4af3-86f3-01729572dc8f]', async () => {\n const nodeData = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/NodeApi/putNode/PageNode_0ad90971-d08a-4af3-86f3-01729572dc8f.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPut(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/0ad90971-d08a-4af3-86f3-01729572dc8f'\n )\n .reply(201, nodeData);\n const node = await NodeRaw.putNode(\n '0ad90971-d08a-4af3-86f3-01729572dc8f',\n 'PageNode',\n nodeData\n );\n expect(node).toBeTruthy();\n expect(node).toMatchObject(nodeData);\n });\n\n test('putNode() 1: Update existing page node [1aea363f-d8d2-4711-b88d-d58fff92dbae]', async () => {\n const nodeData = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/NodeApi/putNode/PageNode_1aea363f-d8d2-4711-b88d-d58fff92dbae.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPut(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/1aea363f-d8d2-4711-b88d-d58fff92dbae'\n )\n .reply(200, nodeData);\n const node = await NodeRaw.putNode(\n '1aea363f-d8d2-4711-b88d-d58fff92dbae',\n 'PageNode',\n nodeData\n );\n expect(node).toBeTruthy();\n expect(node).toMatchObject(nodeData);\n });\n});\n\ndescribe('NodeApi - deleteNode()', () => {\n test('deleteNode() 1: Delete existing node [1aea363f-d8d2-4711-b88d-d58fff92dbae]', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/NodeApi/deleteNode/PageNode_1aea363f-d8d2-4711-b88d-d58fff92dbae.json'\n ),\n 'utf8'\n )\n );\n mock\n .onDelete(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/1aea363f-d8d2-4711-b88d-d58fff92dbae'\n )\n .reply(200, response);\n const node = await NodeRaw.deleteNode(\n '1aea363f-d8d2-4711-b88d-d58fff92dbae',\n 'PageNode'\n );\n expect(node).toBeTruthy();\n expect(node._id).toEqual('1aea363f-d8d2-4711-b88d-d58fff92dbae');\n });\n\n test('deleteNode() 2: Delete non-existing node [00000000-0000-0000-0000-000000000000]', async () => {\n mock\n .onDelete(\n '/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/nodes/PageNode/00000000-0000-0000-0000-000000000000'\n )\n .reply(404, {\n code: 404,\n reason: 'Not Found',\n message: 'Not Found',\n });\n expect.assertions(2);\n try {\n await NodeRaw.deleteNode(\n '00000000-0000-0000-0000-000000000000',\n 'PageNode'\n );\n } catch (error) {\n expect(error.response).toBeTruthy();\n expect(error.response.data).toMatchObject({\n code: 404,\n reason: 'Not Found',\n message: 'Not Found',\n });\n }\n });\n});\n"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.RestartStatus = void 0;
6
7
  exports.getStatus = getStatus;
7
8
  exports.initiateRestart = initiateRestart;
8
9
 
@@ -28,18 +29,26 @@ var getApiConfig = () => ({
28
29
  path: "/environment/startup",
29
30
  apiVersion
30
31
  });
32
+
33
+ var RestartStatus;
31
34
  /**
32
35
  * Get status
33
- * @returns {Promise} a promise that resolves to a status object
36
+ * @returns {Promise<RestartStatus>} a promise that resolves to a string indicating status
34
37
  */
35
38
 
39
+ exports.RestartStatus = RestartStatus;
40
+
41
+ (function (RestartStatus) {
42
+ RestartStatus["restarting"] = "restarting";
43
+ RestartStatus["ready"] = "ready";
44
+ })(RestartStatus || (exports.RestartStatus = RestartStatus = {}));
36
45
 
37
46
  function getStatus() {
38
47
  return _getStatus.apply(this, arguments);
39
48
  }
40
49
  /**
41
50
  * Initiate restart
42
- * @returns {Promise} a promise that resolves to a status object
51
+ * @returns {Promise<string>} a promise that resolves to a string indicating status
43
52
  */
44
53
 
45
54
 
@@ -47,9 +56,12 @@ function _getStatus() {
47
56
  _getStatus = _asyncToGenerator(function* () {
48
57
  var urlString = _util.default.format(startupURLTemplate, (0, _ApiUtils.getTenantURL)(_SessionStorage.default.session.getTenant()));
49
58
 
50
- return (0, _BaseApi.generateESVApi)(getApiConfig()).get(urlString, {
59
+ var {
60
+ data
61
+ } = yield (0, _BaseApi.generateESVApi)(getApiConfig()).get(urlString, {
51
62
  withCredentials: true
52
63
  });
64
+ return data.restartStatus;
53
65
  });
54
66
  return _getStatus.apply(this, arguments);
55
67
  }
@@ -60,16 +72,17 @@ function initiateRestart() {
60
72
 
61
73
  function _initiateRestart() {
62
74
  _initiateRestart = _asyncToGenerator(function* () {
63
- var {
64
- restartStatus
65
- } = (yield getStatus()).data;
75
+ var restartStatus = yield getStatus();
66
76
 
67
- if (restartStatus === 'ready') {
77
+ if (restartStatus === RestartStatus.ready) {
68
78
  var urlString = _util.default.format(startupInitiateRestartURLTemplate, (0, _ApiUtils.getTenantURL)(_SessionStorage.default.session.getTenant()));
69
79
 
70
- return (0, _BaseApi.generateESVApi)(getApiConfig()).post(urlString, null, {
80
+ var {
81
+ data
82
+ } = yield (0, _BaseApi.generateESVApi)(getApiConfig()).post(urlString, null, {
71
83
  withCredentials: true
72
84
  });
85
+ return data.restartStatus;
73
86
  }
74
87
 
75
88
  throw new Error("Not ready! Current status: ".concat(restartStatus));
@@ -1 +1 @@
1
- {"version":3,"file":"StartupApi.js","names":["startupURLTemplate","startupInitiateRestartURLTemplate","apiVersion","getApiConfig","path","getStatus","urlString","util","format","getTenantURL","storage","session","getTenant","generateESVApi","get","withCredentials","initiateRestart","restartStatus","data","post","Error"],"sources":["api/StartupApi.ts"],"sourcesContent":["import util from 'util';\nimport { getTenantURL } from './utils/ApiUtils';\nimport { generateESVApi } from './BaseApi';\nimport storage from '../storage/SessionStorage';\n\nconst startupURLTemplate = '%s/environment/startup';\nconst startupInitiateRestartURLTemplate = `${startupURLTemplate}?_action=restart`;\n\nconst apiVersion = 'protocol=1.0,resource=1.0';\nconst getApiConfig = () => ({\n path: `/environment/startup`,\n apiVersion,\n});\n\n/**\n * Get status\n * @returns {Promise} a promise that resolves to a status object\n */\nexport async function getStatus() {\n const urlString = util.format(\n startupURLTemplate,\n getTenantURL(storage.session.getTenant())\n );\n return generateESVApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n}\n\n/**\n * Initiate restart\n * @returns {Promise} a promise that resolves to a status object\n */\nexport async function initiateRestart() {\n const { restartStatus } = (await getStatus()).data;\n if (restartStatus === 'ready') {\n const urlString = util.format(\n startupInitiateRestartURLTemplate,\n getTenantURL(storage.session.getTenant())\n );\n return generateESVApi(getApiConfig()).post(urlString, null, {\n withCredentials: true,\n });\n }\n throw new Error(`Not ready! Current status: ${restartStatus}`);\n}\n"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,kBAAkB,GAAG,wBAA3B;AACA,IAAMC,iCAAiC,aAAMD,kBAAN,qBAAvC;AAEA,IAAME,UAAU,GAAG,2BAAnB;;AACA,IAAMC,YAAY,GAAG,OAAO;EAC1BC,IAAI,wBADsB;EAE1BF;AAF0B,CAAP,CAArB;AAKA;AACA;AACA;AACA;;;SACsBG,S;;;AAUtB;AACA;AACA;AACA;;;;iCAbO,aAA2B;IAChC,IAAMC,SAAS,GAAGC,aAAA,CAAKC,MAAL,CAChBR,kBADgB,EAEhB,IAAAS,sBAAA,EAAaC,uBAAA,CAAQC,OAAR,CAAgBC,SAAhB,EAAb,CAFgB,CAAlB;;IAIA,OAAO,IAAAC,uBAAA,EAAeV,YAAY,EAA3B,EAA+BW,GAA/B,CAAmCR,SAAnC,EAA8C;MACnDS,eAAe,EAAE;IADkC,CAA9C,CAAP;EAGD,C;;;;SAMqBC,e;;;;;uCAAf,aAAiC;IACtC,IAAM;MAAEC;IAAF,IAAoB,OAAOZ,SAAS,EAAhB,EAAoBa,IAA9C;;IACA,IAAID,aAAa,KAAK,OAAtB,EAA+B;MAC7B,IAAMX,SAAS,GAAGC,aAAA,CAAKC,MAAL,CAChBP,iCADgB,EAEhB,IAAAQ,sBAAA,EAAaC,uBAAA,CAAQC,OAAR,CAAgBC,SAAhB,EAAb,CAFgB,CAAlB;;MAIA,OAAO,IAAAC,uBAAA,EAAeV,YAAY,EAA3B,EAA+BgB,IAA/B,CAAoCb,SAApC,EAA+C,IAA/C,EAAqD;QAC1DS,eAAe,EAAE;MADyC,CAArD,CAAP;IAGD;;IACD,MAAM,IAAIK,KAAJ,sCAAwCH,aAAxC,EAAN;EACD,C"}
1
+ {"version":3,"file":"StartupApi.js","names":["startupURLTemplate","startupInitiateRestartURLTemplate","apiVersion","getApiConfig","path","RestartStatus","getStatus","urlString","util","format","getTenantURL","storage","session","getTenant","data","generateESVApi","get","withCredentials","restartStatus","initiateRestart","ready","post","Error"],"sources":["api/StartupApi.ts"],"sourcesContent":["import util from 'util';\nimport { getTenantURL } from './utils/ApiUtils';\nimport { generateESVApi } from './BaseApi';\nimport storage from '../storage/SessionStorage';\n\nconst startupURLTemplate = '%s/environment/startup';\nconst startupInitiateRestartURLTemplate = `${startupURLTemplate}?_action=restart`;\n\nconst apiVersion = 'protocol=1.0,resource=1.0';\nconst getApiConfig = () => ({\n path: `/environment/startup`,\n apiVersion,\n});\n\nexport enum RestartStatus {\n restarting = 'restarting',\n ready = 'ready',\n}\n\n/**\n * Get status\n * @returns {Promise<RestartStatus>} a promise that resolves to a string indicating status\n */\nexport async function getStatus(): Promise<RestartStatus> {\n const urlString = util.format(\n startupURLTemplate,\n getTenantURL(storage.session.getTenant())\n );\n const { data } = await generateESVApi(getApiConfig()).get(urlString, {\n withCredentials: true,\n });\n return data.restartStatus;\n}\n\n/**\n * Initiate restart\n * @returns {Promise<string>} a promise that resolves to a string indicating status\n */\nexport async function initiateRestart(): Promise<RestartStatus> {\n const restartStatus = await getStatus();\n if (restartStatus === RestartStatus.ready) {\n const urlString = util.format(\n startupInitiateRestartURLTemplate,\n getTenantURL(storage.session.getTenant())\n );\n const { data } = await generateESVApi(getApiConfig()).post(\n urlString,\n null,\n {\n withCredentials: true,\n }\n );\n return data.restartStatus;\n }\n throw new Error(`Not ready! Current status: ${restartStatus}`);\n}\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,kBAAkB,GAAG,wBAA3B;AACA,IAAMC,iCAAiC,aAAMD,kBAAN,qBAAvC;AAEA,IAAME,UAAU,GAAG,2BAAnB;;AACA,IAAMC,YAAY,GAAG,OAAO;EAC1BC,IAAI,wBADsB;EAE1BF;AAF0B,CAAP,CAArB;;IAKYG,a;AAKZ;AACA;AACA;AACA;;;;WARYA,a;EAAAA,a;EAAAA,a;GAAAA,a,6BAAAA,a;;SASUC,S;;;AAWtB;AACA;AACA;AACA;;;;iCAdO,aAAmD;IACxD,IAAMC,SAAS,GAAGC,aAAA,CAAKC,MAAL,CAChBT,kBADgB,EAEhB,IAAAU,sBAAA,EAAaC,uBAAA,CAAQC,OAAR,CAAgBC,SAAhB,EAAb,CAFgB,CAAlB;;IAIA,IAAM;MAAEC;IAAF,UAAiB,IAAAC,uBAAA,EAAeZ,YAAY,EAA3B,EAA+Ba,GAA/B,CAAmCT,SAAnC,EAA8C;MACnEU,eAAe,EAAE;IADkD,CAA9C,CAAvB;IAGA,OAAOH,IAAI,CAACI,aAAZ;EACD,C;;;;SAMqBC,e;;;;;uCAAf,aAAyD;IAC9D,IAAMD,aAAa,SAASZ,SAAS,EAArC;;IACA,IAAIY,aAAa,KAAKb,aAAa,CAACe,KAApC,EAA2C;MACzC,IAAMb,SAAS,GAAGC,aAAA,CAAKC,MAAL,CAChBR,iCADgB,EAEhB,IAAAS,sBAAA,EAAaC,uBAAA,CAAQC,OAAR,CAAgBC,SAAhB,EAAb,CAFgB,CAAlB;;MAIA,IAAM;QAAEC;MAAF,UAAiB,IAAAC,uBAAA,EAAeZ,YAAY,EAA3B,EAA+BkB,IAA/B,CACrBd,SADqB,EAErB,IAFqB,EAGrB;QACEU,eAAe,EAAE;MADnB,CAHqB,CAAvB;MAOA,OAAOH,IAAI,CAACI,aAAZ;IACD;;IACD,MAAM,IAAII,KAAJ,sCAAwCJ,aAAxC,EAAN;EACD,C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StartupApi.test.js","names":["__dirname","path","dirname","fileURLToPath","mock","MockAdapter","axios","state","default","session","setTenant","setRealm","setCookieName","setCookieValue","describe","test","response","JSON","parse","fs","readFileSync","resolve","onGet","reply","status","StartupRaw","getStatus","expect","RestartStatus","toBeTruthy","toBe","ready","restarting","response1","response2","onPost","initiateRestart","assertions","error","message"],"sources":["api/StartupApi.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { StartupRaw, state } from '../index';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst mock = new MockAdapter(axios);\n\nstate.default.session.setTenant('https://openam-frodo-dev.forgeblocks.com/am');\nstate.default.session.setRealm('alpha');\nstate.default.session.setCookieName('cookieName');\nstate.default.session.setCookieValue('cookieValue');\n\ndescribe('StartupApi - getStatus()', () => {\n test('getStatus() 1: Get restart status - expect \"ready\"', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/StartupApi/getStatus/ready.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet('https://openam-frodo-dev.forgeblocks.com/environment/startup')\n .reply(200, response);\n const status = await StartupRaw.getStatus();\n expect(status in StartupRaw.RestartStatus).toBeTruthy();\n expect(status).toBe(StartupRaw.RestartStatus.ready);\n });\n\n test('getStatus() 2: Get restart status - expect \"restarting\"', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/StartupApi/getStatus/restarting.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet('https://openam-frodo-dev.forgeblocks.com/environment/startup')\n .reply(200, response);\n const status = await StartupRaw.getStatus();\n expect(status in StartupRaw.RestartStatus).toBeTruthy();\n expect(status).toBe(StartupRaw.RestartStatus.restarting);\n });\n});\n\ndescribe('StartupApi - initiateRestart()', () => {\n test('initiateRestart() 1: Initiate restart - expect \"ready\" -> \"restarting\"', async () => {\n const response1 = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/StartupApi/getStatus/ready.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet('https://openam-frodo-dev.forgeblocks.com/environment/startup')\n .reply(200, response1);\n const response2 = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/StartupApi/initiateRestart/restarting.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/startup?_action=restart'\n )\n .reply(200, response2);\n const status = await StartupRaw.initiateRestart();\n expect(status in StartupRaw.RestartStatus).toBeTruthy();\n expect(status).toBe(StartupRaw.RestartStatus.restarting);\n });\n\n test('initiateRestart() 2: Initiate restart - expect \"restarting\" -> exception', async () => {\n const response1 = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/StartupApi/getStatus/restarting.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet('https://openam-frodo-dev.forgeblocks.com/environment/startup')\n .reply(200, response1);\n const response2 = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../../test/mocks/StartupApi/initiateRestart/restarting.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/startup?_action=restart'\n )\n .reply(200, response2);\n expect.assertions(2);\n try {\n await StartupRaw.initiateRestart();\n } catch (error) {\n expect(error).toBeTruthy();\n expect(error.message).toBe('Not ready! Current status: restarting');\n }\n });\n});\n"],"mappings":"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"}