@rudderjs/passport 1.1.1 → 1.1.2

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 (67) hide show
  1. package/README.md +96 -15
  2. package/dist/grants/authorization-code.d.ts.map +1 -1
  3. package/dist/grants/authorization-code.js +4 -17
  4. package/dist/grants/authorization-code.js.map +1 -1
  5. package/dist/grants/client-credentials.d.ts.map +1 -1
  6. package/dist/grants/client-credentials.js +4 -17
  7. package/dist/grants/client-credentials.js.map +1 -1
  8. package/dist/grants/device-code.d.ts.map +1 -1
  9. package/dist/grants/device-code.js +2 -1
  10. package/dist/grants/device-code.js.map +1 -1
  11. package/dist/grants/parse-scopes.d.ts +15 -0
  12. package/dist/grants/parse-scopes.d.ts.map +1 -0
  13. package/dist/grants/parse-scopes.js +17 -0
  14. package/dist/grants/parse-scopes.js.map +1 -0
  15. package/dist/grants/refresh-token.d.ts.map +1 -1
  16. package/dist/grants/refresh-token.js +5 -18
  17. package/dist/grants/refresh-token.js.map +1 -1
  18. package/dist/grants/verify-client.d.ts +29 -0
  19. package/dist/grants/verify-client.d.ts.map +1 -0
  20. package/dist/grants/verify-client.js +43 -0
  21. package/dist/grants/verify-client.js.map +1 -0
  22. package/dist/middleware/bearer.d.ts.map +1 -1
  23. package/dist/middleware/bearer.js +98 -103
  24. package/dist/middleware/bearer.js.map +1 -1
  25. package/dist/models/AccessToken.d.ts +3 -3
  26. package/dist/models/AuthCode.d.ts +3 -3
  27. package/dist/models/DeviceCode.d.ts +3 -3
  28. package/dist/models/RefreshToken.d.ts +3 -3
  29. package/dist/models/helpers.d.ts +27 -9
  30. package/dist/models/helpers.d.ts.map +1 -1
  31. package/dist/models/helpers.js +12 -6
  32. package/dist/models/helpers.js.map +1 -1
  33. package/dist/personal-access-tokens.d.ts.map +1 -1
  34. package/dist/personal-access-tokens.js.map +1 -1
  35. package/dist/routes/authorize.d.ts +17 -0
  36. package/dist/routes/authorize.d.ts.map +1 -0
  37. package/dist/routes/authorize.js +107 -0
  38. package/dist/routes/authorize.js.map +1 -0
  39. package/dist/routes/device.d.ts +23 -0
  40. package/dist/routes/device.d.ts.map +1 -0
  41. package/dist/routes/device.js +69 -0
  42. package/dist/routes/device.js.map +1 -0
  43. package/dist/routes/helpers.d.ts +64 -0
  44. package/dist/routes/helpers.d.ts.map +1 -0
  45. package/dist/routes/helpers.js +154 -0
  46. package/dist/routes/helpers.js.map +1 -0
  47. package/dist/routes/revoke.d.ts +16 -0
  48. package/dist/routes/revoke.d.ts.map +1 -0
  49. package/dist/routes/revoke.js +33 -0
  50. package/dist/routes/revoke.js.map +1 -0
  51. package/dist/routes/scopes.d.ts +9 -0
  52. package/dist/routes/scopes.d.ts.map +1 -0
  53. package/dist/routes/scopes.js +13 -0
  54. package/dist/routes/scopes.js.map +1 -0
  55. package/dist/routes/token.d.ts +24 -0
  56. package/dist/routes/token.d.ts.map +1 -0
  57. package/dist/routes/token.js +121 -0
  58. package/dist/routes/token.js.map +1 -0
  59. package/dist/routes/types.d.ts +132 -0
  60. package/dist/routes/types.d.ts.map +1 -0
  61. package/dist/routes/types.js +2 -0
  62. package/dist/routes/types.js.map +1 -0
  63. package/dist/routes.d.ts +2 -120
  64. package/dist/routes.d.ts.map +1 -1
  65. package/dist/routes.js +16 -411
  66. package/dist/routes.js.map +1 -1
  67. package/package.json +3 -3
package/dist/routes.js CHANGED
@@ -1,143 +1,10 @@
1
- import { config, report } from '@rudderjs/core';
2
1
  import { Passport } from './Passport.js';
