@owox/idp-owox 0.8.0-next-20250929102821 → 0.8.0-next-20250929131945

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.
package/dist/config.d.ts CHANGED
@@ -122,22 +122,27 @@ declare const IdentityOwoxClientEnvSchema: z.ZodEffects<z.ZodObject<{
122
122
  declare const IdpEnvSchema: z.ZodEffects<z.ZodObject<{
123
123
  IDP_OWOX_CLIENT_ID: z.ZodString;
124
124
  IDP_OWOX_PLATFORM_SIGN_IN_URL: z.ZodString;
125
+ IDP_OWOX_PLATFORM_SIGN_UP_URL: z.ZodString;
125
126
  IDP_OWOX_CALLBACK_URL: z.ZodString;
126
127
  }, "strip", z.ZodTypeAny, {
127
128
  IDP_OWOX_CLIENT_ID: string;
128
129
  IDP_OWOX_PLATFORM_SIGN_IN_URL: string;
130
+ IDP_OWOX_PLATFORM_SIGN_UP_URL: string;
129
131
  IDP_OWOX_CALLBACK_URL: string;
130
132
  }, {
131
133
  IDP_OWOX_CLIENT_ID: string;
132
134
  IDP_OWOX_PLATFORM_SIGN_IN_URL: string;
135
+ IDP_OWOX_PLATFORM_SIGN_UP_URL: string;
133
136
  IDP_OWOX_CALLBACK_URL: string;
134
137
  }>, {
135
138
  clientId: string;
136
139
  platformSignInUrl: string;
140
+ platformSignUpUrl: string;
137
141
  callbackUrl: string;
138
142
  }, {
139
143
  IDP_OWOX_CLIENT_ID: string;
140
144
  IDP_OWOX_PLATFORM_SIGN_IN_URL: string;
145
+ IDP_OWOX_PLATFORM_SIGN_UP_URL: string;
141
146
  IDP_OWOX_CALLBACK_URL: string;
142
147
  }>;
143
148
  /** ---------- JWT config ---------- */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,IAAI,CAAC;AA6DpB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCtB,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB;;;;;;;;;;;;;;;;;;;;;EAGvE;AAED,gDAAgD;AAEhD,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;mBAaoB,EAAE,CAAC,WAAW;;;;;EAE/D,CAAC;AAEL,sDAAsD;AAEtD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;EAYb,CAAC;AAEN,uCAAuC;AAEvC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;EAYb,CAAC;AAEN,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3E,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACnF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAgB5F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,IAAI,CAAC;AA6DpB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCtB,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB;;;;;;;;;;;;;;;;;;;;;EAGvE;AAED,gDAAgD;AAEhD,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;mBAaoB,EAAE,CAAC,WAAW;;;;;EAE/D,CAAC;AAEL,sDAAsD;AAEtD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;EAgBb,CAAC;AAEN,uCAAuC;AAEvC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;EAYb,CAAC;AAEN,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC3E,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAExE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AACnF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,aAAa,CAgB5F"}
package/dist/config.js CHANGED
@@ -116,11 +116,15 @@ const IdpEnvSchema = zod_1.z
116
116
  IDP_OWOX_PLATFORM_SIGN_IN_URL: zod_1.z
117
117
  .string()
118
118
  .url({ message: 'IDP_OWOX_PLATFORM_SIGN_IN_URL must be a valid URL' }),
119
+ IDP_OWOX_PLATFORM_SIGN_UP_URL: zod_1.z
120
+ .string()
121
+ .url({ message: 'IDP_OWOX_PLATFORM_SIGN_UP_URL must be a valid URL' }),
119
122
  IDP_OWOX_CALLBACK_URL: zod_1.z.string().min(1, 'IDP_OWOX_CALLBACK_URL is required'),
120
123
  })
121
124
  .transform(e => ({
122
125
  clientId: e.IDP_OWOX_CLIENT_ID,
123
126
  platformSignInUrl: e.IDP_OWOX_PLATFORM_SIGN_IN_URL,
127
+ platformSignUpUrl: e.IDP_OWOX_PLATFORM_SIGN_UP_URL,
124
128
  callbackUrl: e.IDP_OWOX_CALLBACK_URL,
125
129
  }));
126
130
  /** ---------- JWT config ---------- */
