@hotmeshio/long-tail 0.1.0 → 0.1.1

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.
@@ -51,7 +51,7 @@ router.get('/connections', auth_1.requireAuth, async (req, res) => {
51
51
  * GET /api/auth/oauth/:provider
52
52
  * Initiate the OAuth flow — redirects the browser to the provider.
53
53
  */
54
- router.get('/:provider', (req, res) => {
54
+ router.get('/:provider', async (req, res) => {
55
55
  const { provider } = req.params;
56
56
  const handler = (0, oauth_1.getProvider)(provider);
57
57
  if (!handler) {
@@ -65,7 +65,7 @@ router.get('/:provider', (req, res) => {
65
65
  if (!handler.config.redirectUri) {
66
66
  handler.config.redirectUri = `${baseUrl}/api/auth/oauth/${provider}/callback`;
67
67
  }
68
- const url = handler.createAuthorizationURL(state, codeVerifier);
68
+ const url = await handler.createAuthorizationURL(state, codeVerifier);
69
69
  res.redirect(url.toString());
70
70
  });
71
71
  /**
@@ -178,7 +178,7 @@ router.get('/connect/:provider', (req, res, next) => {
178
178
  req.headers.authorization = `Bearer ${token}`;
179
179
  }
180
180
  next();
181
- }, auth_1.requireAuth, (req, res) => {
181
+ }, auth_1.requireAuth, async (req, res) => {
182
182
  const userId = req.auth.userId;
183
183
  const provider = req.params.provider;
184
184
  const handler = (0, oauth_1.getProvider)(provider);
@@ -197,7 +197,7 @@ router.get('/connect/:provider', (req, res, next) => {
197
197
  if (!handler.config.redirectUri) {
198
198
  handler.config.redirectUri = `${baseUrl}/api/auth/oauth/${provider}/callback`;
199
199
  }
200
- const url = handler.createAuthorizationURL(state, codeVerifier);
200
+ const url = await handler.createAuthorizationURL(state, codeVerifier);
201
201
  res.redirect(url.toString());
202
202
  });
203
203
  /**
@@ -1,17 +1,58 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.createGitHubHandler = createGitHubHandler;
4
- const arctic_1 = require("arctic");
5
37
  function createGitHubHandler(cfg) {
6
38
  const redirectUri = cfg.redirectUri || null;
7
- const github = new arctic_1.GitHub(cfg.clientId, cfg.clientSecret, redirectUri);
39
+ let _github;
40
+ async function getClient() {
41
+ if (!_github) {
42
+ const { GitHub } = await Promise.resolve().then(() => __importStar(require('arctic')));
43
+ _github = new GitHub(cfg.clientId, cfg.clientSecret, redirectUri);
44
+ }
45
+ return _github;
46
+ }
8
47
  return {
9
48
  config: cfg,
10
- createAuthorizationURL(state, _codeVerifier) {
49
+ async createAuthorizationURL(state, _codeVerifier) {
50
+ const github = await getClient();
11
51
  const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['read:user', 'user:email'];
12
52
  return github.createAuthorizationURL(state, scopes);
13
53
  },
14
54
  async validateAuthorizationCode(code, _codeVerifier) {
55
+ const github = await getClient();
15
56
  const tokens = await github.validateAuthorizationCode(code);
16
57
  return {
17
58
  accessToken: tokens.accessToken(),
@@ -1,17 +1,58 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.createGoogleHandler = createGoogleHandler;
4
- const arctic_1 = require("arctic");
5
37
  function createGoogleHandler(cfg) {
6
38
  const redirectUri = cfg.redirectUri || '';
7
- const google = new arctic_1.Google(cfg.clientId, cfg.clientSecret, redirectUri);
39
+ let _google;
40
+ async function getClient() {
41
+ if (!_google) {
42
+ const { Google } = await Promise.resolve().then(() => __importStar(require('arctic')));
43
+ _google = new Google(cfg.clientId, cfg.clientSecret, redirectUri);
44
+ }
45
+ return _google;
46
+ }
8
47
  return {
9
48
  config: cfg,
10
- createAuthorizationURL(state, codeVerifier) {
49
+ async createAuthorizationURL(state, codeVerifier) {
50
+ const google = await getClient();
11
51
  const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['openid', 'email', 'profile'];
12
52
  return google.createAuthorizationURL(state, codeVerifier, scopes);
13
53
  },
14
54
  async validateAuthorizationCode(code, codeVerifier) {
55
+ const google = await getClient();
15
56
  const tokens = await google.validateAuthorizationCode(code, codeVerifier);
16
57
  return {
17
58
  accessToken: tokens.accessToken(),
@@ -20,6 +61,7 @@ function createGoogleHandler(cfg) {
20
61
  };
21
62
  },
22
63
  async refreshAccessToken(refreshToken) {
64
+ const google = await getClient();
23
65
  const tokens = await google.refreshAccessToken(refreshToken);
24
66
  return {
25
67
  accessToken: tokens.accessToken(),
@@ -1,18 +1,59 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.createMicrosoftHandler = createMicrosoftHandler;
4
- const arctic_1 = require("arctic");
5
37
  function createMicrosoftHandler(cfg) {
6
38
  const redirectUri = cfg.redirectUri || '';
7
39
  const tenantId = process.env.OAUTH_MICROSOFT_TENANT_ID || 'common';
8
- const ms = new arctic_1.MicrosoftEntraId(tenantId, cfg.clientId, cfg.clientSecret, redirectUri);
40
+ let _ms;
41
+ async function getClient() {
42
+ if (!_ms) {
43
+ const { MicrosoftEntraId } = await Promise.resolve().then(() => __importStar(require('arctic')));
44
+ _ms = new MicrosoftEntraId(tenantId, cfg.clientId, cfg.clientSecret, redirectUri);
45
+ }
46
+ return _ms;
47
+ }
9
48
  return {
10
49
  config: cfg,
11
- createAuthorizationURL(state, codeVerifier) {
50
+ async createAuthorizationURL(state, codeVerifier) {
51
+ const ms = await getClient();
12
52
  const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['openid', 'email', 'profile'];
13
53
  return ms.createAuthorizationURL(state, codeVerifier, scopes);
14
54
  },
15
55
  async validateAuthorizationCode(code, codeVerifier) {
56
+ const ms = await getClient();
16
57
  const tokens = await ms.validateAuthorizationCode(code, codeVerifier);
17
58
  return {
18
59
  accessToken: tokens.accessToken(),
@@ -21,6 +62,7 @@ function createMicrosoftHandler(cfg) {
21
62
  };
22
63
  },
23
64
  async refreshAccessToken(refreshToken) {
65
+ const ms = await getClient();
24
66
  const scopes = cfg.scopes.length > 0 ? cfg.scopes : ['openid', 'email', 'profile'];
25
67
  const tokens = await ms.refreshAccessToken(refreshToken, scopes);
26
68
  return {
@@ -6,7 +6,7 @@ export interface OAuthTokens {
6
6
  }
7
7
  export interface ProviderHandler {
8
8
  config: LTOAuthProviderConfig;
9
- createAuthorizationURL(state: string, codeVerifier: string): URL;
9
+ createAuthorizationURL(state: string, codeVerifier: string): URL | Promise<URL>;
10
10
  validateAuthorizationCode(code: string, codeVerifier: string): Promise<OAuthTokens>;
11
11
  refreshAccessToken(refreshToken: string): Promise<OAuthTokens>;
12
12
  fetchUserInfo(accessToken: string): Promise<LTOAuthUserInfo>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hotmeshio/long-tail",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Long Tail Workflows — Durable AI workflows with human-in-the-loop escalation. Powered by PostgreSQL.",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",