@rockcarver/frodo-lib 0.16.2-14 → 0.16.2-15

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 (88) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/cjs/api/ApiTypes.js.map +1 -1
  3. package/cjs/api/BaseApi.js +40 -18
  4. package/cjs/api/BaseApi.js.map +1 -1
  5. package/cjs/api/ManagedObjectApi.js +27 -6
  6. package/cjs/api/ManagedObjectApi.js.map +1 -1
  7. package/cjs/api/OAuth2OIDCApi.js +22 -6
  8. package/cjs/api/OAuth2OIDCApi.js.map +1 -1
  9. package/cjs/api/ServiceApi.js +47 -11
  10. package/cjs/api/ServiceApi.js.map +1 -1
  11. package/cjs/index.js +7 -1
  12. package/cjs/index.js.map +1 -1
  13. package/cjs/ops/AuthenticateOps.js +238 -98
  14. package/cjs/ops/AuthenticateOps.js.map +1 -1
  15. package/cjs/ops/ConnectionProfileOps.js +219 -84
  16. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  17. package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
  18. package/cjs/ops/IdmOps.js.map +1 -1
  19. package/cjs/ops/JoseOps.js +81 -0
  20. package/cjs/ops/JoseOps.js.map +1 -0
  21. package/cjs/ops/JoseOps.test.js.map +1 -0
  22. package/cjs/ops/LogOps.js +3 -3
  23. package/cjs/ops/LogOps.js.map +1 -1
  24. package/cjs/ops/ServiceAccountOps.js +61 -0
  25. package/cjs/ops/ServiceAccountOps.js.map +1 -0
  26. package/cjs/ops/ServiceAccountOps.test.js.map +1 -0
  27. package/cjs/ops/ServiceOps.js +49 -27
  28. package/cjs/ops/ServiceOps.js.map +1 -1
  29. package/cjs/ops/utils/ExportImportUtils.js +10 -7
  30. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  31. package/cjs/ops/utils/OpsUtils.js +14 -0
  32. package/cjs/ops/utils/OpsUtils.js.map +1 -1
  33. package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
  34. package/cjs/storage/SessionStorage.js +6 -0
  35. package/cjs/storage/SessionStorage.js.map +1 -1
  36. package/cjs/test/mocks/ForgeRockApiMockEngine.js +12 -0
  37. package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
  38. package/esm/api/BaseApi.mjs +47 -15
  39. package/esm/api/ManagedObjectApi.mjs +16 -1
  40. package/esm/api/OAuth2OIDCApi.mjs +8 -0
  41. package/esm/api/ServiceApi.mjs +47 -18
  42. package/esm/index.mjs +3 -0
  43. package/esm/ops/AuthenticateOps.mjs +208 -86
  44. package/esm/ops/ConnectionProfileOps.mjs +184 -56
  45. package/esm/ops/ConnectionProfileOps.test.mjs +3 -3
  46. package/esm/ops/JoseOps.mjs +41 -0
  47. package/esm/ops/JoseOps.test.mjs +132 -0
  48. package/esm/ops/LogOps.mjs +3 -3
  49. package/esm/ops/ServiceAccountOps.mjs +41 -0
  50. package/esm/ops/ServiceAccountOps.test.mjs +52 -0
  51. package/esm/ops/ServiceOps.mjs +49 -37
  52. package/esm/ops/utils/ExportImportUtils.mjs +10 -8
  53. package/esm/ops/utils/OpsUtils.mjs +13 -0
  54. package/esm/ops/utils/OpsUtils.test.mjs +138 -10
  55. package/esm/storage/SessionStorage.mjs +6 -0
  56. package/esm/test/mocks/ForgeRockApiMockEngine.mjs +11 -0
  57. package/package.json +4 -3
  58. package/types/api/ApiTypes.d.ts +1 -2
  59. package/types/api/ApiTypes.d.ts.map +1 -1
  60. package/types/api/BaseApi.d.ts.map +1 -1
  61. package/types/api/ManagedObjectApi.d.ts +9 -1
  62. package/types/api/ManagedObjectApi.d.ts.map +1 -1
  63. package/types/api/OAuth2OIDCApi.d.ts +4 -2
  64. package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
  65. package/types/api/ServiceApi.d.ts +14 -7
  66. package/types/api/ServiceApi.d.ts.map +1 -1
  67. package/types/index.d.ts +3 -0
  68. package/types/index.d.ts.map +1 -1
  69. package/types/ops/AuthenticateOps.d.ts +10 -2
  70. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  71. package/types/ops/ConnectionProfileOps.d.ts +49 -21
  72. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  73. package/types/ops/IdmOps.d.ts.map +1 -1
  74. package/types/ops/JoseOps.d.ts +33 -0
  75. package/types/ops/JoseOps.d.ts.map +1 -0
  76. package/types/ops/LogOps.d.ts.map +1 -1
  77. package/types/ops/ServiceAccountOps.d.ts +20 -0
  78. package/types/ops/ServiceAccountOps.d.ts.map +1 -0
  79. package/types/ops/ServiceOps.d.ts +18 -10
  80. package/types/ops/ServiceOps.d.ts.map +1 -1
  81. package/types/ops/utils/ExportImportUtils.d.ts +2 -1
  82. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  83. package/types/ops/utils/OpsUtils.d.ts +6 -0
  84. package/types/ops/utils/OpsUtils.d.ts.map +1 -1
  85. package/types/storage/SessionStorage.d.ts +7 -0
  86. package/types/storage/SessionStorage.d.ts.map +1 -1
  87. package/types/test/mocks/ForgeRockApiMockEngine.d.ts +1 -0
  88. package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
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.16.2-15] - 2022-12-10
11
+
10
12
  ## [0.16.2-14] - 2022-12-01
11
13
 
12
14
  ## [0.16.2-13] - 2022-11-26
@@ -714,7 +716,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
714
716
  - Fixed problem with adding connection profiles
715
717
  - Miscellaneous bug fixes
716
718
 
