@tsed/oidc-provider-plugin-wildcard-redirect-uri 7.63.2 → 7.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,8 +17,9 @@ let OidcWildcardRedirectUriModule = class OidcWildcardRedirectUriModule {
17
17
  }
18
18
  $onCreateOIDC(provider) {
19
19
  if (this.enabled) {
20
- const { redirectUriAllowed } = provider.Client.prototype;
21
- provider.Client.prototype.redirectUriAllowed = (0, wildcardRedirectUriAllowed_1.wildcardRedirectUriAllowed)(redirectUriAllowed);
20
+ const { redirectUriAllowed, postLogoutRedirectUriAllowed } = provider.Client.prototype;
21
+ provider.Client.prototype.redirectUriAllowed = (0, wildcardRedirectUriAllowed_1.wildcardRedirectUriAllowed)(redirectUriAllowed, "redirectUris");
22
+ provider.Client.prototype.postLogoutRedirectUriAllowed = (0, wildcardRedirectUriAllowed_1.wildcardRedirectUriAllowed)(postLogoutRedirectUriAllowed, "postLogoutRedirectUris");
22
23
  this.logger.warn("⚠️⚠️⚠️ OIDC Wildcard Uris plugin is ENABLED ⚠️⚠️⚠️");
23
24
  }
24
25
  }
@@ -26,7 +27,7 @@ let OidcWildcardRedirectUriModule = class OidcWildcardRedirectUriModule {
26
27
  if (this.enabled) {
27
28
  const actualProperties = config?.extraClientMetadata?.properties || [];
28
29
  config.extraClientMetadata = {
29
- properties: [...actualProperties, "redirect_uris"],
30
+ properties: [...actualProperties, "redirect_uris", "post_logout_redirect_uris"],
30
31
  validator: this.validator.bind(this)
31
32
  };
32
33
  }
@@ -49,6 +50,22 @@ let OidcWildcardRedirectUriModule = class OidcWildcardRedirectUriModule {
49
50
  }
50
51
  }
51
52
  }
53
+ else if (key === "post_logout_redirect_uris") {
54
+ for (const postLogoutRedirectUri of value) {
55
+ if (postLogoutRedirectUri.includes("*")) {
56
+ const { hostname, href } = new URL(postLogoutRedirectUri);
57
+ if (href.split("*").length !== 2) {
58
+ throw new this.module.errors.InvalidClientMetadata("post_logout_redirect_uris with a wildcard may only contain a single one");
59
+ }
60
+ if (!hostname.includes("*")) {
61
+ throw new this.module.errors.InvalidClientMetadata("post_logout_redirect_uris may only have a wildcard in the hostname");
62
+ }
63
+ if (!psl_1.default.get(hostname.split("*.")[1])) {
64
+ throw new this.module.errors.InvalidClientMetadata("post_logout_redirect_uris with a wildcard must not match an eTLD+1 of a known public suffix domain");
65
+ }
66
+ }
67
+ }
68
+ }
52
69
  }
53
70
  };