3
- import { clientHelpers } from './models/helpers.js';
4
- import { RequireBearer } from './middleware/bearer.js';
5
- import { validateAuthorizationRequest, issueAuthCode, exchangeAuthCode, clientCredentialsGrant, refreshTokenGrant, requestDeviceCode, pollDeviceCode, approveDeviceCode, OAuthError, } from './grants/index.js';
6
- /**
7
- * Re-validate that `redirect_uri` is on the requesting client's whitelist.
8
- * The consent UI sees the validated URI from `GET /oauth/authorize`, but the
9
- * subsequent POST/DELETE bodies are attacker-controlled and must be
10
- * re-checked — otherwise the response leaks an authorization code (POST) or
11
- * an open redirect (DELETE) to a host the client never registered.
12
- * Throws `OAuthError` so the surrounding try/catch returns the correct
13
- * status + payload.
14
- */
15
- async function validateClientRedirect(clientId, redirectUri) {
16
- if (typeof clientId !== 'string' || !clientId) {
17
- throw new OAuthError('invalid_request', 'client_id is required.');
18
- }
19
- if (typeof redirectUri !== 'string' || !redirectUri) {
20
- throw new OAuthError('invalid_request', 'redirect_uri is required.');
21
- }
22
- const ClientCls = await Passport.clientModel();
23
- const client = await ClientCls.where('id', clientId).first();
24
- if (!client || client.revoked) {
25
- throw new OAuthError('invalid_client', 'Client not found.');
26
- }
27
- if (!clientHelpers.hasRedirectUri(client, redirectUri)) {
28
- throw new OAuthError('invalid_request', 'Invalid redirect_uri.');
29
- }
30
- return client;
31
- }
32
- /**
33
- * Resolve client credentials at the token endpoint per RFC 6749 §2.3.
34
- *
35
- * Confidential clients can authenticate via:
36
- * 1. `Authorization: Basic base64(client_id:client_secret)` (§2.3.1, MUST support)
37
- * 2. `client_id` + `client_secret` in the request body (alternative)
38
- *
39
- * §2.3 forbids using both at once — clients MUST NOT pass credentials in
40
- * the body when the header is present. We reject that combination with
41
- * `invalid_request` so SDK bugs surface loudly instead of silently
42
- * accepting one set and ignoring the other.
43
- *
44
- * Public clients send only `client_id` in the body; both Basic creds and
45
- * a body `client_id` mismatch is also rejected.
46
- */
47
- function resolveClientCredentials(req, body) {
48
- const authHeader = req.headers?.['authorization'];
49
- const bodyClientId = body['client_id'];
50
- const bodyClientSecret = body['client_secret'];
51
- if (typeof authHeader === 'string' && authHeader.length >= 6 && authHeader.slice(0, 6).toLowerCase() === 'basic ') {
52
- const encoded = authHeader.slice(6).trim();
53
- let decoded;
54
- try {
55
- decoded = Buffer.from(encoded, 'base64').toString('utf8');
56
- }
57
- catch {
58
- throw new OAuthError('invalid_request', 'Malformed HTTP Basic credentials.', 401);
59
- }
60
- const sep = decoded.indexOf(':');
61
- if (sep === -1) {
62
- throw new OAuthError('invalid_request', 'Malformed HTTP Basic credentials.', 401);
63
- }
64
- // RFC 6749 §2.3.1 — client_id and client_secret in Basic are
65
- // application/x-www-form-urlencoded-encoded before base64. SDKs in
66
- // the wild often skip the percent-encoding step; we accept the raw
67
- // form because requiring percent-decoding here would reject every
68
- // ASCII-only credential pair (which is the overwhelming majority).
69
- const headerClientId = decoded.slice(0, sep);
70
- const headerClientSecret = decoded.slice(sep + 1);
71
- if (!headerClientId) {
72
- throw new OAuthError('invalid_request', 'Malformed HTTP Basic credentials.', 401);
73
- }
74
- if (bodyClientSecret !== undefined) {
75
- throw new OAuthError('invalid_request', 'client_secret must not be sent in both Authorization header and request body.', 401);
76
- }
77
- if (bodyClientId !== undefined && bodyClientId !== headerClientId) {
78
- throw new OAuthError('invalid_request', 'client_id in Authorization header does not match request body.', 401);
79
- }
80
- return { clientId: headerClientId, clientSecret: headerClientSecret };
81
- }
82
- if (typeof bodyClientId !== 'string' || !bodyClientId) {
83
- throw new OAuthError('invalid_request', 'client_id is required.');
84
- }
85
- return bodyClientSecret !== undefined
86
- ? { clientId: bodyClientId, clientSecret: bodyClientSecret }
87
- : { clientId: bodyClientId };
88
- }
89
- /**
90
- * Resolve the device-flow verification URI in this priority order:
91
- *
92
- * 1. `opts.verificationUri` — explicit caller override.
93
- * 2. `config('app.url')` — `${appUrl}${prefix}/device`. Trailing slash on
94
- * the configured value is tolerated.
95
- * 3. `req.protocol` + `req.hostname` — last-resort fallback for dev / when
96
- * neither knob is configured. The `Host` header is attacker-controlled
97
- * behind a reverse proxy without trust-proxy, so we emit a one-shot
98
- * warning the first time we land here. Documented in CLAUDE.md.
99
- */
100
- let _hostHeaderFallbackWarned = false;
101
- function resolveVerificationUri(opts, req, prefix) {
102
- if (opts.verificationUri)
103
- return opts.verificationUri;
104
- const appUrl = config('app.url', undefined);
105
- if (typeof appUrl === 'string' && appUrl) {
106
- return `${appUrl.replace(/\/$/, '')}${prefix}/device`;
107
- }
108
- if (!_hostHeaderFallbackWarned) {
109
- _hostHeaderFallbackWarned = true;
110
- console.warn('[@rudderjs/passport] Falling back to req.protocol/req.hostname for the device-flow verification URI. ' +
111
- 'The Host header is attacker-controlled behind a reverse proxy without trust-proxy. ' +
112
- 'Set APP_URL (config(\'app.url\')) or pass an explicit `verificationUri` to registerPassportRoutes() to silence this.');
113
- }
114
- return `${req.protocol}://${req.hostname}${prefix}/device`;
115
- }
116
- /**
117
- * Render an error response from a `/oauth/authorize` handler. RFC 6749
118
- * §4.1.2.1 requires that `state` is echoed back on errors (so the client
119
- * can reconcile the response against its own session) — independent of
120
- * whether the response shape is a redirect or JSON, and independent of
121
- * the underlying error code.
122
- *
123
- * We additionally call `report()` on non-`OAuthError` throws so the root
124
- * cause surfaces through the configured exception reporter instead of
125
- * being silently collapsed under `server_error`.
126
- */
127
- function authErrorResponse(res, err, state) {
128
- const stateEcho = typeof state === 'string' && state ? { state } : {};
129
- if (err instanceof OAuthError) {
130
- res.status(err.statusCode).json({ ...err.toJSON(), ...stateEcho });
131
- return;
132
- }
133
- report(err);
134
- res.status(500).json({ error: 'server_error', error_description: 'Internal server error.', ...stateEcho });
135
- }
136
- function asMiddlewareArray(input) {
137
- if (!input)
138
- return [];
139
- return Array.isArray(input) ? input : [input];
140
- }
2
+ import { asMiddlewareArray } from './routes/helpers.js';
3
+ import { registerAuthorizeRoutes } from './routes/authorize.js';
4
+ import { registerTokenRoute } from './routes/token.js';
5
+ import { registerRevokeRoute } from './routes/revoke.js';
6
+ import { registerScopesRoute } from './routes/scopes.js';
7
+ import { registerDeviceRoutes } from './routes/device.js';
141
8
  /**
142
9
  * Register all Passport OAuth routes on the given router.
143
10
  *
@@ -160,278 +27,16 @@ export function registerPassportRoutes(router, opts = {}) {
160
27
  const tokenMiddleware = asMiddlewareArray(opts.tokenMiddleware);
161
28
  const authorizeMiddleware = asMiddlewareArray(opts.authorizeMiddleware);
162
29
  const deviceMiddleware = asMiddlewareArray(opts.deviceMiddleware);
163
- // ── /oauth/authorize ─────────────────────────────────────
164
- if (!skip.has('authorize')) {
165
- // GET /oauth/authorize — show consent (returns JSON or renders custom view)
166
- router.get(`${prefix}/authorize`, async (req, res) => {
167
- const query = req.query ?? {};
168
- try {
169
- const validated = await validateAuthorizationRequest({
170
- clientId: query['client_id'] ?? '',
171
- redirectUri: query['redirect_uri'] ?? '',
172
- responseType: query['response_type'] ?? '',
173
- scope: query['scope'] ?? '',
174
- state: query['state'],
175
- codeChallenge: query['code_challenge'],
176
- codeChallengeMethod: query['code_challenge_method'],
177
- });
178
- const ctx = {
179
- client: {
180
- id: validated.client.id,
181
- name: validated.client.name,
182
- },
183
- scopes: validated.scopes,
184
- redirectUri: validated.redirectUri,
185
- ...(validated.state !== undefined ? { state: validated.state } : {}),
186
- ...(validated.codeChallenge !== undefined ? { codeChallenge: validated.codeChallenge } : {}),
187
- ...(validated.codeChallengeMethod !== undefined ? { codeChallengeMethod: validated.codeChallengeMethod } : {}),
188
- request: req,
189
- };
190
- const viewFn = Passport.authorizationViewFn();
191
- if (viewFn) {
192
- return await viewFn(ctx);
193
- }
194
- // Default: JSON response — the app's consent screen reads this
195
- res.json({
196
- client: ctx.client,
197
- scopes: ctx.scopes,
198
- state: ctx.state,
199
- redirectUri: ctx.redirectUri,
200
- });
201
- }
202
- catch (e) {
203
- authErrorResponse(res, e, query['state']);
204
- }
205
- }, authorizeMiddleware);
206
- // POST /oauth/authorize — user approves
207
- router.post(`${prefix}/authorize`, async (req, res) => {
208
- const body = req.body ?? {};
209
- try {
210
- const userId = req.raw?.__rjs_user?.id ?? req.user?.id;
211
- if (!userId) {
212
- // Echo state on the unauthenticated branch too — the consent UI
213
- // round-trips the same payload regardless of the auth gate result.
214
- const stateEcho = typeof body['state'] === 'string' && body['state'] ? { state: body['state'] } : {};
215
- res.status(401).json({ error: 'unauthenticated', error_description: 'User must be signed in.', ...stateEcho });
216
- return;
217
- }
218
- await validateClientRedirect(body['client_id'], body['redirect_uri']);
219
- const code = await issueAuthCode({
220
- userId,
221
- clientId: body['client_id'],
222
- scopes: body['scopes'] ?? [],
223
- redirectUri: body['redirect_uri'],
224
- codeChallenge: body['code_challenge'],
225
- codeChallengeMethod: body['code_challenge_method'],
226
- });
227
- const redirectUri = new URL(body['redirect_uri']);
228
- redirectUri.searchParams.set('code', code);
229
- if (body['state'])
230
- redirectUri.searchParams.set('state', body['state']);
231
- res.json({ redirect_uri: redirectUri.toString() });
232
- }
233
- catch (e) {
234
- authErrorResponse(res, e, body['state']);
235
- }
236
- }, authorizeMiddleware);
237
- // DELETE /oauth/authorize — user denies
238
- router.delete(`${prefix}/authorize`, async (req, res) => {
239
- const body = req.body ?? {};
240
- try {
241
- await validateClientRedirect(body['client_id'], body['redirect_uri']);
242
- const redirectUri = new URL(body['redirect_uri']);
243
- redirectUri.searchParams.set('error', 'access_denied');
244
- redirectUri.searchParams.set('error_description', 'The user denied the request.');
245
- if (body['state'])
246
- redirectUri.searchParams.set('state', body['state']);
247
- res.json({ redirect_uri: redirectUri.toString() });
248
- }
249
- catch (e) {
250
- authErrorResponse(res, e, body['state']);
251
- }
252
- }, authorizeMiddleware);
253
- }
254
- // ── POST /oauth/token ────────────────────────────────────
255
- if (!skip.has('token')) {
256
- // `tokenMiddleware` runs ahead of the handler — primary intended use is
257
- // a per-route rate limiter so client_secret guessing can't churn through
258
- // the registry without backoff. See PassportRouteOptions.tokenMiddleware
259
- // jsdoc for the recommended config.
260
- router.post(`${prefix}/token`, async (req, res) => {
261
- try {
262
- const body = req.body ?? {};
263
- const grantType = body['grant_type'];
264
- // RFC 6749 §2.3.1 — confidential clients MUST be able to
265
- // authenticate via HTTP Basic; body params are an alternative.
266
- // §2.3 forbids using both at once. Resolve credentials once for
267
- // all grants instead of repeating the parsing in each branch.
268
- const credentials = resolveClientCredentials(req, body);
269
- let result;
270
- switch (grantType) {
271
- case 'authorization_code':
272
- result = await exchangeAuthCode({
273
- grantType,
274
- code: body['code'],
275
- ...credentials,
276
- redirectUri: body['redirect_uri'],
277
- codeVerifier: body['code_verifier'],
278
- });
279
- break;
280
- case 'client_credentials':
281
- // ClientCredentialsRequest requires clientSecret (the grant
282
- // is confidential-only by spec). Surface the missing-secret
283
- // case as invalid_request rather than letting it surface
284
- // downstream as "Invalid client secret."
285
- if (credentials.clientSecret === undefined) {
286
- throw new OAuthError('invalid_request', 'client_secret is required for the client_credentials grant.', 401);
287
- }
288
- result = await clientCredentialsGrant({
289
- grantType,
290
- clientId: credentials.clientId,
291
- clientSecret: credentials.clientSecret,
292
- scope: body['scope'],
293
- });
294
- break;
295
- case 'refresh_token':
296
- result = await refreshTokenGrant({
297
- grantType,
298
- refreshToken: body['refresh_token'],
299
- ...credentials,
300
- scope: body['scope'],
301
- });
302
- break;
303
- case 'urn:ietf:params:oauth:grant-type:device_code': {
304
- const pollResult = await pollDeviceCode({
305
- grantType,
306
- deviceCode: body['device_code'],
307
- clientId: credentials.clientId,
308
- });
309
- if (pollResult.status === 'authorized') {
310
- result = pollResult.tokens;
311
- }
312
- else {
313
- // RFC 8628 §3.5 — device-flow polling errors (including
314
- // slow_down) are §5.2-shaped errors and MUST return HTTP
315
- // 400. 429 is for transport-level rate-limiting, not the
316
- // OAuth `slow_down` signal.
317
- //
318
- // On slow_down, forward the escalated `interval` so a
319
- // well-behaved client uses the new value instead of having
320
- // to add 5 itself. Other variants don't need it.
321
- if (pollResult.status === 'slow_down') {
322
- res.status(400).json({ error: 'slow_down', interval: pollResult.interval });
323
- }
324
- else {
325
- res.status(400).json({ error: pollResult.status });
326
- }
327
- return;
328
- }
329
- break;
330
- }
331
- default:
332
- res.status(400).json({
333
- error: 'unsupported_grant_type',
334
- error_description: `Grant type "${grantType}" is not supported.`,
335
- });
336
- return;
337
- }
338
- res.json(result);
339
- }
340
- catch (e) {
341
- if (e instanceof OAuthError) {
342
- // RFC 6749 §5.2 — client-auth failures at the token endpoint
343
- // are signalled with WWW-Authenticate alongside the 401 status.
344
- if (e.statusCode === 401 && typeof res.header === 'function') {
345
- res.header('WWW-Authenticate', 'Basic realm="oauth"');
346
- }
347
- res.status(e.statusCode).json(e.toJSON());
348
- }
349
- else {
350
- report(e);
351
- res.status(500).json({ error: 'server_error', error_description: 'Internal server error.' });
352
- }
353
- }
354
- }, tokenMiddleware);
355
- }
356
- // ── DELETE /oauth/tokens/:id — revoke a specific token ──
357
- // Requires a valid bearer token AND ownership of the token being revoked.
358
- // Token ids appear in JWT `jti` claims (semi-public), so without an
359
- // ownership check anyone with a single captured JWT could DoS arbitrary
360
- // users. Returns 404 (not 403) on ownership mismatch to avoid leaking
361
- // whether a given id exists.
362
- if (!skip.has('revoke')) {
363
- router.delete(`${prefix}/tokens/:id`, async (req, res) => {
364
- const tokenId = req.params?.['id'] ?? '';
365
- const AccessTokenCls = await Passport.tokenModel();
366
- const token = await AccessTokenCls.where('id', tokenId).first();
367
- const requesterId = req.raw?.__rjs_user?.id ?? req.user?.id;
368
- if (!token || !requesterId || token.userId !== requesterId) {
369
- res.status(404).json({ error: 'not_found', error_description: 'Token not found.' });
370
- return;
371
- }
372
- // QueryBuilder.updateAll() bypasses the mass-assignment filter;
373
- // `revoked` is no longer in `AccessToken.fillable`.
374
- await AccessTokenCls.where('id', token.id)
375
- .updateAll({ revoked: true });
376
- res.status(204).send();
377
- }, [RequireBearer(), ...authorizeMiddleware]);
378
- }
379
- // ── GET /oauth/scopes ────────────────────────────────────
380
- if (!skip.has('scopes')) {
381
- router.get(`${prefix}/scopes`, async (_req, res) => {
382
- res.json(Passport.scopes());
383
- });
384
- }
385
- // ── /oauth/device ────────────────────────────────────────
386
- if (!skip.has('device')) {
387
- // POST /oauth/device/code — request device authorization
388
- // `deviceMiddleware` runs ahead of the handler — primary intended use is
389
- // a per-route rate limiter tighter than the api-group default. See
390
- // PassportRouteOptions.deviceMiddleware jsdoc.
391
- router.post(`${prefix}/device/code`, async (req, res) => {
392
- try {
393
- const body = req.body ?? {};
394
- const verificationUri = resolveVerificationUri(opts, req, prefix);
395
- const result = await requestDeviceCode({
396
- clientId: body['client_id'],
397
- scope: body['scope'],
398
- verificationUri,
399
- });
400
- res.json(result);
401
- }
402
- catch (e) {
403
- if (e instanceof OAuthError) {
404
- res.status(e.statusCode).json(e.toJSON());
405
- }
406
- else {
407
- report(e);
408
- res.status(500).json({ error: 'server_error', error_description: 'Internal server error.' });
409
- }
410
- }
411
- }, deviceMiddleware);
412
- // POST /oauth/device/approve — user approves/denies device
413
- router.post(`${prefix}/device/approve`, async (req, res) => {
414
- try {
415
- const body = req.body ?? {};
416
- const userId = req.raw?.__rjs_user?.id ?? req.user?.id;
417
- if (!userId) {
418
- res.status(401).json({ error: 'unauthenticated', error_description: 'User must be signed in.' });
419
- return;
420
- }
421
- await approveDeviceCode(body['user_code'], userId, body['approved'] !== false);
422
- res.json({ status: 'ok' });
423
- }
424
- catch (e) {
425
- if (e instanceof OAuthError) {
426
- res.status(e.statusCode).json(e.toJSON());
427
- }
428
- else {
429
- report(e);
430
- res.status(500).json({ error: 'server_error', error_description: 'Internal server error.' });
431
- }
432
- }
433
- }, deviceMiddleware);
434
- }
30
+ if (!skip.has('authorize'))
31
+ registerAuthorizeRoutes(router, prefix, authorizeMiddleware);
32
+ if (!skip.has('token'))
33
+ registerTokenRoute(router, prefix, tokenMiddleware);
34
+ if (!skip.has('revoke'))
35
+ registerRevokeRoute(router, prefix, authorizeMiddleware);
36
+ if (!skip.has('scopes'))
37
+ registerScopesRoute(router, prefix);
38
+ if (!skip.has('device'))
39
+ registerDeviceRoutes(router, opts, prefix, deviceMiddleware);
435
40
  }
436
41
  /**
437
42
  * Register the **web-group** Passport routes — `GET/POST/DELETE
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAU,mBAAmB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAS,oBAAoB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAS,oBAAoB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAQ,oBAAoB,CAAA;AAI3D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,OAA6B,EAAE;IACpF,IAAI,QAAQ,CAAC,aAAa,EAAE;QAAE,OAAM;IAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAA;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IACvC,MAAM,eAAe,GAAO,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACnE,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACvE,MAAM,gBAAgB,GAAM,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAEpE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAA;IACxF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAAM,kBAAkB,CAAK,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IACnF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAK,mBAAmB,CAAI,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAA;IACvF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAK,mBAAmB,CAAI,MAAM,EAAE,MAAM,CAAC,CAAA;IAClE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAK,oBAAoB,CAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAC5F,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,OAA6B,EAAE;IACvF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAyB,CAAC,CAAA;IACrG,sBAAsB,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,OAA6B,EAAE;IACvF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAyB,CAAC,CAAA;IAC/F,sBAAsB,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACzE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderjs/passport",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "rudderjs": {
5
5
  "provider": "PassportProvider",
6
6
  "stage": "infrastructure",
@@ -35,8 +35,8 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@rudderjs/core": "^1.1.3",
38
- "@rudderjs/contracts": "^1.4.0",
39
- "@rudderjs/orm": "^1.8.1"
38
+ "@rudderjs/contracts": "^1.6.0",
39
+ "@rudderjs/orm": "^1.9.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^20.0.0",