717
- [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-14...HEAD
719
+ [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-15...HEAD
720
+
721
+ [0.16.2-15]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-14...v0.16.2-15
718
722
 
719
723
  [0.16.2-14]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-13...v0.16.2-14
720
724
 
@@ -1 +1 @@
1
- {"version":3,"file":"ApiTypes.js","names":["ScriptLanguage","ScriptContext","Saml2ProiderLocation"],"sources":["api/ApiTypes.ts"],"sourcesContent":["interface ObjectSkeletonInterface {\n _id: string;\n _rev?: number;\n [k: string]: string | number | boolean | string[] | ObjectSkeletonInterface;\n}\n\nexport interface UiConfigInterface {\n categories: string;\n}\n\nexport interface NodeRefSkeletonInterface {\n connections: Record<string, string>;\n displayName: string;\n nodeType: string;\n x: number;\n y: number;\n}\n\nexport interface InnerNodeRefSkeletonInterface {\n _id: string;\n displayName: string;\n nodeType: string;\n}\n\nexport type TreeSkeleton = ObjectSkeletonInterface & {\n entryNodeId: string;\n nodes: Record<string, NodeRefSkeletonInterface>;\n identityResource?: string;\n uiConfig?: UiConfigInterface;\n enabled?: boolean;\n};\n\nexport type AmServiceType = ObjectSkeletonInterface & {\n name: string;\n};\n\nexport type NodeSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n nodes?: InnerNodeRefSkeletonInterface[];\n tree?: string;\n identityResource?: string;\n};\n\nexport type SocialIdpSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n enabled: boolean;\n};\n\nexport type AmServiceSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n};\n\nexport type AgentSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n};\n\nexport type EmailTemplateSkeleton = ObjectSkeletonInterface & {\n defaultLocale?: string;\n displayName?: string;\n enabled?: boolean;\n from: string;\n subject: Record<string, string>;\n};\n\nexport type ThemeSkeleton = ObjectSkeletonInterface & {\n name: string;\n isDefault: boolean;\n linkedTrees: string[];\n};\n\nexport type UiThemeRealmObject = ObjectSkeletonInterface & {\n name: string;\n realm: Map<string, ThemeSkeleton[]>;\n};\n\nexport enum ScriptLanguage {\n GROOVY = 'GROOVY',\n JAVASCRIPT = 'JAVASCRIPT',\n}\n\nexport enum ScriptContext {\n OAUTH2_ACCESS_TOKEN_MODIFICATION = 'OAUTH2_ACCESS_TOKEN_MODIFICATION',\n AUTHENTICATION_CLIENT_SIDE = 'AUTHENTICATION_CLIENT_SIDE',\n AUTHENTICATION_TREE_DECISION_NODE = 'AUTHENTICATION_TREE_DECISION_NODE',\n AUTHENTICATION_SERVER_SIDE = 'AUTHENTICATION_SERVER_SIDE',\n SOCIAL_IDP_PROFILE_TRANSFORMATION = 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n OAUTH2_VALIDATE_SCOPE = 'OAUTH2_VALIDATE_SCOPE',\n CONFIG_PROVIDER_NODE = 'CONFIG_PROVIDER_NODE',\n OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER = 'OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER',\n OAUTH2_EVALUATE_SCOPE = 'OAUTH2_EVALUATE_SCOPE',\n POLICY_CONDITION = 'POLICY_CONDITION',\n OIDC_CLAIMS = 'OIDC_CLAIMS',\n SAML2_IDP_ADAPTER = 'SAML2_IDP_ADAPTER',\n SAML2_IDP_ATTRIBUTE_MAPPER = 'SAML2_IDP_ATTRIBUTE_MAPPER',\n OAUTH2_MAY_ACT = 'OAUTH2_MAY_ACT',\n}\n\nexport type ScriptSkeleton = ObjectSkeletonInterface & {\n name: string;\n description: string;\n isDefault: boolean;\n script: string;\n language: ScriptLanguage;\n context: ScriptContext;\n createdBy: string;\n creationDate: number;\n lastModifiedBy: string;\n lastModifiedDate: number;\n};\n\nexport enum Saml2ProiderLocation {\n HOSTED = 'hosted',\n REMOTE = 'remote',\n}\n\nexport type Saml2ProviderStub = ObjectSkeletonInterface & {\n entityId: string;\n location: Saml2ProiderLocation;\n roles: string[];\n};\n\nexport type Saml2ProviderSkeleton = ObjectSkeletonInterface & {\n entityId: string;\n entityLocation: Saml2ProiderLocation;\n serviceProvider: unknown;\n identityProvider: unknown;\n attributeQueryProvider: unknown;\n xacmlPolicyEnforcementPoint: unknown;\n};\n\nexport type CircleOfTrustSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n status: string;\n trustedProviders: string[];\n};\n\nexport type PagedResult<Result> = {\n result: Result[];\n resultCount: number;\n pagedResultsCookie: string;\n totalPagedResultsPolicy: 'EXACT';\n totalPagedResults: number;\n remainingPagedResults: number;\n};\n"],"mappings":";;;;;;IA6EYA,cAAc;AAAA;AAAA,WAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;AAAA,GAAdA,cAAc,8BAAdA,cAAc;AAAA,IAKdC,aAAa;AAAA;AAAA,WAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,6BAAbA,aAAa;AAAA,IA8BbC,oBAAoB;AAAA;AAAA,WAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;AAAA,GAApBA,oBAAoB,oCAApBA,oBAAoB"}
1
+ {"version":3,"file":"ApiTypes.js","names":["ScriptLanguage","ScriptContext","Saml2ProiderLocation"],"sources":["api/ApiTypes.ts"],"sourcesContent":["export interface ObjectSkeletonInterface {\n _id: string;\n _rev?: number;\n [k: string]: string | number | boolean | string[] | ObjectSkeletonInterface;\n}\n\nexport interface UiConfigInterface {\n categories: string;\n}\n\nexport interface NodeRefSkeletonInterface {\n connections: Record<string, string>;\n displayName: string;\n nodeType: string;\n x: number;\n y: number;\n}\n\nexport interface InnerNodeRefSkeletonInterface {\n _id: string;\n displayName: string;\n nodeType: string;\n}\n\nexport type TreeSkeleton = ObjectSkeletonInterface & {\n entryNodeId: string;\n nodes: Record<string, NodeRefSkeletonInterface>;\n identityResource?: string;\n uiConfig?: UiConfigInterface;\n enabled?: boolean;\n};\n\nexport type AmServiceType = ObjectSkeletonInterface & {\n name: string;\n};\n\nexport type NodeSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n nodes?: InnerNodeRefSkeletonInterface[];\n tree?: string;\n identityResource?: string;\n};\n\nexport type SocialIdpSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n enabled: boolean;\n};\n\nexport type AmServiceSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n};\n\nexport type AgentSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n};\n\nexport type EmailTemplateSkeleton = ObjectSkeletonInterface & {\n defaultLocale?: string;\n displayName?: string;\n enabled?: boolean;\n from: string;\n subject: Record<string, string>;\n};\n\nexport type ThemeSkeleton = ObjectSkeletonInterface & {\n name: string;\n isDefault: boolean;\n linkedTrees: string[];\n};\n\nexport type UiThemeRealmObject = ObjectSkeletonInterface & {\n name: string;\n realm: Map<string, ThemeSkeleton[]>;\n};\n\nexport enum ScriptLanguage {\n GROOVY = 'GROOVY',\n JAVASCRIPT = 'JAVASCRIPT',\n}\n\nexport enum ScriptContext {\n OAUTH2_ACCESS_TOKEN_MODIFICATION = 'OAUTH2_ACCESS_TOKEN_MODIFICATION',\n AUTHENTICATION_CLIENT_SIDE = 'AUTHENTICATION_CLIENT_SIDE',\n AUTHENTICATION_TREE_DECISION_NODE = 'AUTHENTICATION_TREE_DECISION_NODE',\n AUTHENTICATION_SERVER_SIDE = 'AUTHENTICATION_SERVER_SIDE',\n SOCIAL_IDP_PROFILE_TRANSFORMATION = 'SOCIAL_IDP_PROFILE_TRANSFORMATION',\n OAUTH2_VALIDATE_SCOPE = 'OAUTH2_VALIDATE_SCOPE',\n CONFIG_PROVIDER_NODE = 'CONFIG_PROVIDER_NODE',\n OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER = 'OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER',\n OAUTH2_EVALUATE_SCOPE = 'OAUTH2_EVALUATE_SCOPE',\n POLICY_CONDITION = 'POLICY_CONDITION',\n OIDC_CLAIMS = 'OIDC_CLAIMS',\n SAML2_IDP_ADAPTER = 'SAML2_IDP_ADAPTER',\n SAML2_IDP_ATTRIBUTE_MAPPER = 'SAML2_IDP_ATTRIBUTE_MAPPER',\n OAUTH2_MAY_ACT = 'OAUTH2_MAY_ACT',\n}\n\nexport type ScriptSkeleton = ObjectSkeletonInterface & {\n name: string;\n description: string;\n isDefault: boolean;\n script: string;\n language: ScriptLanguage;\n context: ScriptContext;\n createdBy: string;\n creationDate: number;\n lastModifiedBy: string;\n lastModifiedDate: number;\n};\n\nexport enum Saml2ProiderLocation {\n HOSTED = 'hosted',\n REMOTE = 'remote',\n}\n\nexport type Saml2ProviderStub = ObjectSkeletonInterface & {\n entityId: string;\n location: Saml2ProiderLocation;\n roles: string[];\n};\n\nexport type Saml2ProviderSkeleton = ObjectSkeletonInterface & {\n entityId: string;\n entityLocation: Saml2ProiderLocation;\n serviceProvider: unknown;\n identityProvider: unknown;\n attributeQueryProvider: unknown;\n xacmlPolicyEnforcementPoint: unknown;\n};\n\nexport type CircleOfTrustSkeleton = ObjectSkeletonInterface & {\n _type: AmServiceType;\n status: string;\n trustedProviders: string[];\n};\n\nexport type PagedResult<Result> = {\n result: Result[];\n resultCount: number;\n pagedResultsCookie: string;\n totalPagedResultsPolicy: 'EXACT';\n totalPagedResults: number;\n remainingPagedResults: number;\n};\n"],"mappings":";;;;;;IA6EYA,cAAc;AAAA;AAAA,WAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;AAAA,GAAdA,cAAc,8BAAdA,cAAc;AAAA,IAKdC,aAAa;AAAA;AAAA,WAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,6BAAbA,aAAa;AAAA,IA8BbC,oBAAoB;AAAA;AAAA,WAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;AAAA,GAApBA,oBAAoB,oCAApBA,oBAAoB"}
@@ -130,14 +130,16 @@ function curlirize(request) {
130
130
  */
131
131
  function generateAmApi(resource) {
132
132
  var requestOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
133
- var headers = _objectSpread(_objectSpread({
133
+ var headers = _objectSpread(_objectSpread(_objectSpread({
134
134
  'User-Agent': userAgent,
135
135
  'X-ForgeRock-TransactionId': transactionId,
136
136
  'Content-Type': 'application/json'
137
137
  }, resource.apiVersion && {
138
138
  'Accept-API-Version': resource.apiVersion
139
- }), _SessionStorage.default.session.getCookieName() && _SessionStorage.default.session.getCookieValue() && {
139
+ }), !_SessionStorage.default.session.getUseBearerTokenForAmApis() && _SessionStorage.default.session.getCookieName() && _SessionStorage.default.session.getCookieValue() && {
140
140
  Cookie: "".concat(_SessionStorage.default.session.getCookieName(), "=").concat(_SessionStorage.default.session.getCookieValue())
141
+ }), _SessionStorage.default.session.getUseBearerTokenForAmApis() && _SessionStorage.default.session.getBearerToken() && {
142
+ Authorization: "Bearer ".concat(_SessionStorage.default.session.getBearerToken())
141
143
  });
142
144
  if (requestOverride['headers']) {
143
145
  headers = _objectSpread(_objectSpread({}, headers), requestOverride['headers']);
@@ -170,13 +172,15 @@ function generateAmApi(resource) {
170
172
  */
171
173
  function generateOauth2Api(resource) {
172
174
  var requestOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
173
- var headers = _objectSpread(_objectSpread({
175
+ var headers = _objectSpread(_objectSpread(_objectSpread({
174
176
  'User-Agent': userAgent,
175
177
  'X-ForgeRock-TransactionId': transactionId
176
178
  }, resource.apiVersion && {
177
179
  'Accept-API-Version': resource.apiVersion
178
- }), _SessionStorage.default.session.getCookieName() && _SessionStorage.default.session.getCookieValue() && {
180
+ }), !_SessionStorage.default.session.getUseBearerTokenForAmApis() && _SessionStorage.default.session.getCookieName() && _SessionStorage.default.session.getCookieValue() && {
179
181
  Cookie: "".concat(_SessionStorage.default.session.getCookieName(), "=").concat(_SessionStorage.default.session.getCookieValue())
182
+ }), _SessionStorage.default.session.getUseBearerTokenForAmApis() && _SessionStorage.default.session.getBearerToken() && {
183
+ Authorization: "Bearer ".concat(_SessionStorage.default.session.getBearerToken())
180
184
  });
181
185
  if (requestOverride['headers']) {
182
186
  headers = _objectSpread(_objectSpread({}, headers), requestOverride['headers']);
@@ -211,19 +215,25 @@ function generateIdmApi() {
211
215
  var requestDetails = _objectSpread(_objectSpread({
212
216
  // baseURL: getTenantURL(storage.session.getTenant()),
213
217
  timeout,
214
- headers: {
218
+ headers: _objectSpread({
215
219
  'User-Agent': userAgent,
216
220
  'X-ForgeRock-TransactionId': transactionId,
217
221
  'Content-Type': 'application/json'
218
- }
222
+ }, _SessionStorage.default.session.getBearerToken() && {
223
+ Authorization: "Bearer ".concat(_SessionStorage.default.session.getBearerToken())
224
+ })
219
225
  }, requestOverride), {}, {
220
226
  httpAgent: getHttpAgent(),
221
227
  httpsAgent: getHttpsAgent(),
222
228
  proxy: getProxy()
223
229
  });
224
- if (_SessionStorage.default.session.getBearerToken()) {
225
- requestDetails.headers['Authorization'] = "Bearer ".concat(_SessionStorage.default.session.getBearerToken());
226
- }
230
+
231
+ // if (storage.session.getBearerToken()) {
232
+ // requestDetails.headers[
233
+ // 'Authorization'
234
+ // ] = `Bearer ${storage.session.getBearerToken()}`;
235
+ // }
236
+
227
237
  var request = _axios.default.create(requestDetails);
228
238
 
229
239
  // enable curlirizer output in debug mode
@@ -242,10 +252,12 @@ function generateIdmApi() {
242
252
  */
243
253
  function generateLogKeysApi() {
244
254
  var requestOverride = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
245
- var headers = {
255
+ var headers = _objectSpread({
246
256
  'User-Agent': userAgent,
247
257
  'Content-Type': 'application/json'
248
- };
258
+ }, _SessionStorage.default.session.getBearerToken() && {
259
+ Authorization: "Bearer ".concat(_SessionStorage.default.session.getBearerToken())
260
+ });
249
261
  var requestDetails = _objectSpread(_objectSpread({
250
262
  // baseURL: getTenantURL(storage.session.getTenant()),
251
263
  timeout,
@@ -255,9 +267,13 @@ function generateLogKeysApi() {
255
267
  httpsAgent: getHttpsAgent(),
256
268
  proxy: getProxy()
257
269
  });
258
- if (_SessionStorage.default.session.getBearerToken()) {
259
- requestDetails.headers['Authorization'] = "Bearer ".concat(_SessionStorage.default.session.getBearerToken());
260
- }
270
+
271
+ // if (storage.session.getBearerToken()) {
272
+ // requestDetails.headers[
273
+ // 'Authorization'
274
+ // ] = `Bearer ${storage.session.getBearerToken()}`;
275
+ // }
276
+
261
277
  var request = _axios.default.create(requestDetails);
262
278
 
263
279
  // enable curlirizer output in debug mode
@@ -308,11 +324,13 @@ function generateLogApi() {
308
324
  */
309
325
  function generateESVApi(resource) {
310
326
  var requestOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
311
- var headers = _objectSpread({
327
+ var headers = _objectSpread(_objectSpread({
312
328
  'User-Agent': userAgent,
313
329
  'Content-Type': 'application/json'
314
330
  }, resource.apiVersion && {
315
331
  'Accept-API-Version': resource.apiVersion
332
+ }), _SessionStorage.default.session.getBearerToken() && {
333
+ Authorization: "Bearer ".concat(_SessionStorage.default.session.getBearerToken())
316
334
  });
317
335
  var requestDetails = _objectSpread(_objectSpread({
318
336
  // baseURL: getTenantURL(storage.session.getTenant()),
@@ -323,9 +341,13 @@ function generateESVApi(resource) {
323
341
  httpsAgent: getHttpsAgent(),
324
342
  proxy: getProxy()
325
343
  });
326
- if (_SessionStorage.default.session.getBearerToken()) {
327
- requestDetails.headers['Authorization'] = "Bearer ".concat(_SessionStorage.default.session.getBearerToken());
328
- }
344
+
345
+ // if (storage.session.getBearerToken()) {
346
+ // requestDetails.headers[
347
+ // 'Authorization'
348
+ // ] = `Bearer ${storage.session.getBearerToken()}`;
349
+ // }
350
+
329
351
  var request = _axios.default.create(requestDetails);
330
352
 
331
353
  // enable curlirizer output in debug mode
@@ -1 +1 @@
1
- {"version":3,"file":"BaseApi.js","names":["FrodoMockAdapter","process","env","FRODO_MOCK","frodo_mock","MockAdapter","axios","undefined","mockAll","__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","axiosRetry","retries","shouldResetTimeout","retryCondition","_error","timeout","maxSockets","maxFreeSockets","freeSocketTimeout","userAgent","name","version","transactionId","randomUUID","httpAgent","httpsAgent","getHttpAgent","Agent","getHttpsAgent","options","rejectUnauthorized","storage","session","getAllowInsecureConnection","httpsProxy","HTTPS_PROXY","https_proxy","console","error","parsed","url","hostname","port","protocol","HttpsProxyAgent","HttpsAgent","getProxy","curlirize","request","_curlirize","result","err","command","printMessage","curlirizeMessage","generateAmApi","resource","requestOverride","headers","apiVersion","getCookieName","getCookieValue","Cookie","requestDetails","getAuthenticationHeaderOverrides","proxy","create","getCurlirize","generateOauth2Api","generateIdmApi","getBearerToken","generateLogKeysApi","generateLogApi","getLogApiKey","getLogApiSecret","generateESVApi","generateReleaseApi","baseUrl","baseURL"],"sources":["api/BaseApi.ts"],"sourcesContent":["import axios, { AxiosProxyConfig } from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport Agent from 'agentkeepalive';\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 path from 'path';\nimport { fileURLToPath } from 'url';\nimport { curlirizeMessage, printMessage } from '../ops/utils/Console';\nimport _curlirize from '../ext/axios-curlirize/curlirize';\nimport { randomUUID } from 'crypto';\nimport { mockAll } from '../test/mocks/ForgeRockApiMockEngine';\n\n// this has to be the first statement after the imports for mocking to work\nexport const FrodoMockAdapter =\n process.env.FRODO_MOCK || process.env.frodo_mock\n ? new MockAdapter(axios)\n : undefined;\n\nif (FrodoMockAdapter) mockAll(FrodoMockAdapter);\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\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}`;\nconst transactionId = `frodo-${randomUUID()}`;\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 * Customize curlirize output\n * @param request axios request object\n */\nfunction curlirize(request) {\n _curlirize(request, (result, err) => {\n const { command } = result;\n if (err) {\n printMessage(err, 'error');\n } else {\n curlirizeMessage(command);\n }\n });\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 'X-ForgeRock-TransactionId': transactionId,\n 'Content-Type': 'application/json',\n // only add API version if we have it\n ...(resource.apiVersion && { 'Accept-API-Version': resource.apiVersion }),\n // only send session cookie if we know its name and value\n ...(storage.session.getCookieName() &&\n storage.session.getCookieValue() && {\n Cookie: `${storage.session.getCookieName()}=${storage.session.getCookieValue()}`,\n }),\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 ...headers,\n ...storage.session.getAuthenticationHeaderOverrides(),\n },\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 'X-ForgeRock-TransactionId': transactionId,\n // only add API version if we have it\n ...(resource.apiVersion && { 'Accept-API-Version': resource.apiVersion }),\n // only send session cookie if we know its name and value\n ...(storage.session.getCookieName() &&\n storage.session.getCookieValue() && {\n Cookie: `${storage.session.getCookieName()}=${storage.session.getCookieValue()}`,\n }),\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 ...headers,\n ...storage.session.getAuthenticationHeaderOverrides(),\n },\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 'X-ForgeRock-TransactionId': transactionId,\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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 // only add API version if we have it\n ...(resource.apiVersion && { '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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\n\n return request;\n}\n\n/**\n * Generates a release (Github or Npm) 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 generateReleaseApi(baseUrl, requestOverride = {}) {\n const requestDetails = {\n baseURL: baseUrl,\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 const request = axios.create(requestDetails);\n\n // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\n\n return request;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseApi.js","names":["FrodoMockAdapter","process","env","FRODO_MOCK","frodo_mock","MockAdapter","axios","undefined","mockAll","__dirname","path","dirname","fileURLToPath","pkg","JSON","parse","fs","readFileSync","resolve","axiosRetry","retries","shouldResetTimeout","retryCondition","_error","timeout","maxSockets","maxFreeSockets","freeSocketTimeout","userAgent","name","version","transactionId","randomUUID","httpAgent","httpsAgent","getHttpAgent","Agent","getHttpsAgent","options","rejectUnauthorized","storage","session","getAllowInsecureConnection","httpsProxy","HTTPS_PROXY","https_proxy","console","error","parsed","url","hostname","port","protocol","HttpsProxyAgent","HttpsAgent","getProxy","curlirize","request","_curlirize","result","err","command","printMessage","curlirizeMessage","generateAmApi","resource","requestOverride","headers","apiVersion","getUseBearerTokenForAmApis","getCookieName","getCookieValue","Cookie","getBearerToken","Authorization","requestDetails","getAuthenticationHeaderOverrides","proxy","create","getCurlirize","generateOauth2Api","generateIdmApi","generateLogKeysApi","generateLogApi","getLogApiKey","getLogApiSecret","generateESVApi","generateReleaseApi","baseUrl","baseURL"],"sources":["api/BaseApi.ts"],"sourcesContent":["import axios, { AxiosProxyConfig } from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport Agent from 'agentkeepalive';\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 path from 'path';\nimport { fileURLToPath } from 'url';\nimport { curlirizeMessage, printMessage } from '../ops/utils/Console';\nimport _curlirize from '../ext/axios-curlirize/curlirize';\nimport { randomUUID } from 'crypto';\nimport { mockAll } from '../test/mocks/ForgeRockApiMockEngine';\n\n// this has to be the first statement after the imports for mocking to work\nexport const FrodoMockAdapter =\n process.env.FRODO_MOCK || process.env.frodo_mock\n ? new MockAdapter(axios)\n : undefined;\n\nif (FrodoMockAdapter) mockAll(FrodoMockAdapter);\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\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}`;\nconst transactionId = `frodo-${randomUUID()}`;\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 * Customize curlirize output\n * @param request axios request object\n */\nfunction curlirize(request) {\n _curlirize(request, (result, err) => {\n const { command } = result;\n if (err) {\n printMessage(err, 'error');\n } else {\n curlirizeMessage(command);\n }\n });\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 'X-ForgeRock-TransactionId': transactionId,\n 'Content-Type': 'application/json',\n // only add API version if we have it\n ...(resource.apiVersion && { 'Accept-API-Version': resource.apiVersion }),\n // only send session cookie if we know its name and value and we are not instructed to use the bearer token for AM APIs\n ...(!storage.session.getUseBearerTokenForAmApis() &&\n storage.session.getCookieName() &&\n storage.session.getCookieValue() && {\n Cookie: `${storage.session.getCookieName()}=${storage.session.getCookieValue()}`,\n }),\n // only add authorization header if we have a bearer token and are instructed to use it for AM APIs\n ...(storage.session.getUseBearerTokenForAmApis() &&\n storage.session.getBearerToken() && {\n Authorization: `Bearer ${storage.session.getBearerToken()}`,\n }),\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 ...headers,\n ...storage.session.getAuthenticationHeaderOverrides(),\n },\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 'X-ForgeRock-TransactionId': transactionId,\n // only add API version if we have it\n ...(resource.apiVersion && { 'Accept-API-Version': resource.apiVersion }),\n // only send session cookie if we know its name and value and we are not instructed to use the bearer token for AM APIs\n ...(!storage.session.getUseBearerTokenForAmApis() &&\n storage.session.getCookieName() &&\n storage.session.getCookieValue() && {\n Cookie: `${storage.session.getCookieName()}=${storage.session.getCookieValue()}`,\n }),\n // only add authorization header if we have a bearer token and are instructed to use it for AM APIs\n ...(storage.session.getUseBearerTokenForAmApis() &&\n storage.session.getBearerToken() && {\n Authorization: `Bearer ${storage.session.getBearerToken()}`,\n }),\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 ...headers,\n ...storage.session.getAuthenticationHeaderOverrides(),\n },\n httpAgent: getHttpAgent(),\n httpsAgent: getHttpsAgent(),\n proxy: getProxy(),\n };\n\n const request = axios.create(requestDetails);\n\n // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 'X-ForgeRock-TransactionId': transactionId,\n 'Content-Type': 'application/json',\n // only add authorization header if we have a bearer token\n ...(storage.session.getBearerToken() && {\n Authorization: `Bearer ${storage.session.getBearerToken()}`,\n }),\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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 // only add authorization header if we have a bearer token\n ...(storage.session.getBearerToken() && {\n Authorization: `Bearer ${storage.session.getBearerToken()}`,\n }),\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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\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 // only add API version if we have it\n ...(resource.apiVersion && { 'Accept-API-Version': resource.apiVersion }),\n // only add authorization header if we have a bearer token\n ...(storage.session.getBearerToken() && {\n Authorization: `Bearer ${storage.session.getBearerToken()}`,\n }),\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 // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\n\n return request;\n}\n\n/**\n * Generates a release (Github or Npm) 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 generateReleaseApi(baseUrl, requestOverride = {}) {\n const requestDetails = {\n baseURL: baseUrl,\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 const request = axios.create(requestDetails);\n\n // enable curlirizer output in debug mode\n if (storage.session.getCurlirize()) {\n curlirize(request);\n }\n\n return request;\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.createManagedObject = createManagedObject;
6
7
  exports.getManagedObject = getManagedObject;
7
8
  exports.putManagedObject = putManagedObject;
8
9
  exports.queryAllManagedObjectsByType = queryAllManagedObjectsByType;
@@ -14,6 +15,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
14
15
  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); } }
15
16
  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); }); }; }
16
17
  var managedObjectURLTemplate = '%s/openidm/managed/%s';
18
+ var createManagedObjectURLTemplate = '%s/openidm/managed/%s?_action=create';
17
19
  var managedObjectByIdURLTemplate = '%s/openidm/managed/%s/%s';
18
20
  var managedObjectQueryAllURLTemplate = "".concat(managedObjectURLTemplate, "?_queryFilter=true&_pageSize=10000");
19
21
 
@@ -26,10 +28,10 @@ function getManagedObject(_x, _x2, _x3) {
26
28
  return _getManagedObject.apply(this, arguments);
27
29
  }
28
30
  /**
29
- * Put managed object
30
- * @param {String} id managed object id
31
- * @param {String} data managed object
32
- * @returns {Promise} a promise that resolves to an object containing a managed object
31
+ * Create managed object with server-generated id
32
+ * @param {string} moType managed object type
33
+ * @param {any} moData managed object data
34
+ * @returns {Promise<ObjectSkeletonInterface>} a promise that resolves to an object containing a managed object
33
35
  */
34
36
  function _getManagedObject() {
35
37
  _getManagedObject = _asyncToGenerator(function* (type, id, fields) {
@@ -39,7 +41,26 @@ function _getManagedObject() {
39
41
  });
40
42
  return _getManagedObject.apply(this, arguments);
41
43
  }
42
- function putManagedObject(_x4, _x5, _x6) {
44
+ function createManagedObject(_x4, _x5) {
45
+ return _createManagedObject.apply(this, arguments);
46
+ }
47
+ /**
48
+ * Create or update managed object
49
+ * @param {String} id managed object id
50
+ * @param {String} data managed object
51
+ * @returns {Promise} a promise that resolves to an object containing a managed object
52
+ */
53
+ function _createManagedObject() {
54
+ _createManagedObject = _asyncToGenerator(function* (moType, moData) {
55
+ var urlString = _util.default.format(createManagedObjectURLTemplate, (0, _ApiUtils.getTenantURL)(_SessionStorage.default.session.getTenant()), moType);
56
+ var {
57
+ data
58
+ } = yield (0, _BaseApi.generateIdmApi)().post(urlString, moData);
59
+ return data;
60
+ });
61
+ return _createManagedObject.apply(this, arguments);
62
+ }
63
+ function putManagedObject(_x6, _x7, _x8) {
43
64
  return _putManagedObject.apply(this, arguments);
44
65
  }
45
66
  /**
@@ -56,7 +77,7 @@ function _putManagedObject() {
56
77
  });
57
78
  return _putManagedObject.apply(this, arguments);
58
79
  }
59
- function queryAllManagedObjectsByType(_x7, _x8, _x9) {
80
+ function queryAllManagedObjectsByType(_x9, _x10, _x11) {
60
81
  return _queryAllManagedObjectsByType.apply(this, arguments);
61
82
  }
62
83
  function _queryAllManagedObjectsByType() {
@@ -1 +1 @@
1
- {"version":3,"file":"ManagedObjectApi.js","names":["managedObjectURLTemplate","managedObjectByIdURLTemplate","managedObjectQueryAllURLTemplate","getManagedObject","type","id","fields","fieldsParam","length","join","urlString","util","format","getTenantURL","storage","session","getTenant","generateIdmApi","get","putManagedObject","data","put","queryAllManagedObjectsByType","pageCookie","urlTemplate"],"sources":["api/ManagedObjectApi.ts"],"sourcesContent":["import util from 'util';\nimport { generateIdmApi } from './BaseApi';\nimport { getTenantURL } from './utils/ApiUtils';\nimport storage from '../storage/SessionStorage';\n\nconst managedObjectURLTemplate = '%s/openidm/managed/%s';\nconst managedObjectByIdURLTemplate = '%s/openidm/managed/%s/%s';\nconst managedObjectQueryAllURLTemplate = `${managedObjectURLTemplate}?_queryFilter=true&_pageSize=10000`;\n\n/**\n * Get managed object\n * @param {String} id managed object id\n * @returns {Promise} a promise that resolves to an object containing a managed object\n */\nexport async function getManagedObject(type, id, fields) {\n const fieldsParam =\n fields.length > 0 ? `_fields=${fields.join(',')}` : '_fields=*';\n const urlString = util.format(\n `${managedObjectByIdURLTemplate}?${fieldsParam}`,\n getTenantURL(storage.session.getTenant()),\n type,\n id\n );\n return generateIdmApi().get(urlString);\n}\n\n/**\n * Put managed object\n * @param {String} id managed object id\n * @param {String} data managed object\n * @returns {Promise} a promise that resolves to an object containing a managed object\n */\nexport async function putManagedObject(type, id, data) {\n const urlString = util.format(\n managedObjectByIdURLTemplate,\n getTenantURL(storage.session.getTenant()),\n type,\n id\n );\n return generateIdmApi().put(urlString, data);\n}\n\n/**\n * Query managed objects\n * @param {String} type managed object type\n * @param {String} fields fields to retrieve\n * @param {String} pageCookie paged results cookie\n * @returns {Promise} a promise that resolves to an object containing managed objects of the desired type\n */\nexport async function queryAllManagedObjectsByType(type, fields, pageCookie) {\n const fieldsParam =\n fields.length > 0 ? `&_fields=${fields.join(',')}` : '&_fields=_id';\n const urlTemplate = pageCookie\n ? `${managedObjectQueryAllURLTemplate}${fieldsParam}&_pagedResultsCookie=${pageCookie}`\n : `${managedObjectQueryAllURLTemplate}${fieldsParam}`;\n const urlString = util.format(\n urlTemplate,\n getTenantURL(storage.session.getTenant()),\n type\n );\n return generateIdmApi().get(urlString);\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAAgD;AAAA;AAAA;AAEhD,IAAMA,wBAAwB,GAAG,uBAAuB;AACxD,IAAMC,4BAA4B,GAAG,0BAA0B;AAC/D,IAAMC,gCAAgC,aAAMF,wBAAwB,uCAAoC;;AAExG;AACA;AACA;AACA;AACA;AAJA,SAKsBG,gBAAgB;EAAA;AAAA;AAYtC;AACA;AACA;AACA;AACA;AACA;AALA;EAAA,sCAZO,WAAgCC,IAAI,EAAEC,EAAE,EAAEC,MAAM,EAAE;IACvD,IAAMC,WAAW,GACfD,MAAM,CAACE,MAAM,GAAG,CAAC,qBAAcF,MAAM,CAACG,IAAI,CAAC,GAAG,CAAC,IAAK,WAAW;IACjE,IAAMC,SAAS,GAAGC,aAAI,CAACC,MAAM,WACxBX,4BAA4B,cAAIM,WAAW,GAC9C,IAAAM,sBAAY,EAACC,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,CAAC,EACzCZ,IAAI,EACJC,EAAE,CACH;IACD,OAAO,IAAAY,uBAAc,GAAE,CAACC,GAAG,CAACR,SAAS,CAAC;EACxC,CAAC;EAAA;AAAA;AAAA,SAQqBS,gBAAgB;EAAA;AAAA;AAUtC;AACA;AACA;AACA;AACA;AACA;AACA;AANA;EAAA,sCAVO,WAAgCf,IAAI,EAAEC,EAAE,EAAEe,IAAI,EAAE;IACrD,IAAMV,SAAS,GAAGC,aAAI,CAACC,MAAM,CAC3BX,4BAA4B,EAC5B,IAAAY,sBAAY,EAACC,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,CAAC,EACzCZ,IAAI,EACJC,EAAE,CACH;IACD,OAAO,IAAAY,uBAAc,GAAE,CAACI,GAAG,CAACX,SAAS,EAAEU,IAAI,CAAC;EAC9C,CAAC;EAAA;AAAA;AAAA,SASqBE,4BAA4B;EAAA;AAAA;AAAA;EAAA,kDAA3C,WAA4ClB,IAAI,EAAEE,MAAM,EAAEiB,UAAU,EAAE;IAC3E,IAAMhB,WAAW,GACfD,MAAM,CAACE,MAAM,GAAG,CAAC,sBAAeF,MAAM,CAACG,IAAI,CAAC,GAAG,CAAC,IAAK,cAAc;IACrE,IAAMe,WAAW,GAAGD,UAAU,aACvBrB,gCAAgC,SAAGK,WAAW,kCAAwBgB,UAAU,cAChFrB,gCAAgC,SAAGK,WAAW,CAAE;IACvD,IAAMG,SAAS,GAAGC,aAAI,CAACC,MAAM,CAC3BY,WAAW,EACX,IAAAX,sBAAY,EAACC,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,CAAC,EACzCZ,IAAI,CACL;IACD,OAAO,IAAAa,uBAAc,GAAE,CAACC,GAAG,CAACR,SAAS,CAAC;EACxC,CAAC;EAAA;AAAA"}
1
+ {"version":3,"file":"ManagedObjectApi.js","names":["managedObjectURLTemplate","createManagedObjectURLTemplate","managedObjectByIdURLTemplate","managedObjectQueryAllURLTemplate","getManagedObject","type","id","fields","fieldsParam","length","join","urlString","util","format","getTenantURL","storage","session","getTenant","generateIdmApi","get","createManagedObject","moType","moData","data","post","putManagedObject","put","queryAllManagedObjectsByType","pageCookie","urlTemplate"],"sources":["api/ManagedObjectApi.ts"],"sourcesContent":["import util from 'util';\nimport { generateIdmApi } from './BaseApi';\nimport { getTenantURL } from './utils/ApiUtils';\nimport storage from '../storage/SessionStorage';\nimport { ObjectSkeletonInterface } from './ApiTypes';\n\nconst managedObjectURLTemplate = '%s/openidm/managed/%s';\nconst createManagedObjectURLTemplate = '%s/openidm/managed/%s?_action=create';\nconst managedObjectByIdURLTemplate = '%s/openidm/managed/%s/%s';\nconst managedObjectQueryAllURLTemplate = `${managedObjectURLTemplate}?_queryFilter=true&_pageSize=10000`;\n\n/**\n * Get managed object\n * @param {String} id managed object id\n * @returns {Promise} a promise that resolves to an object containing a managed object\n */\nexport async function getManagedObject(type, id, fields) {\n const fieldsParam =\n fields.length > 0 ? `_fields=${fields.join(',')}` : '_fields=*';\n const urlString = util.format(\n `${managedObjectByIdURLTemplate}?${fieldsParam}`,\n getTenantURL(storage.session.getTenant()),\n type,\n id\n );\n return generateIdmApi().get(urlString);\n}\n\n/**\n * Create managed object with server-generated id\n * @param {string} moType managed object type\n * @param {any} moData managed object data\n * @returns {Promise<ObjectSkeletonInterface>} a promise that resolves to an object containing a managed object\n */\nexport async function createManagedObject(\n moType: string,\n moData\n): Promise<ObjectSkeletonInterface> {\n const urlString = util.format(\n createManagedObjectURLTemplate,\n getTenantURL(storage.session.getTenant()),\n moType\n );\n const { data } = await generateIdmApi().post(urlString, moData);\n return data;\n}\n\n/**\n * Create or update managed object\n * @param {String} id managed object id\n * @param {String} data managed object\n * @returns {Promise} a promise that resolves to an object containing a managed object\n */\nexport async function putManagedObject(type, id, data) {\n const urlString = util.format(\n managedObjectByIdURLTemplate,\n getTenantURL(storage.session.getTenant()),\n type,\n id\n );\n return generateIdmApi().put(urlString, data);\n}\n\n/**\n * Query managed objects\n * @param {String} type managed object type\n * @param {String} fields fields to retrieve\n * @param {String} pageCookie paged results cookie\n * @returns {Promise} a promise that resolves to an object containing managed objects of the desired type\n */\nexport async function queryAllManagedObjectsByType(type, fields, pageCookie) {\n const fieldsParam =\n fields.length > 0 ? `&_fields=${fields.join(',')}` : '&_fields=_id';\n const urlTemplate = pageCookie\n ? `${managedObjectQueryAllURLTemplate}${fieldsParam}&_pagedResultsCookie=${pageCookie}`\n : `${managedObjectQueryAllURLTemplate}${fieldsParam}`;\n const urlString = util.format(\n urlTemplate,\n getTenantURL(storage.session.getTenant()),\n type\n );\n return generateIdmApi().get(urlString);\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AAAgD;AAAA;AAAA;AAGhD,IAAMA,wBAAwB,GAAG,uBAAuB;AACxD,IAAMC,8BAA8B,GAAG,sCAAsC;AAC7E,IAAMC,4BAA4B,GAAG,0BAA0B;AAC/D,IAAMC,gCAAgC,aAAMH,wBAAwB,uCAAoC;;AAExG;AACA;AACA;AACA;AACA;AAJA,SAKsBI,gBAAgB;EAAA;AAAA;AAYtC;AACA;AACA;AACA;AACA;AACA;AALA;EAAA,sCAZO,WAAgCC,IAAI,EAAEC,EAAE,EAAEC,MAAM,EAAE;IACvD,IAAMC,WAAW,GACfD,MAAM,CAACE,MAAM,GAAG,CAAC,qBAAcF,MAAM,CAACG,IAAI,CAAC,GAAG,CAAC,IAAK,WAAW;IACjE,IAAMC,SAAS,GAAGC,aAAI,CAACC,MAAM,WACxBX,4BAA4B,cAAIM,WAAW,GAC9C,IAAAM,sBAAY,EAACC,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,CAAC,EACzCZ,IAAI,EACJC,EAAE,CACH;IACD,OAAO,IAAAY,uBAAc,GAAE,CAACC,GAAG,CAACR,SAAS,CAAC;EACxC,CAAC;EAAA;AAAA;AAAA,SAQqBS,mBAAmB;EAAA;AAAA;AAazC;AACA;AACA;AACA;AACA;AACA;AALA;EAAA,yCAbO,WACLC,MAAc,EACdC,MAAM,EAC4B;IAClC,IAAMX,SAAS,GAAGC,aAAI,CAACC,MAAM,CAC3BZ,8BAA8B,EAC9B,IAAAa,sBAAY,EAACC,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,CAAC,EACzCI,MAAM,CACP;IACD,IAAM;MAAEE;IAAK,CAAC,SAAS,IAAAL,uBAAc,GAAE,CAACM,IAAI,CAACb,SAAS,EAAEW,MAAM,CAAC;IAC/D,OAAOC,IAAI;EACb,CAAC;EAAA;AAAA;AAAA,SAQqBE,gBAAgB;EAAA;AAAA;AAUtC;AACA;AACA;AACA;AACA;AACA;AACA;AANA;EAAA,sCAVO,WAAgCpB,IAAI,EAAEC,EAAE,EAAEiB,IAAI,EAAE;IACrD,IAAMZ,SAAS,GAAGC,aAAI,CAACC,MAAM,CAC3BX,4BAA4B,EAC5B,IAAAY,sBAAY,EAACC,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,CAAC,EACzCZ,IAAI,EACJC,EAAE,CACH;IACD,OAAO,IAAAY,uBAAc,GAAE,CAACQ,GAAG,CAACf,SAAS,EAAEY,IAAI,CAAC;EAC9C,CAAC;EAAA;AAAA;AAAA,SASqBI,4BAA4B;EAAA;AAAA;AAAA;EAAA,kDAA3C,WAA4CtB,IAAI,EAAEE,MAAM,EAAEqB,UAAU,EAAE;IAC3E,IAAMpB,WAAW,GACfD,MAAM,CAACE,MAAM,GAAG,CAAC,sBAAeF,MAAM,CAACG,IAAI,CAAC,GAAG,CAAC,IAAK,cAAc;IACrE,IAAMmB,WAAW,GAAGD,UAAU,aACvBzB,gCAAgC,SAAGK,WAAW,kCAAwBoB,UAAU,cAChFzB,gCAAgC,SAAGK,WAAW,CAAE;IACvD,IAAMG,SAAS,GAAGC,aAAI,CAACC,MAAM,CAC3BgB,WAAW,EACX,IAAAf,sBAAY,EAACC,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,CAAC,EACzCZ,IAAI,CACL;IACD,OAAO,IAAAa,uBAAc,GAAE,CAACC,GAAG,CAACR,SAAS,CAAC;EACxC,CAAC;EAAA;AAAA"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.accessToken = accessToken;
7
7
  exports.authorize = authorize;
8
8
  exports.clientCredentialsGrant = clientCredentialsGrant;
9
+ exports.getTokenInfo = getTokenInfo;
9
10
  var _util = _interopRequireDefault(require("util"));
10
11
  var _qs = _interopRequireDefault(require("qs"));
11
12
  var _BaseApi = require("./BaseApi");
@@ -17,6 +18,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
17
18
  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); }); }; }
18
19
  var authorizeUrlTemplate = '%s/oauth2%s/authorize';
19
20
  var accessTokenUrlTemplate = '%s/oauth2%s/access_token';
21
+ var tokenInfoUrlTemplate = '%s/oauth2%s/tokeninfo';
20
22
  var apiVersion = 'protocol=2.1,resource=1.0';
21
23
  var getApiConfig = () => ({
22
24
  apiVersion
@@ -48,6 +50,17 @@ function _authorize() {
48
50
  function accessToken(_x2) {
49
51
  return _accessToken.apply(this, arguments);
50
52
  }
53
+ function _accessToken() {
54
+ _accessToken = _asyncToGenerator(function* (data) {
55
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
56
+ var accessTokenURL = _util.default.format(accessTokenUrlTemplate, _SessionStorage.default.session.getTenant(), '');
57
+ return (0, _BaseApi.generateOauth2Api)(getApiConfig()).post(accessTokenURL, data, config);
58
+ });
59
+ return _accessToken.apply(this, arguments);
60
+ }
61
+ function getTokenInfo() {
62
+ return _getTokenInfo.apply(this, arguments);
63
+ }
51
64
  /**
52
65
  * Perform client credentials grant flow
53
66
  * @param {String} clientId client id
@@ -55,13 +68,16 @@ function accessToken(_x2) {
55
68
  * @param {String} scope space-delimited scope list
56
69
  * @returns {Promise} a promise resolving to an object containing the authorization server response object
57
70
  */
58
- function _accessToken() {
59
- _accessToken = _asyncToGenerator(function* (data) {
60
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
61
- var accessTokenURL = _util.default.format(accessTokenUrlTemplate, _SessionStorage.default.session.getTenant(), '');
62
- return (0, _BaseApi.generateOauth2Api)(getApiConfig()).post(accessTokenURL, data, config);
71
+ function _getTokenInfo() {
72
+ _getTokenInfo = _asyncToGenerator(function* () {
73
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
74
+ var accessTokenURL = _util.default.format(tokenInfoUrlTemplate, _SessionStorage.default.session.getTenant(), '');
75
+ var {
76
+ data
77
+ } = yield (0, _BaseApi.generateOauth2Api)(getApiConfig()).get(accessTokenURL, config);
78
+ return data;
63
79
  });
64
- return _accessToken.apply(this, arguments);
80
+ return _getTokenInfo.apply(this, arguments);
65
81
  }
66
82
  function clientCredentialsGrant(_x3, _x4, _x5) {
67
83
  return _clientCredentialsGrant.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"OAuth2OIDCApi.js","names":["authorizeUrlTemplate","accessTokenUrlTemplate","apiVersion","getApiConfig","authorize","data","config","authorizeURL","util","format","storage","session","getTenant","generateOauth2Api","post","accessToken","accessTokenURL","clientCredentialsGrant","clientId","clientSecret","scope","urlString","getCurrentRealmPath","requestOverride","headers","Authorization","encode","requestBody","grant_type","qs","stringify","withCredentials"],"sources":["api/OAuth2OIDCApi.ts"],"sourcesContent":["import util from 'util';\nimport qs from 'qs';\nimport { generateOauth2Api } from './BaseApi';\nimport { getCurrentRealmPath } from './utils/ApiUtils';\nimport storage from '../storage/SessionStorage';\nimport { encode } from './utils/Base64';\n\nconst authorizeUrlTemplate = '%s/oauth2%s/authorize';\nconst accessTokenUrlTemplate = '%s/oauth2%s/access_token';\nconst apiVersion = 'protocol=2.1,resource=1.0';\nconst getApiConfig = () => ({\n apiVersion,\n});\n\n/**\n * Perform the authorization step of the authorization code grant flow\n * @param {String} data body form data\n * @param {Object} config axios request config object\n * @returns {Promise} a promise resolving to an object containing the authorization server response object\n */\nexport async function authorize(data, config = {}) {\n const authorizeURL = util.format(\n authorizeUrlTemplate,\n storage.session.getTenant(),\n ''\n );\n return generateOauth2Api(getApiConfig()).post(authorizeURL, data, config);\n}\n\n/**\n * Perform access token request step of the authorization code grant flow\n * @param {*} data body form data\n * @param {*} config config axios request config object\n * @returns {Promise} a promise resolving to an object containing the authorization server response object containing the access token\n */\nexport async function accessToken(data, config = {}) {\n const accessTokenURL = util.format(\n accessTokenUrlTemplate,\n storage.session.getTenant(),\n ''\n );\n return generateOauth2Api(getApiConfig()).post(accessTokenURL, data, config);\n}\n\n/**\n * Perform client credentials grant flow\n * @param {String} clientId client id\n * @param {String} clientSecret client secret\n * @param {String} scope space-delimited scope list\n * @returns {Promise} a promise resolving to an object containing the authorization server response object\n */\nexport async function clientCredentialsGrant(clientId, clientSecret, scope) {\n const urlString = util.format(\n accessTokenUrlTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const requestOverride = {\n headers: {\n Authorization: `Basic ${encode(`${clientId}:${clientSecret}`)}`,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n const requestBody = {\n grant_type: 'client_credentials',\n scope,\n };\n return generateOauth2Api(getApiConfig(), requestOverride).post(\n urlString,\n qs.stringify(requestBody),\n { withCredentials: true }\n );\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAAwC;AAAA;AAAA;AAExC,IAAMA,oBAAoB,GAAG,uBAAuB;AACpD,IAAMC,sBAAsB,GAAG,0BAA0B;AACzD,IAAMC,UAAU,GAAG,2BAA2B;AAC9C,IAAMC,YAAY,GAAG,OAAO;EAC1BD;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AALA,SAMsBE,SAAS;EAAA;AAAA;AAS/B;AACA;AACA;AACA;AACA;AACA;AALA;EAAA,+BATO,WAAyBC,IAAI,EAAe;IAAA,IAAbC,MAAM,uEAAG,CAAC,CAAC;IAC/C,IAAMC,YAAY,GAAGC,aAAI,CAACC,MAAM,CAC9BT,oBAAoB,EACpBU,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,EAC3B,EAAE,CACH;IACD,OAAO,IAAAC,0BAAiB,EAACV,YAAY,EAAE,CAAC,CAACW,IAAI,CAACP,YAAY,EAAEF,IAAI,EAAEC,MAAM,CAAC;EAC3E,CAAC;EAAA;AAAA;AAAA,SAQqBS,WAAW;EAAA;AAAA;AASjC;AACA;AACA;AACA;AACA;AACA;AACA;AANA;EAAA,iCATO,WAA2BV,IAAI,EAAe;IAAA,IAAbC,MAAM,uEAAG,CAAC,CAAC;IACjD,IAAMU,cAAc,GAAGR,aAAI,CAACC,MAAM,CAChCR,sBAAsB,EACtBS,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,EAC3B,EAAE,CACH;IACD,OAAO,IAAAC,0BAAiB,EAACV,YAAY,EAAE,CAAC,CAACW,IAAI,CAACE,cAAc,EAAEX,IAAI,EAAEC,MAAM,CAAC;EAC7E,CAAC;EAAA;AAAA;AAAA,SASqBW,sBAAsB;EAAA;AAAA;AAAA;EAAA,4CAArC,WAAsCC,QAAQ,EAAEC,YAAY,EAAEC,KAAK,EAAE;IAC1E,IAAMC,SAAS,GAAGb,aAAI,CAACC,MAAM,CAC3BR,sBAAsB,EACtBS,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,EAC3B,IAAAU,6BAAmB,GAAE,CACtB;IACD,IAAMC,eAAe,GAAG;MACtBC,OAAO,EAAE;QACPC,aAAa,kBAAW,IAAAC,YAAM,YAAIR,QAAQ,cAAIC,YAAY,EAAG,CAAE;QAC/D,cAAc,EAAE;MAClB;IACF,CAAC;IACD,IAAMQ,WAAW,GAAG;MAClBC,UAAU,EAAE,oBAAoB;MAChCR;IACF,CAAC;IACD,OAAO,IAAAP,0BAAiB,EAACV,YAAY,EAAE,EAAEoB,eAAe,CAAC,CAACT,IAAI,CAC5DO,SAAS,EACTQ,WAAE,CAACC,SAAS,CAACH,WAAW,CAAC,EACzB;MAAEI,eAAe,EAAE;IAAK,CAAC,CAC1B;EACH,CAAC;EAAA;AAAA"}
1
+ {"version":3,"file":"OAuth2OIDCApi.js","names":["authorizeUrlTemplate","accessTokenUrlTemplate","tokenInfoUrlTemplate","apiVersion","getApiConfig","authorize","data","config","authorizeURL","util","format","storage","session","getTenant","generateOauth2Api","post","accessToken","accessTokenURL","getTokenInfo","get","clientCredentialsGrant","clientId","clientSecret","scope","urlString","getCurrentRealmPath","requestOverride","headers","Authorization","encode","requestBody","grant_type","qs","stringify","withCredentials"],"sources":["api/OAuth2OIDCApi.ts"],"sourcesContent":["import util from 'util';\nimport qs from 'qs';\nimport { generateOauth2Api } from './BaseApi';\nimport { getCurrentRealmPath } from './utils/ApiUtils';\nimport storage from '../storage/SessionStorage';\nimport { encode } from './utils/Base64';\nimport { AxiosRequestConfig } from 'axios';\n\nconst authorizeUrlTemplate = '%s/oauth2%s/authorize';\nconst accessTokenUrlTemplate = '%s/oauth2%s/access_token';\nconst tokenInfoUrlTemplate = '%s/oauth2%s/tokeninfo';\nconst apiVersion = 'protocol=2.1,resource=1.0';\nconst getApiConfig = () => ({\n apiVersion,\n});\n\n/**\n * Perform the authorization step of the authorization code grant flow\n * @param {String} data body form data\n * @param {Object} config axios request config object\n * @returns {Promise} a promise resolving to an object containing the authorization server response object\n */\nexport async function authorize(data, config: AxiosRequestConfig = {}) {\n const authorizeURL = util.format(\n authorizeUrlTemplate,\n storage.session.getTenant(),\n ''\n );\n return generateOauth2Api(getApiConfig()).post(authorizeURL, data, config);\n}\n\n/**\n * Perform access token request step of the authorization code grant flow\n * @param {*} data body form data\n * @param {*} config config axios request config object\n * @returns {Promise} a promise resolving to an object containing the authorization server response object containing the access token\n */\nexport async function accessToken(data, config: AxiosRequestConfig = {}) {\n const accessTokenURL = util.format(\n accessTokenUrlTemplate,\n storage.session.getTenant(),\n ''\n );\n return generateOauth2Api(getApiConfig()).post(accessTokenURL, data, config);\n}\n\nexport async function getTokenInfo(config: AxiosRequestConfig = {}) {\n const accessTokenURL = util.format(\n tokenInfoUrlTemplate,\n storage.session.getTenant(),\n ''\n );\n const { data } = await generateOauth2Api(getApiConfig()).get(\n accessTokenURL,\n config\n );\n return data;\n}\n\n/**\n * Perform client credentials grant flow\n * @param {String} clientId client id\n * @param {String} clientSecret client secret\n * @param {String} scope space-delimited scope list\n * @returns {Promise} a promise resolving to an object containing the authorization server response object\n */\nexport async function clientCredentialsGrant(clientId, clientSecret, scope) {\n const urlString = util.format(\n accessTokenUrlTemplate,\n storage.session.getTenant(),\n getCurrentRealmPath()\n );\n const requestOverride = {\n headers: {\n Authorization: `Basic ${encode(`${clientId}:${clientSecret}`)}`,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n const requestBody = {\n grant_type: 'client_credentials',\n scope,\n };\n return generateOauth2Api(getApiConfig(), requestOverride).post(\n urlString,\n qs.stringify(requestBody),\n { withCredentials: true }\n );\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAAwC;AAAA;AAAA;AAGxC,IAAMA,oBAAoB,GAAG,uBAAuB;AACpD,IAAMC,sBAAsB,GAAG,0BAA0B;AACzD,IAAMC,oBAAoB,GAAG,uBAAuB;AACpD,IAAMC,UAAU,GAAG,2BAA2B;AAC9C,IAAMC,YAAY,GAAG,OAAO;EAC1BD;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AALA,SAMsBE,SAAS;EAAA;AAAA;AAS/B;AACA;AACA;AACA;AACA;AACA;AALA;EAAA,+BATO,WAAyBC,IAAI,EAAmC;IAAA,IAAjCC,MAA0B,uEAAG,CAAC,CAAC;IACnE,IAAMC,YAAY,GAAGC,aAAI,CAACC,MAAM,CAC9BV,oBAAoB,EACpBW,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,EAC3B,EAAE,CACH;IACD,OAAO,IAAAC,0BAAiB,EAACV,YAAY,EAAE,CAAC,CAACW,IAAI,CAACP,YAAY,EAAEF,IAAI,EAAEC,MAAM,CAAC;EAC3E,CAAC;EAAA;AAAA;AAAA,SAQqBS,WAAW;EAAA;AAAA;AAAA;EAAA,iCAA1B,WAA2BV,IAAI,EAAmC;IAAA,IAAjCC,MAA0B,uEAAG,CAAC,CAAC;IACrE,IAAMU,cAAc,GAAGR,aAAI,CAACC,MAAM,CAChCT,sBAAsB,EACtBU,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,EAC3B,EAAE,CACH;IACD,OAAO,IAAAC,0BAAiB,EAACV,YAAY,EAAE,CAAC,CAACW,IAAI,CAACE,cAAc,EAAEX,IAAI,EAAEC,MAAM,CAAC;EAC7E,CAAC;EAAA;AAAA;AAAA,SAEqBW,YAAY;EAAA;AAAA;AAalC;AACA;AACA;AACA;AACA;AACA;AACA;AANA;EAAA,kCAbO,aAA6D;IAAA,IAAjCX,MAA0B,uEAAG,CAAC,CAAC;IAChE,IAAMU,cAAc,GAAGR,aAAI,CAACC,MAAM,CAChCR,oBAAoB,EACpBS,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,EAC3B,EAAE,CACH;IACD,IAAM;MAAEP;IAAK,CAAC,SAAS,IAAAQ,0BAAiB,EAACV,YAAY,EAAE,CAAC,CAACe,GAAG,CAC1DF,cAAc,EACdV,MAAM,CACP;IACD,OAAOD,IAAI;EACb,CAAC;EAAA;AAAA;AAAA,SASqBc,sBAAsB;EAAA;AAAA;AAAA;EAAA,4CAArC,WAAsCC,QAAQ,EAAEC,YAAY,EAAEC,KAAK,EAAE;IAC1E,IAAMC,SAAS,GAAGf,aAAI,CAACC,MAAM,CAC3BT,sBAAsB,EACtBU,uBAAO,CAACC,OAAO,CAACC,SAAS,EAAE,EAC3B,IAAAY,6BAAmB,GAAE,CACtB;IACD,IAAMC,eAAe,GAAG;MACtBC,OAAO,EAAE;QACPC,aAAa,kBAAW,IAAAC,YAAM,YAAIR,QAAQ,cAAIC,YAAY,EAAG,CAAE;QAC/D,cAAc,EAAE;MAClB;IACF,CAAC;IACD,IAAMQ,WAAW,GAAG;MAClBC,UAAU,EAAE,oBAAoB;MAChCR;IACF,CAAC;IACD,OAAO,IAAAT,0BAAiB,EAACV,YAAY,EAAE,EAAEsB,eAAe,CAAC,CAACX,IAAI,CAC5DS,SAAS,EACTQ,WAAE,CAACC,SAAS,CAACH,WAAW,CAAC,EACzB;MAAEI,eAAe,EAAE;IAAK,CAAC,CAC1B;EACH,CAAC;EAAA;AAAA"}
@@ -17,10 +17,10 @@ var _ApiUtils = require("./utils/ApiUtils");
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
  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); } }
19
19
  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); }); }; }
20
- var serviceURLTemplate = '%s/json%s/realm-config/services/%s';
21
- var serviceURLNextDescendentsTemplate = '%s/json%s/realm-config/services/%s?_action=nextdescendents';
22
- var serviceURLNextDescendentTemplate = '%s/json%s/realm-config/services/%s/%s/%s';
23
- var serviceListURLTemplate = '%s/json%s/realm-config/services?_queryFilter=true';
20
+ var serviceURLTemplate = '%s/json%s/%s/services/%s';
21
+ var serviceURLNextDescendentsTemplate = '%s/json%s/%s/services/%s?_action=nextdescendents';
22
+ var serviceURLNextDescendentTemplate = '%s/json%s/%s/services/%s/%s/%s';
23
+ var serviceListURLTemplate = '%s/json%s/%s/services?_queryFilter=true';
24
24
  var apiVersion = 'protocol=2.0,resource=1.0';
25
25
  function getApiConfig() {
26
26
  var configPath = (0, _ApiUtils.getCurrentRealmPath)();
@@ -29,8 +29,31 @@ function getApiConfig() {
29
29
  apiVersion
30
30
  };
31
31
  }
32
+ /**
33
+ * Helper function to get the realm path required for the API call considering if the request
34
+ * should obtain the realm config or the global config of the service in question
35
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise.
36
+ * @returns {string} The realm path to be used for the request
37
+ */
38
+ function getRealmPath(globalConfig) {
39
+ if (globalConfig) return '';
40
+ return (0, _ApiUtils.getCurrentRealmPath)();
41
+ }
42
+
43
+ /**
44
+ * Helper function to get the config path required for the API call considering if the request
45
+ * should obtain the realm config or the global config of the service in question
46
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise.
47
+ * @returns {string} The config path to be used for the request
48
+ */
49
+ function getConfigPath(globalConfig) {
50
+ if (globalConfig) return 'global-config';
51
+ return 'realm-config';
52
+ }
53
+
32
54
  /**
33
55
  * Get a list of services
56
+ * @param {boolean} globalConfig true if the global list of services is requested, false otherwise. Default: false.
34
57
  * @returns {Promise<ServiceListItem[]>} a promise resolving to an array of service list items.
35
58
  */
36
59
  function getListOfServices() {
@@ -39,11 +62,13 @@ function getListOfServices() {
39
62
  /**
40
63
  * Get service
41
64
  * @param {string} serviceId servide id
65
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
42
66
  * @returns {Promise<AmService>} a promise resolving to a service object
43
67
  */
44
68
  function _getListOfServices() {
45
69
  _getListOfServices = _asyncToGenerator(function* () {
46
- var urlString = _util.default.format(serviceListURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)());
70
+ var globalConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
71
+ var urlString = _util.default.format(serviceListURLTemplate, _SessionStorage.default.session.getTenant(), getRealmPath(globalConfig), getConfigPath(globalConfig));
47
72
  var {
48
73
  data
49
74
  } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).get(urlString, {
@@ -59,11 +84,13 @@ function getService(_x) {
59
84
  /**
60
85
  * Get a service's decendents (applicable for structured services only, e.g. SocialIdentityProviders)
61
86
  * @param {string} serviceId service id
87
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
62
88
  * @returns {Promise<ServiceNextDescendent[]>} a promise resolving to an array of the service's next decendents
63
89
  */
64
90
  function _getService() {
65
91
  _getService = _asyncToGenerator(function* (serviceId) {
66
- var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId);
92
+ var globalConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
93
+ var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), getRealmPath(globalConfig), getConfigPath(globalConfig), serviceId);
67
94
  var {
68
95
  data
69
96
  } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).get(urlString, {
@@ -80,11 +107,13 @@ function getServiceDescendents(_x2) {
80
107
  * Create or update a service
81
108
  * @param {string} serviceId service id
82
109
  * @param {AmService} serviceData service configuration
110
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
83
111
  * @returns {Promise<AmService>} a promise resolving to a service object
84
112
  */
85
113
  function _getServiceDescendents() {
86
114
  _getServiceDescendents = _asyncToGenerator(function* (serviceId) {
87
- var urlString = _util.default.format(serviceURLNextDescendentsTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId);
115
+ var globalConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
116
+ var urlString = _util.default.format(serviceURLNextDescendentsTemplate, _SessionStorage.default.session.getTenant(), getRealmPath(globalConfig), getConfigPath(globalConfig), serviceId);
88
117
  var {
89
118
  data
90
119
  } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).post(urlString, {
@@ -103,11 +132,13 @@ function putService(_x3, _x4) {
103
132
  * @param {string} serviceType service type
104
133
  * @param {string} serviceNextDescendentId service instance id
105
134
  * @param {ServiceNextDescendent} serviceNextDescendentData service next descendent configuration
135
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
106
136
  * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent
107
137
  */
108
138
  function _putService() {
109
139
  _putService = _asyncToGenerator(function* (serviceId, serviceData) {
110
- var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId);
140
+ var globalConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
141
+ var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), getRealmPath(globalConfig), getConfigPath(globalConfig), serviceId);
111
142
  var {
112
143
  data
113
144
  } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).put(urlString, serviceData, {
@@ -123,11 +154,13 @@ function putServiceNextDescendent(_x5, _x6, _x7, _x8) {
123
154
  /**
124
155
  * Delete service
125
156
  * @param {string} serviceId service id
157
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
126
158
  * @returns {Promise<AmService>} a promise resolving to a service object
127
159
  */
128
160
  function _putServiceNextDescendent() {
129
161
  _putServiceNextDescendent = _asyncToGenerator(function* (serviceId, serviceType, serviceNextDescendentId, serviceNextDescendentData) {
130
- var urlString = _util.default.format(serviceURLNextDescendentTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId, serviceType, serviceNextDescendentId);
162
+ var globalConfig = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
163
+ var urlString = _util.default.format(serviceURLNextDescendentTemplate, _SessionStorage.default.session.getTenant(), getRealmPath(globalConfig), getConfigPath(globalConfig), serviceId, serviceType, serviceNextDescendentId);
131
164
  var {
132
165
  data
133
166
  } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).put(urlString, serviceNextDescendentData, {
@@ -145,11 +178,13 @@ function deleteService(_x9) {
145
178
  * @param {string} serviceId service id
146
179
  * @param {string} serviceType service type
147
180
  * @param {string} serviceNextDescendentId service instance id
181
+ * @param {boolean} globalConfig true if the global service is the target of the operation, false otherwise. Default: false.
148
182
  * @returns {Promise<ServiceNextDescendent>} a promise resolving to a service next descendent
149
183
  */
150
184
  function _deleteService() {
151
185
  _deleteService = _asyncToGenerator(function* (serviceId) {
152
- var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId);
186
+ var globalConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
187
+ var urlString = _util.default.format(serviceURLTemplate, _SessionStorage.default.session.getTenant(), getRealmPath(globalConfig), getConfigPath(globalConfig), serviceId);
153
188
  var {
154
189
  data
155
190
  } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).delete(urlString, {
@@ -164,7 +199,8 @@ function deleteServiceNextDescendent(_x10, _x11, _x12) {
164
199
  }
165
200
  function _deleteServiceNextDescendent() {
166
201
  _deleteServiceNextDescendent = _asyncToGenerator(function* (serviceId, serviceType, serviceNextDescendentId) {
167
- var urlString = _util.default.format(serviceURLNextDescendentTemplate, _SessionStorage.default.session.getTenant(), (0, _ApiUtils.getCurrentRealmPath)(), serviceId, serviceType, serviceNextDescendentId);
202
+ var globalConfig = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
203
+ var urlString = _util.default.format(serviceURLNextDescendentTemplate, _SessionStorage.default.session.getTenant(), getRealmPath(globalConfig), getConfigPath(globalConfig), serviceId, serviceType, serviceNextDescendentId);
168
204
  var {
169
205
  data
170
206
  } = yield (0, _BaseApi.generateAmApi)(getApiConfig()).delete(urlString, {