@contember/engine-tenant-api 2.0.0-alpha.19 → 2.0.0-alpha.20

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 (40) hide show
  1. package/dist/development/src/model/service/idp/providers/OIDCHelpers.cjs +4 -2
  2. package/dist/development/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
  3. package/dist/development/src/model/service/idp/providers/OIDCHelpers.js +4 -2
  4. package/dist/development/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
  5. package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs +1 -1
  6. package/dist/development/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  7. package/dist/development/src/model/service/idp/providers/OIDCProvider.js +1 -1
  8. package/dist/development/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  9. package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs +2 -1
  10. package/dist/development/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
  11. package/dist/development/src/model/service/idp/providers/OIDCTypes.js +2 -1
  12. package/dist/development/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
  13. package/dist/production/src/model/service/idp/providers/OIDCHelpers.cjs +4 -2
  14. package/dist/production/src/model/service/idp/providers/OIDCHelpers.cjs.map +1 -1
  15. package/dist/production/src/model/service/idp/providers/OIDCHelpers.js +4 -2
  16. package/dist/production/src/model/service/idp/providers/OIDCHelpers.js.map +1 -1
  17. package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs +1 -1
  18. package/dist/production/src/model/service/idp/providers/OIDCProvider.cjs.map +1 -1
  19. package/dist/production/src/model/service/idp/providers/OIDCProvider.js +1 -1
  20. package/dist/production/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  21. package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs +2 -1
  22. package/dist/production/src/model/service/idp/providers/OIDCTypes.cjs.map +1 -1
  23. package/dist/production/src/model/service/idp/providers/OIDCTypes.js +2 -1
  24. package/dist/production/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
  25. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  26. package/dist/types/model/service/idp/providers/AppleProvider.d.ts +2 -0
  27. package/dist/types/model/service/idp/providers/AppleProvider.d.ts.map +1 -1
  28. package/dist/types/model/service/idp/providers/FacebookProvider.d.ts +2 -0
  29. package/dist/types/model/service/idp/providers/FacebookProvider.d.ts.map +1 -1
  30. package/dist/types/model/service/idp/providers/OIDCHelpers.d.ts +1 -1
  31. package/dist/types/model/service/idp/providers/OIDCHelpers.d.ts.map +1 -1
  32. package/dist/types/model/service/idp/providers/OIDCProvider.d.ts +1 -0
  33. package/dist/types/model/service/idp/providers/OIDCProvider.d.ts.map +1 -1
  34. package/dist/types/model/service/idp/providers/OIDCTypes.d.ts +4 -0
  35. package/dist/types/model/service/idp/providers/OIDCTypes.d.ts.map +1 -1
  36. package/dist/types/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +17 -17
  38. package/src/model/service/idp/providers/OIDCHelpers.ts +4 -1
  39. package/src/model/service/idp/providers/OIDCProvider.ts +1 -1
  40. package/src/model/service/idp/providers/OIDCTypes.ts +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/engine-tenant-api",
3
- "version": "2.0.0-alpha.19",
3
+ "version": "2.0.0-alpha.20",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/production/index.js",
6
6
  "typings": "./dist/types/index.d.ts",
@@ -26,30 +26,30 @@
26
26
  "generate": "gql-gen --config graphql.codegen.yml"
27
27
  },
