@contember/engine-tenant-api 1.3.0-rc.2 → 1.3.0-rc.3

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 (34) hide show
  1. package/dist/src/model/mailing/UserMailer.d.ts +3 -0
  2. package/dist/src/model/mailing/UserMailer.d.ts.map +1 -1
  3. package/dist/src/model/mailing/UserMailer.js.map +1 -1
  4. package/dist/src/model/service/InviteManager.js +2 -2
  5. package/dist/src/model/service/InviteManager.js.map +1 -1
  6. package/dist/src/model/service/PasswordResetManager.d.ts.map +1 -1
  7. package/dist/src/model/service/PasswordResetManager.js +1 -0
  8. package/dist/src/model/service/PasswordResetManager.js.map +1 -1
  9. package/dist/src/model/service/idp/providers/AppleProvider.d.ts +2 -0
  10. package/dist/src/model/service/idp/providers/AppleProvider.d.ts.map +1 -1
  11. package/dist/src/model/service/idp/providers/AppleProvider.js +3 -1
  12. package/dist/src/model/service/idp/providers/AppleProvider.js.map +1 -1
  13. package/dist/src/model/service/idp/providers/FacebookProvider.d.ts +2 -0
  14. package/dist/src/model/service/idp/providers/FacebookProvider.d.ts.map +1 -1
  15. package/dist/src/model/service/idp/providers/FacebookProvider.js +3 -0
  16. package/dist/src/model/service/idp/providers/FacebookProvider.js.map +1 -1
  17. package/dist/src/model/service/idp/providers/OIDCProvider.d.ts +1 -0
  18. package/dist/src/model/service/idp/providers/OIDCProvider.d.ts.map +1 -1
  19. package/dist/src/model/service/idp/providers/OIDCProvider.js +5 -3
  20. package/dist/src/model/service/idp/providers/OIDCProvider.js.map +1 -1
  21. package/dist/src/model/service/idp/providers/OIDCTypes.d.ts +4 -0
  22. package/dist/src/model/service/idp/providers/OIDCTypes.d.ts.map +1 -1
  23. package/dist/src/model/service/idp/providers/OIDCTypes.js +1 -0
  24. package/dist/src/model/service/idp/providers/OIDCTypes.js.map +1 -1
  25. package/dist/src/tsconfig.tsbuildinfo +1 -1
  26. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +12 -12
  28. package/src/model/mailing/UserMailer.ts +4 -4
  29. package/src/model/service/InviteManager.ts +4 -4
  30. package/src/model/service/PasswordResetManager.ts +2 -1
  31. package/src/model/service/idp/providers/AppleProvider.ts +11 -5
  32. package/src/model/service/idp/providers/FacebookProvider.ts +11 -5
  33. package/src/model/service/idp/providers/OIDCProvider.ts +11 -5
  34. 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": "1.3.0-rc.2",
3
+ "version": "1.3.0-rc.3",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/src/index.js",
6
6
  "typings": "dist/src/index.d.ts",
@@ -13,16 +13,16 @@
13
13
  "test": "vitest --dir ./tests/cases --no-threads"
14
14
  },
15
15
  "dependencies": {
16
- "@contember/authorization": "1.3.0-rc.2",
17
- "@contember/config-loader": "1.3.0-rc.2",
18
- "@contember/database": "1.3.0-rc.2",
19
- "@contember/database-migrations": "1.3.0-rc.2",
20
- "@contember/dic": "1.3.0-rc.2",
21
- "@contember/graphql-utils": "1.3.0-rc.2",
22
- "@contember/logger": "1.3.0-rc.2",
23
- "@contember/schema": "1.3.0-rc.2",
24
- "@contember/schema-utils": "1.3.0-rc.2",
25
- "@contember/typesafe": "1.3.0-rc.2",
16
+ "@contember/authorization": "1.3.0-rc.3",
17
+ "@contember/config-loader": "1.3.0-rc.3",
18
+ "@contember/database": "1.3.0-rc.3",
19
+ "@contember/database-migrations": "1.3.0-rc.3",
20
+ "@contember/dic": "1.3.0-rc.3",
21
+ "@contember/graphql-utils": "1.3.0-rc.3",
22
+ "@contember/logger": "1.3.0-rc.3",
23
+ "@contember/schema": "1.3.0-rc.3",
24
+ "@contember/schema-utils": "1.3.0-rc.3",
25
+ "@contember/typesafe": "1.3.0-rc.3",
26
26
  "@graphql-tools/utils": "^8.6.13",
27
27
  "graphql-tag": "^2.12.5",
28
28
  "jose": "^4.10",
@@ -32,7 +32,7 @@
32
32
  "otpauth": "^7.0.6"
33
33
  },