package/dist/owoxIdp.d.ts CHANGED
@@ -13,11 +13,13 @@ export declare class OwoxIdp implements IdpProvider {
13
13
  revokeToken(token: string): Promise<void>;
14
14
  shutdown(): Promise<void>;
15
15
  signInMiddleware(req: e.Request, res: e.Response, _next: NextFunction): Promise<void | e.Response>;
16
+ signUpMiddleware(req: e.Request, res: e.Response, _next: NextFunction): Promise<void | e.Response>;
16
17
  signOutMiddleware(req: e.Request, res: e.Response, _next: NextFunction): Promise<void | e.Response>;
17
18
  userApiMiddleware(req: e.Request, res: e.Response): Promise<e.Response<Payload>>;
18
19
  projectsApiMiddleware(req: e.Request, res: e.Response): Promise<e.Response<Projects>>;
19
20
  accessTokenMiddleware(req: e.Request, res: e.Response, _next: NextFunction): Promise<void | e.Response>;
20
21
  registerRoutes(app: e.Express): void;
22
+ private redirectToAuthUrl;
21
23
  private changeAuthCode;
22
24
  private setTokenToCookie;
23
25
  private normalizeToken;
@@ -1 +1 @@
1
- {"version":3,"file":"owoxIdp.d.ts","sourceRoot":"","sources":["../src/owoxIdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAC/F,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkBzC,qBAAa,OAAQ,YAAW,WAAW;IAI7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAEvB,MAAM,EAAE,aAAa;IAKlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAU5C,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBvD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAInB,gBAAgB,CACpB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,GAAG,EAAE,CAAC,CAAC,QAAQ,EACf,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IAqBvB,iBAAiB,CACrB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,GAAG,EAAE,CAAC,CAAC,QAAQ,EACf,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IASvB,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAchF,qBAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAWrF,qBAAqB,CACzB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,GAAG,EAAE,CAAC,CAAC,QAAQ,EACf,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IA0B7B,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI;YAyBtB,cAAc;IAgB5B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;CAOpB"}
1
+ {"version":3,"file":"owoxIdp.d.ts","sourceRoot":"","sources":["../src/owoxIdp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAiB,MAAM,oBAAoB,CAAC;AAC/F,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkBzC,qBAAa,OAAQ,YAAW,WAAW;IAI7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAEvB,MAAM,EAAE,aAAa;IAKlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAU5C,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBvD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAInB,gBAAgB,CACpB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,GAAG,EAAE,CAAC,CAAC,QAAQ,EACf,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IAIvB,gBAAgB,CACpB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,GAAG,EAAE,CAAC,CAAC,QAAQ,EACf,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IAIvB,iBAAiB,CACrB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,GAAG,EAAE,CAAC,CAAC,QAAQ,EACf,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IASvB,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAchF,qBAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAWrF,qBAAqB,CACzB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,GAAG,EAAE,CAAC,CAAC,QAAQ,EACf,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC;IA0B7B,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI;YAyBtB,iBAAiB;YAyBjB,cAAc;IAgB5B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;CAOpB"}
package/dist/owoxIdp.js CHANGED
@@ -63,21 +63,10 @@ class OwoxIdp {
63
63
  return this.store.shutdown();
64
64
  }
65
65
  async signInMiddleware(req, res, _next) {
66
- const { codeVerifier, codeChallenge } = await (0, pkce_1.generatePkce)();
67
- const state = (0, pkce_1.generateState)();
68
- const clientId = this.config.idpConfig.clientId;
69
- const expiresAt = new Date(Date.now() + (0, ms_1.default)('1m'));
70
- await this.store.save(state, codeVerifier, expiresAt);
71
- const signInUrl = new URL(this.config.idpConfig.platformSignInUrl);
72
- const params = signInUrl.searchParams;
73
- params.set('state', state);
74
- params.set('codeChallenge', codeChallenge);
75
- params.set('clientId', clientId);
76
- const projectId = req.query?.projectId?.toString();
77
- if (projectId) {
78
- params.set('projectId', projectId);
79
- }
80
- res.redirect(signInUrl.toString());
66
+ return this.redirectToAuthUrl(req, res, this.config.idpConfig.platformSignInUrl);
67
+ }
68
+ async signUpMiddleware(req, res, _next) {
69
+ return this.redirectToAuthUrl(req, res, this.config.idpConfig.platformSignUpUrl);
81
70
  }
82
71
  async signOutMiddleware(req, res, _next) {
83
72
  const refreshToken = req.cookies[COOKIE_NAME];
@@ -152,6 +141,23 @@ class OwoxIdp {
152
141
  }
153
142
  });
154
143
  }
144
+ async redirectToAuthUrl(req, res, authUrl) {
145
+ const { codeVerifier, codeChallenge } = await (0, pkce_1.generatePkce)();
146
+ const state = (0, pkce_1.generateState)();
147
+ const clientId = this.config.idpConfig.clientId;
148
+ const expiresAt = new Date(Date.now() + (0, ms_1.default)('1m'));
149
+ await this.store.save(state, codeVerifier, expiresAt);
150
+ const redirectUrl = new URL(authUrl);
151
+ const params = redirectUrl.searchParams;
152
+ params.set('state', state);
153
+ params.set('codeChallenge', codeChallenge);
154
+ params.set('clientId', clientId);
155
+ const projectId = req.query?.projectId?.toString();
156
+ if (projectId) {
157
+ params.set('projectId', projectId);
158
+ }
159
+ res.redirect(redirectUrl.toString());
160
+ }
155
161
  async changeAuthCode(code, state) {
156
162
  const codeVerifier = await this.store.get(state);
157
163
  if (!codeVerifier) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owox/idp-owox",
3
- "version": "0.8.0-next-20250929102821",
3
+ "version": "0.8.0-next-20250929131945",
4
4
  "description": "Identity Provider implementation from OWOX",
5
5
  "author": "OWOX",
6
6
  "license": "ELv2",
@@ -21,8 +21,8 @@
21
21
  "prepublishOnly": "npm run lint && npm run typecheck"
22
22
  },
23
23
  "dependencies": {
24
- "@owox/idp-protocol": "0.8.0-next-20250929102821",
25
- "@owox/internal-helpers": "0.8.0-next-20250929102821",
24
+ "@owox/idp-protocol": "0.8.0-next-20250929131945",
25
+ "@owox/internal-helpers": "0.8.0-next-20250929131945",
26
26
  "pkce-challenge": "^5.0.0",
27
27
  "cookie-parser": "^1.4.7",
28
28
  "env-paths": "^3.0.0",