54
71
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"OidcWildcardRedirectUriModule.js","sourceRoot":"","sources":["../../src/OidcWildcardRedirectUriModule.ts"],"names":[],"mappings":";;;;AAAA,iCAAkD;AAClD,yCAAoC;AACpC,uDAA4E;AAG5E,aAAa;AACb,sDAAsB;AACtB,mFAA8E;AAavE,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAOiB;IALhD,OAAO,CAAU;IAGhB,MAAM,CAAS;IAEzB,YAAyD,MAAiC;QAAjC,WAAM,GAAN,MAAM,CAA2B;IAAG,CAAC;IAE9F,aAAa,CAAC,QAAkB;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,EAAC,kBAAkB,EAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;YACvD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAA,uDAA0B,EAAC,kBAAkB,CAAC,CAAC;YAE9F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;SACxE;IACH,CAAC;IAED,uBAAuB,CAAC,MAAoB;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,gBAAgB,GAAG,MAAM,EAAE,mBAAmB,EAAE,UAAU,IAAI,EAAE,CAAC;YAEvE,MAAM,CAAC,mBAAmB,GAAG;gBAC3B,UAAU,EAAE,CAAC,GAAG,gBAAgB,EAAE,eAAe,CAAC;gBAClD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aACrC,CAAC;SACH;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,GAAuB,EAAE,GAAW,EAAE,KAAU;QACxD,IAAI,GAAG,KAAK,eAAe,EAAE;YAC3B,KAAK,MAAM,WAAW,IAAI,KAAK,EAAE;gBAC/B,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAC7B,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;oBAE9C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBAChC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,6DAA6D,CAAC,CAAC;qBACnH;oBAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBAC3B,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,wDAAwD,CAAC,CAAC;qBAC9G;oBAED,IAAI,CAAC,aAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBACrC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAChD,wFAAwF,CACzF,CAAC;qBACH;iBACF;aACF;SACF;IACH,CAAC;CACF,CAAA;AArDC;IAAC,IAAA,aAAQ,EAAC,+BAA+B,EAAE,KAAK,CAAC;;8DACvB;AAE1B;IAAC,IAAA,WAAM,EAAC,eAAM,CAAC;sCACG,eAAM;6DAAC;AALd,6BAA6B;IADzC,IAAA,WAAM,GAAE;IAQM,mBAAA,IAAA,WAAM,EAAC,yCAAyB,CAAC,CAAA;;GAPnC,6BAA6B,CAsDzC;AAtDY,sEAA6B"}
1
+ {"version":3,"file":"OidcWildcardRedirectUriModule.js","sourceRoot":"","sources":["../../src/OidcWildcardRedirectUriModule.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,10 @@ const hasWildcardHost = (redirectUri) => {
9
9
  return hostname.includes("*");
10
10
  };
11
11
  const wildcardMatches = (redirectUri, wildcardUri) => !!(0, wildcard_1.default)(wildcardUri, redirectUri);
12
- function wildcardRedirectUriAllowed(originalRedirectUriAllowed) {
12
+ function wildcardRedirectUriAllowed(originalRedirectUriAllowed, redirectUriOrPostLogoutRedirectUri) {
13
13
  return function (redirectUri) {
14
- if (this.redirectUris.some(hasWildcardHost)) {
15
- const wildcardUris = this.redirectUris.filter(hasWildcardHost);
14
+ if (this[redirectUriOrPostLogoutRedirectUri].some(hasWildcardHost)) {
15
+ const wildcardUris = this[redirectUriOrPostLogoutRedirectUri].filter(hasWildcardHost);
16
16
  return wildcardUris.some(wildcardMatches.bind(undefined, redirectUri)) || originalRedirectUriAllowed.call(this, redirectUri);
17
17
  }
18
18
  return originalRedirectUriAllowed.call(this, redirectUri);
@@ -1 +1 @@
1
- {"version":3,"file":"wildcardRedirectUriAllowed.js","sourceRoot":"","sources":["../../../src/utils/wildcardRedirectUriAllowed.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,gEAAgC;AAEhC,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC9C,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,WAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,kBAAQ,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3G,SAAgB,0BAA0B,CAAC,0BAA+B;IACxE,OAAO,UAAU,WAAmB;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC9H;QACD,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AARD,gEAQC"}
1
+ {"version":3,"file":"wildcardRedirectUriAllowed.js","sourceRoot":"","sources":["../../../src/utils/wildcardRedirectUriAllowed.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,gEAAgC;AAEhC,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC9C,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,WAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,kBAAQ,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3G,SAAgB,0BAA0B,CAAC,0BAA+B,EAAE,kCAA6E;IACvJ,OAAO,UAAU,WAAmB;QAClC,IAAI,IAAI,CAAC,kCAAkC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAClE,MAAM,YAAY,GAAG,IAAI,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACtF,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC9H;QACD,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AARD,gEAQC"}
@@ -14,8 +14,9 @@ let OidcWildcardRedirectUriModule = class OidcWildcardRedirectUriModule {
14
14
  }
15
15
  $onCreateOIDC(provider) {
16
16
  if (this.enabled) {
17
- const { redirectUriAllowed } = provider.Client.prototype;
18
- provider.Client.prototype.redirectUriAllowed = wildcardRedirectUriAllowed(redirectUriAllowed);
17
+ const { redirectUriAllowed, postLogoutRedirectUriAllowed } = provider.Client.prototype;
18
+ provider.Client.prototype.redirectUriAllowed = wildcardRedirectUriAllowed(redirectUriAllowed, "redirectUris");
19
+ provider.Client.prototype.postLogoutRedirectUriAllowed = wildcardRedirectUriAllowed(postLogoutRedirectUriAllowed, "postLogoutRedirectUris");
19
20
  this.logger.warn("⚠️⚠️⚠️ OIDC Wildcard Uris plugin is ENABLED ⚠️⚠️⚠️");
20
21
  }
21
22
  }
@@ -23,7 +24,7 @@ let OidcWildcardRedirectUriModule = class OidcWildcardRedirectUriModule {
23
24
  if (this.enabled) {
24
25
  const actualProperties = config?.extraClientMetadata?.properties || [];
25
26
  config.extraClientMetadata = {
26
- properties: [...actualProperties, "redirect_uris"],
27
+ properties: [...actualProperties, "redirect_uris", "post_logout_redirect_uris"],
27
28
  validator: this.validator.bind(this)
28
29
  };
29
30
  }
@@ -46,6 +47,22 @@ let OidcWildcardRedirectUriModule = class OidcWildcardRedirectUriModule {
46
47
  }
47
48
  }
48
49
  }
50
+ else if (key === "post_logout_redirect_uris") {
51
+ for (const postLogoutRedirectUri of value) {
52
+ if (postLogoutRedirectUri.includes("*")) {
53
+ const { hostname, href } = new URL(postLogoutRedirectUri);
54
+ if (href.split("*").length !== 2) {
55
+ throw new this.module.errors.InvalidClientMetadata("post_logout_redirect_uris with a wildcard may only contain a single one");
56
+ }
57
+ if (!hostname.includes("*")) {
58
+ throw new this.module.errors.InvalidClientMetadata("post_logout_redirect_uris may only have a wildcard in the hostname");
59
+ }
60
+ if (!psl.get(hostname.split("*.")[1])) {
61
+ throw new this.module.errors.InvalidClientMetadata("post_logout_redirect_uris with a wildcard must not match an eTLD+1 of a known public suffix domain");
62
+ }
63
+ }
64
+ }
65
+ }
49
66
  }
50
67
  };
51
68
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"OidcWildcardRedirectUriModule.js","sourceRoot":"","sources":["../../src/OidcWildcardRedirectUriModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,yBAAyB,EAAe,MAAM,qBAAqB,CAAC;AAG5E,aAAa;AACb,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,0BAA0B,EAAC,MAAM,oCAAoC,CAAC;AAavE,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAOiB;IALhD,OAAO,CAAU;IAGhB,MAAM,CAAS;IAEzB,YAAyD,MAAiC;QAAjC,WAAM,GAAN,MAAM,CAA2B;IAAG,CAAC;IAE9F,aAAa,CAAC,QAAkB;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,EAAC,kBAAkB,EAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;YACvD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,GAAG,0BAA0B,CAAC,kBAAkB,CAAC,CAAC;YAE9F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;SACxE;IACH,CAAC;IAED,uBAAuB,CAAC,MAAoB;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,gBAAgB,GAAG,MAAM,EAAE,mBAAmB,EAAE,UAAU,IAAI,EAAE,CAAC;YAEvE,MAAM,CAAC,mBAAmB,GAAG;gBAC3B,UAAU,EAAE,CAAC,GAAG,gBAAgB,EAAE,eAAe,CAAC;gBAClD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;aACrC,CAAC;SACH;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,GAAuB,EAAE,GAAW,EAAE,KAAU;QACxD,IAAI,GAAG,KAAK,eAAe,EAAE;YAC3B,KAAK,MAAM,WAAW,IAAI,KAAK,EAAE;gBAC/B,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAC7B,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;oBAE9C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBAChC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,6DAA6D,CAAC,CAAC;qBACnH;oBAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBAC3B,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,wDAAwD,CAAC,CAAC;qBAC9G;oBAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBACrC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAChD,wFAAwF,CACzF,CAAC;qBACH;iBACF;aACF;SACF;IACH,CAAC;CACF,CAAA;AArDC;IAAC,QAAQ,CAAC,+BAA+B,EAAE,KAAK,CAAC;;8DACvB;AAE1B;IAAC,MAAM,CAAC,MAAM,CAAC;8BACG,MAAM;6DAAC;AALd,6BAA6B;IADzC,MAAM,EAAE;IAQM,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;;GAPnC,6BAA6B,CAsDzC;SAtDY,6BAA6B"}
1
+ {"version":3,"file":"OidcWildcardRedirectUriModule.js","sourceRoot":"","sources":["../../src/OidcWildcardRedirectUriModule.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,10 @@ const hasWildcardHost = (redirectUri) => {
5
5
  return hostname.includes("*");
6
6
  };
7
7
  const wildcardMatches = (redirectUri, wildcardUri) => !!wildcard(wildcardUri, redirectUri);
8
- export function wildcardRedirectUriAllowed(originalRedirectUriAllowed) {
8
+ export function wildcardRedirectUriAllowed(originalRedirectUriAllowed, redirectUriOrPostLogoutRedirectUri) {
9
9
  return function (redirectUri) {
10
- if (this.redirectUris.some(hasWildcardHost)) {
11
- const wildcardUris = this.redirectUris.filter(hasWildcardHost);
10
+ if (this[redirectUriOrPostLogoutRedirectUri].some(hasWildcardHost)) {
11
+ const wildcardUris = this[redirectUriOrPostLogoutRedirectUri].filter(hasWildcardHost);
12
12
  return wildcardUris.some(wildcardMatches.bind(undefined, redirectUri)) || originalRedirectUriAllowed.call(this, redirectUri);
13
13
  }
14
14
  return originalRedirectUriAllowed.call(this, redirectUri);
@@ -1 +1 @@
1
- {"version":3,"file":"wildcardRedirectUriAllowed.js","sourceRoot":"","sources":["../../../src/utils/wildcardRedirectUriAllowed.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC9C,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,WAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3G,MAAM,UAAU,0BAA0B,CAAC,0BAA+B;IACxE,OAAO,UAAU,WAAmB;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC9H;QACD,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wildcardRedirectUriAllowed.js","sourceRoot":"","sources":["../../../src/utils/wildcardRedirectUriAllowed.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC9C,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,WAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3G,MAAM,UAAU,0BAA0B,CAAC,0BAA+B,EAAE,kCAA6E;IACvJ,OAAO,UAAU,WAAmB;QAClC,IAAI,IAAI,CAAC,kCAAkC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAClE,MAAM,YAAY,GAAG,IAAI,CAAC,kCAAkC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YACtF,OAAO,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC9H;QACD,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- export declare function wildcardRedirectUriAllowed(originalRedirectUriAllowed: any): (redirectUri: string) => any;
1
+ export declare function wildcardRedirectUriAllowed(originalRedirectUriAllowed: any, redirectUriOrPostLogoutRedirectUri: "redirectUris" | "postLogoutRedirectUris"): (redirectUri: string) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsed/oidc-provider-plugin-wildcard-redirect-uri",
3
- "version": "7.63.2",
3
+ "version": "7.64.0",
4
4
  "description": "A plugin to support wildcard in the redirect uri whitelist",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/cjs/index.js",
@@ -20,23 +20,25 @@
20
20
  "build:ts": "tsc --build tsconfig.json && tsc --build tsconfig.esm.json"
21
21
  },
22
22
  "dependencies": {
23
+ "psl": "1.9.0",
23
24
  "wildcard": "2.0.0"
24
25
  },
25
26
  "devDependencies": {
26
- "@tsed/core": "7.63.2",
27
- "@tsed/di": "7.63.2",
28
- "@tsed/oidc-provider": "7.63.2",
29
- "@tsed/typescript": "7.63.2",
27
+ "@tsed/core": "7.64.0",
28
+ "@tsed/di": "7.64.0",
29
+ "@tsed/oidc-provider": "7.64.0",
30
+ "@tsed/typescript": "7.64.0",
31
+ "@types/psl": "^1",
30
32
  "@types/uuid": "8.3.4",
31
33
  "barrelsby": "^2.8.1",
32
34
  "eslint": "^8.12.0",
33
35
  "jest": "^29.2.0"
34
36
  },
35
37
  "peerDependencies": {
36
- "@tsed/core": "7.63.2",
37
- "@tsed/di": "7.63.2",
38
+ "@tsed/core": "7.64.0",
39
+ "@tsed/di": "7.64.0",
38
40
  "@tsed/logger": ">=6.2.2",
39
- "@tsed/oidc-provider": "7.63.2",
41
+ "@tsed/oidc-provider": "7.64.0",
40
42
  "oidc-provider": ">=8.0.0"
41
43
  },
42
44
  "peerDependenciesMeta": {