34
34
  "devDependencies": {
35
- "@contember/database-tester": "1.3.0-rc.2",
35
+ "@contember/database-tester": "1.3.0-rc.3",
36
36
  "@graphql-codegen/cli": "^2.6.2",
37
37
  "@graphql-codegen/typescript": "^2.5.1",
38
38
  "@graphql-codegen/typescript-operations": "^2.4.2",
@@ -11,11 +11,11 @@ export class UserMailer {
11
11
  constructor(
12
12
  private readonly mailer: Mailer,
13
13
  private readonly templateRenderer: TemplateRenderer,
14
- ) {}
14
+ ) { }
15
15
 
16
16
  async sendNewUserInvitedMail(
17
17
  dbContext: DatabaseContext,
18
- mailArguments: { email: string; password: string | null; token: string | null; project: string },
18
+ mailArguments: { email: string; password: string | null; token: string | null; project: string; projectSlug: string },
19
19
  customMailOptions: { projectId: string; variant: string },
20
20
  ): Promise<void> {
21
21
  const template = (await this.getCustomTemplate(dbContext, { type: MailType.newUserInvited, ...customMailOptions })) || {
@@ -27,7 +27,7 @@ export class UserMailer {
27
27
 
28
28
  async sendExistingUserInvitedEmail(
29
29
  dbContext: DatabaseContext,
30
- mailArguments: { email: string; project: string },
30
+ mailArguments: { email: string; project: string; projectSlug: string },
31
31
  customMailOptions: { projectId: string; variant: string },
32
32
  ): Promise<void> {
33
33
  const template = (await this.getCustomTemplate(dbContext, { type: MailType.existingUserInvited, ...customMailOptions })) || {
@@ -39,7 +39,7 @@ export class UserMailer {
39
39
 
40
40
  async sendPasswordResetEmail(
41
41
  dbContext: DatabaseContext,
42
- mailArguments: { email: string; token: string; project?: string },
42
+ mailArguments: { email: string; token: string; project?: string; projectSlug?: string },
43
43
  customMailOptions: { projectId?: string; variant: string },
44
44
  ): Promise<void> {
45
45
  const template = (await this.getCustomTemplate(dbContext, { type: MailType.passwordReset, ...customMailOptions })) || {
@@ -36,7 +36,7 @@ export class InviteManager {
36
36
  private readonly providers: Providers,
37
37
  private readonly mailer: UserMailer,
38
38
  private readonly projectSchemaResolver: ProjectSchemaResolver,
39
- ) {}
39
+ ) { }
40
40
 
41
41
  async invite(
42
42
  dbContext: DatabaseContext,
@@ -89,11 +89,11 @@ export class InviteManager {
89
89
  if (isNew) {
90
90
  await this.mailer.sendNewUserInvitedMail(
91
91
  trx,
92
- { email, project: project.name, password: generatedPassword, token: resetToken },
92
+ { email, project: project.name, projectSlug: project.slug, password: generatedPassword, token: resetToken },
93
93
  customMailOptions,
94
94
  )
95
95
  } else {
96
- await this.mailer.sendExistingUserInvitedEmail(trx, { email, project: project.name }, customMailOptions)
96
+ await this.mailer.sendExistingUserInvitedEmail(trx, { email, project: project.name, projectSlug: project.slug }, customMailOptions)
97
97
  }
98
98
  }
99
99
  return new ResponseOk(new InviteResult(person, isNew))
@@ -110,5 +110,5 @@ export class InviteManager {
110
110
  export type InviteResponse = Response<InviteResult, InviteErrorCode>
111
111
 
112
112
  export class InviteResult {
113
- constructor(public readonly person: Omit<PersonRow, 'roles'>, public readonly isNew: boolean) {}
113
+ constructor(public readonly person: Omit<PersonRow, 'roles'>, public readonly isNew: boolean) { }
114
114
  }
@@ -17,7 +17,7 @@ export class PasswordResetManager {
17
17
  constructor(
18
18
  private readonly mailer: UserMailer,
19
19
  private readonly projectManager: ProjectManager,
20
- ) {}
20
+ ) { }
21
21
 
22
22
  public async createPasswordResetRequest(
23
23
  dbContext: DatabaseContext,
@@ -45,6 +45,7 @@ export class PasswordResetManager {
45
45
  email: person.email,
46
46
  token: result.token,
47
47
  project: project?.name,
48
+ projectSlug: project?.slug,
48
49
  },
49
50
  {
50
51
  variant: mailOptions.mailVariant || '',
@@ -56,10 +56,16 @@ export class AppleProvider implements IdentityProviderHandler<AppleConfiguration
56
56
  .setExpirationTime('10m')
57
57
  .sign(privateKey)
58
58
 
59
- return new this.issuer.Client({
60
- client_id: configuration.clientId,
61
- client_secret: jwt,
62
- response_types: [configuration.responseType || 'code'],
63
- })
59
+ return new this.issuer.Client(
60
+ {
61
+ client_id: configuration.clientId,
62
+ client_secret: jwt,
63
+ response_types: [configuration.responseType || 'code'],
64
+ },
65
+ undefined,
66
+ {
67
+ additionalAuthorizedParties: [...(configuration.additionalAuthorizedParties ?? [])],
68
+ },
69
+ )
64
70
  }
65
71
  }
@@ -116,10 +116,16 @@ export class FacebookProvider implements IdentityProviderHandler<FacebookConfigu
116
116
  }
117
117
 
118
118
  private async createOIDCClient(configuration: FacebookConfiguration): Promise<Client> {
119
- return new this.facebookIssuer.Client({
120
- client_id: configuration.clientId,
121
- client_secret: configuration.clientSecret,
122
- response_types: [configuration.responseType || 'code'],
123
- })
119
+ return new this.facebookIssuer.Client(
120
+ {
121
+ client_id: configuration.clientId,
122
+ client_secret: configuration.clientSecret,
123
+ response_types: [configuration.responseType || 'code'],
124
+ },
125
+ undefined,
126
+ {
127
+ additionalAuthorizedParties: [...(configuration.additionalAuthorizedParties ?? [])],
128
+ },
129
+ )
124
130
  }
125
131
  }
@@ -31,10 +31,16 @@ export class OIDCProvider implements IdentityProviderHandler<OIDCConfiguration>
31
31
  private async createOIDCClient(configuration: OIDCConfiguration): Promise<Client> {
32
32
  this.issuerCache[configuration.url] ??= await Issuer.discover(configuration.url)
33
33
 
34
- return new this.issuerCache[configuration.url].Client({
35
- client_id: configuration.clientId,
36
- client_secret: configuration.clientSecret,
37
- response_types: [configuration.responseType || 'code'],
38
- })
34
+ return new this.issuerCache[configuration.url].Client(
35
+ {
36
+ client_id: configuration.clientId,
37
+ client_secret: configuration.clientSecret,
38
+ response_types: [configuration.responseType || 'code'],
39
+ },
40
+ undefined,
41
+ {
42
+ additionalAuthorizedParties: [...(configuration.additionalAuthorizedParties ?? [])],
43
+ },
44
+ )
39
45
  }
40
46
  }
@@ -9,6 +9,7 @@ export interface OIDCSessionData {
9
9
  export const OIDCConfigurationOptions = Typesafe.partial({
10
10
  responseType: Typesafe.enumeration<ResponseType>('code', 'code id_token', 'code id_token token', 'code token', 'id_token', 'id_token token', 'none'),
11
11
  claims: Typesafe.string,
12
+ additionalAuthorizedParties: Typesafe.array(Typesafe.string),
12
13
  })
13
14
  export const BaseOIDCConfiguration = Typesafe.intersection(
14
15
  Typesafe.object({