@rockcarver/frodo-lib 0.16.2-13 → 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 (118) hide show
  1. package/CHANGELOG.md +9 -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/SecretsApi.test.js.map +1 -1
  10. package/cjs/api/ServiceApi.js +47 -11
  11. package/cjs/api/ServiceApi.js.map +1 -1
  12. package/cjs/api/TreeApi.test.js.map +1 -1
  13. package/cjs/api/VariablesApi.test.js.map +1 -1
  14. package/cjs/index.js +13 -3
  15. package/cjs/index.js.map +1 -1
  16. package/cjs/ops/AuthenticateOps.js +238 -98
  17. package/cjs/ops/AuthenticateOps.js.map +1 -1
  18. package/cjs/ops/ConnectionProfileOps.js +219 -84
  19. package/cjs/ops/ConnectionProfileOps.js.map +1 -1
  20. package/cjs/ops/ConnectionProfileOps.test.js.map +1 -1
  21. package/cjs/ops/IdmOps.js +52 -356
  22. package/cjs/ops/IdmOps.js.map +1 -1
  23. package/cjs/ops/IdmOps.test.js.map +1 -1
  24. package/cjs/ops/JoseOps.js +81 -0
  25. package/cjs/ops/JoseOps.js.map +1 -0
  26. package/cjs/ops/JoseOps.test.js.map +1 -0
  27. package/cjs/ops/LogOps.js +3 -3
  28. package/cjs/ops/LogOps.js.map +1 -1
  29. package/cjs/ops/ServiceAccountOps.js +61 -0
  30. package/cjs/ops/ServiceAccountOps.js.map +1 -0
  31. package/cjs/ops/ServiceAccountOps.test.js.map +1 -0
  32. package/cjs/ops/ServiceOps.js +49 -27
  33. package/cjs/ops/ServiceOps.js.map +1 -1
  34. package/cjs/ops/utils/ExportImportUtils.js +10 -7
  35. package/cjs/ops/utils/ExportImportUtils.js.map +1 -1
  36. package/cjs/ops/utils/OpsUtils.js +14 -0
  37. package/cjs/ops/utils/OpsUtils.js.map +1 -1
  38. package/cjs/ops/utils/OpsUtils.test.js.map +1 -1
  39. package/cjs/storage/SessionStorage.js +6 -0
  40. package/cjs/storage/SessionStorage.js.map +1 -1
  41. package/cjs/test/mocks/ForgeRockApiMockEngine.js +14 -2
  42. package/cjs/test/mocks/ForgeRockApiMockEngine.js.map +1 -1
  43. package/cjs/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
  44. package/cjs/utils/AutoSetupPolly.js +79 -0
  45. package/cjs/utils/AutoSetupPolly.js.map +1 -0
  46. package/cjs/utils/SetupJest.js +6 -0
  47. package/cjs/utils/SetupJest.js.map +1 -0
  48. package/cjs/{test/mocks → utils}/snapshotResolve.js +10 -5
  49. package/cjs/utils/snapshotResolve.js.map +1 -0
  50. package/esm/api/BaseApi.mjs +47 -15
  51. package/esm/api/ManagedObjectApi.mjs +16 -1
  52. package/esm/api/OAuth2OIDCApi.mjs +8 -0
  53. package/esm/api/SecretsApi.test.mjs +5 -13
  54. package/esm/api/ServiceApi.mjs +47 -18
  55. package/esm/api/TreeApi.test.mjs +10 -39
  56. package/esm/api/VariablesApi.test.mjs +80 -217
  57. package/esm/index.mjs +6 -1
  58. package/esm/ops/AuthenticateOps.mjs +208 -86
  59. package/esm/ops/ConnectionProfileOps.mjs +184 -56
  60. package/esm/ops/ConnectionProfileOps.test.mjs +3 -3
  61. package/esm/ops/IdmOps.mjs +28 -286
  62. package/esm/ops/IdmOps.test.mjs +41 -49
  63. package/esm/ops/JoseOps.mjs +41 -0
  64. package/esm/ops/JoseOps.test.mjs +132 -0
  65. package/esm/ops/LogOps.mjs +3 -3
  66. package/esm/ops/ServiceAccountOps.mjs +41 -0
  67. package/esm/ops/ServiceAccountOps.test.mjs +52 -0
  68. package/esm/ops/ServiceOps.mjs +49 -37
  69. package/esm/ops/utils/ExportImportUtils.mjs +10 -8
  70. package/esm/ops/utils/OpsUtils.mjs +13 -0
  71. package/esm/ops/utils/OpsUtils.test.mjs +138 -10
  72. package/esm/storage/SessionStorage.mjs +6 -0
  73. package/esm/test/mocks/ForgeRockApiMockEngine.mjs +12 -1
  74. package/esm/test/mocks/IdmConfigApi/getConfigEntity/managed.json +4420 -0
  75. package/esm/utils/AutoSetupPolly.mjs +72 -0
  76. package/esm/utils/SetupJest.mjs +3 -0
  77. package/esm/{test/mocks → utils}/snapshotResolve.mjs +10 -5
  78. package/package.json +16 -6
  79. package/types/api/ApiTypes.d.ts +1 -2
  80. package/types/api/ApiTypes.d.ts.map +1 -1
  81. package/types/api/BaseApi.d.ts.map +1 -1
  82. package/types/api/ManagedObjectApi.d.ts +9 -1
  83. package/types/api/ManagedObjectApi.d.ts.map +1 -1
  84. package/types/api/OAuth2OIDCApi.d.ts +4 -2
  85. package/types/api/OAuth2OIDCApi.d.ts.map +1 -1
  86. package/types/api/ServiceApi.d.ts +14 -7
  87. package/types/api/ServiceApi.d.ts.map +1 -1
  88. package/types/index.d.ts +6 -1
  89. package/types/index.d.ts.map +1 -1
  90. package/types/ops/AuthenticateOps.d.ts +10 -2
  91. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  92. package/types/ops/ConnectionProfileOps.d.ts +49 -21
  93. package/types/ops/ConnectionProfileOps.d.ts.map +1 -1
  94. package/types/ops/IdmOps.d.ts +29 -37
  95. package/types/ops/IdmOps.d.ts.map +1 -1
  96. package/types/ops/JoseOps.d.ts +33 -0
  97. package/types/ops/JoseOps.d.ts.map +1 -0
  98. package/types/ops/LogOps.d.ts.map +1 -1
  99. package/types/ops/ServiceAccountOps.d.ts +20 -0
  100. package/types/ops/ServiceAccountOps.d.ts.map +1 -0
  101. package/types/ops/ServiceOps.d.ts +18 -10
  102. package/types/ops/ServiceOps.d.ts.map +1 -1
  103. package/types/ops/utils/ExportImportUtils.d.ts +2 -1
  104. package/types/ops/utils/ExportImportUtils.d.ts.map +1 -1
  105. package/types/ops/utils/OpsUtils.d.ts +6 -0
  106. package/types/ops/utils/OpsUtils.d.ts.map +1 -1
  107. package/types/storage/SessionStorage.d.ts +7 -0
  108. package/types/storage/SessionStorage.d.ts.map +1 -1
  109. package/types/test/mocks/ForgeRockApiMockEngine.d.ts +2 -1
  110. package/types/test/mocks/ForgeRockApiMockEngine.d.ts.map +1 -1
  111. package/types/utils/AutoSetupPolly.d.ts +1 -0
  112. package/types/utils/AutoSetupPolly.d.ts.map +1 -0
  113. package/types/utils/SetupJest.d.ts +1 -0
  114. package/types/utils/SetupJest.d.ts.map +1 -0
  115. package/types/{test/mocks → utils}/snapshotResolve.d.ts +0 -0
  116. package/types/utils/snapshotResolve.d.ts.map +1 -0
  117. package/cjs/test/mocks/snapshotResolve.js.map +0 -1
  118. package/types/test/mocks/snapshotResolve.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,10 @@ 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
+
12
+ ## [0.16.2-14] - 2022-12-01
13
+
10
14
  ## [0.16.2-13] - 2022-11-26
11
15
 
12
16
  ## [0.16.2-12] - 2022-11-26
@@ -712,7 +716,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
712
716
  - Fixed problem with adding connection profiles
713
717
  - Miscellaneous bug fixes
714
718
 
715
- [Unreleased]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-13...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
722
+
723
+ [0.16.2-14]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-13...v0.16.2-14
716
724
 
717
725
  [0.16.2-13]: https://github.com/rockcarver/frodo-lib/compare/v0.16.2-12...v0.16.2-13
718
726
 
@@ -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"}