28
28
  "dependencies": {
29
- "@contember/authorization": "2.0.0-alpha.19",
30
- "@contember/config-loader": "2.0.0-alpha.19",
31
- "@contember/database": "2.0.0-alpha.19",
32
- "@contember/database-migrations": "2.0.0-alpha.19",
33
- "@contember/dic": "2.0.0-alpha.19",
34
- "@contember/graphql-utils": "2.0.0-alpha.19",
35
- "@contember/logger": "2.0.0-alpha.19",
36
- "@contember/schema": "2.0.0-alpha.19",
37
- "@contember/schema-utils": "2.0.0-alpha.19",
38
- "@contember/typesafe": "2.0.0-alpha.19",
39
- "@graphql-tools/utils": "^10.5.4",
29
+ "@contember/authorization": "2.0.0-alpha.20",
30
+ "@contember/config-loader": "2.0.0-alpha.20",
31
+ "@contember/database": "2.0.0-alpha.20",
32
+ "@contember/database-migrations": "2.0.0-alpha.20",
33
+ "@contember/dic": "2.0.0-alpha.20",
34
+ "@contember/graphql-utils": "2.0.0-alpha.20",
35
+ "@contember/logger": "2.0.0-alpha.20",
36
+ "@contember/schema": "2.0.0-alpha.20",
37
+ "@contember/schema-utils": "2.0.0-alpha.20",
38
+ "@contember/typesafe": "2.0.0-alpha.20",
39
+ "@graphql-tools/utils": "^10.5.5",
40
40
  "graphql-tag": "^2.12.6",
41
41
  "jose": "^5.8.0",
42
42
  "mustache": "^4.2.0",
43
43
  "nodemailer": "^6.9.15",
44
44
  "openid-client": "^5.7.0",
45
- "otpauth": "^9.3.2"
45
+ "otpauth": "^9.3.4"
46
46
  },
47
47
  "devDependencies": {
48
- "@contember/database-tester": "2.0.0-alpha.19",
49
- "@graphql-tools/schema": "^10.0.6",
48
+ "@contember/database-tester": "2.0.0-alpha.20",
49
+ "@graphql-tools/schema": "^10.0.7",
50
50
  "@types/mustache": "^4.2.5",
51
- "@types/node": "^20.16.5",
52
- "@types/nodemailer": "^6.4.15",
51
+ "@types/node": "^20.16.11",
52
+ "@types/nodemailer": "^6.4.16",
53
53
  "graphql": "^16.9.0"
54
54
  },
55
55
  "peerDependencies": {
@@ -25,7 +25,7 @@ export const initOIDCAuth = async (client: Client, { redirectUrl, scope, respons
25
25
  }
26
26
  }
27
27
 
28
- export const handleOIDCResponse = async (client: Client, { sessionData, redirectUrl, ...otherData }: OIDCResponseData): Promise<IDPResponse> => {
28
+ export const handleOIDCResponse = async (client: Client, { sessionData, redirectUrl, ...otherData }: OIDCResponseData, fetchUserInfo?: boolean): Promise<IDPResponse> => {
29
29
  const params = 'parameters' in otherData ? otherData.parameters : client.callbackParams(otherData.url)
30
30
  if (params.state && !sessionData?.state) {
31
31
  throw new IDPValidationError(`state is present in parameters, but missing in session data`)
@@ -34,9 +34,12 @@ export const handleOIDCResponse = async (client: Client, { sessionData, redirect
34
34
  const result = await client.callback(redirectUrl, params, sessionData)
35
35
  const claims = result.claims()
36
36
  const { at_hash, c_hash, nonce, ...claimsWithoutHashes } = claims
37
+ const userInfo = result.access_token && fetchUserInfo ? await client.userinfo(result) : {}
38
+
37
39
  return {
38
40
  externalIdentifier: claims.sub,
39
41
  ...claimsWithoutHashes,
42
+ ...userInfo,
40
43
  }
41
44
  } catch (e: any) {
42
45
  if (e instanceof errors.RPError) {
@@ -24,7 +24,7 @@ export class OIDCProvider implements IdentityProviderHandler<OIDCConfiguration>
24
24
  public async processResponse(configuration: OIDCConfiguration, data: unknown): Promise<IDPResponse> {
25
25
  const responseData = catchTypesafe(OIDCResponseData, IDPValidationError)(data)
26
26
  const client = await this.createOIDCClient(configuration)
27
- return await handleOIDCResponse(client, responseData)
27
+ return await handleOIDCResponse(client, responseData, configuration.fetchUserInfo)
28
28
  }
29
29
 
30
30
 
@@ -12,6 +12,7 @@ export const OIDCConfigurationOptions = Typesafe.partial({
12
12
  scope: Typesafe.string,
13
13
  additionalAuthorizedParties: Typesafe.array(Typesafe.string),
14
14
  idTokenSignedResponseAlg: Typesafe.string,
15
+ fetchUserInfo: Typesafe.boolean,
15
16
  })
16
17
  export const BaseOIDCConfiguration = Typesafe.intersection(
17
18
  Typesafe.object({