@hasna/connectors 0.1.0 → 0.2.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.
Files changed (110) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +19 -13
  3. package/bin/index.js +208 -73
  4. package/bin/mcp.js +24 -18
  5. package/bin/serve.js +94 -32
  6. package/connectors/connect-anthropic/package.json +2 -2
  7. package/connectors/connect-aws/package.json +2 -2
  8. package/connectors/connect-brandsight/package.json +2 -2
  9. package/connectors/connect-cloudflare/.env.example +0 -5
  10. package/connectors/connect-cloudflare/package.json +2 -2
  11. package/connectors/connect-discord/package.json +2 -2
  12. package/connectors/connect-docker/package.json +2 -2
  13. package/connectors/connect-e2b/package.json +2 -2
  14. package/connectors/connect-elevenlabs/package.json +2 -2
  15. package/connectors/connect-exa/package.json +2 -2
  16. package/connectors/connect-figma/package.json +2 -2
  17. package/connectors/connect-firecrawl/package.json +2 -2
  18. package/connectors/connect-github/package.json +2 -2
  19. package/connectors/connect-gmail/package.json +2 -2
  20. package/connectors/connect-google/package.json +2 -2
  21. package/connectors/connect-googlecalendar/package.json +2 -2
  22. package/connectors/connect-googlecloud/package.json +2 -2
  23. package/connectors/connect-googlecontacts/package.json +2 -2
  24. package/connectors/connect-googledocs/package.json +2 -2
  25. package/connectors/connect-googledrive/package.json +2 -2
  26. package/connectors/connect-googlegemini/package.json +2 -2
  27. package/connectors/connect-googlesheets/package.json +2 -2
  28. package/connectors/connect-googletasks/package.json +2 -2
  29. package/connectors/connect-hedra/package.json +2 -2
  30. package/connectors/connect-heygen/package.json +2 -2
  31. package/connectors/connect-huggingface/package.json +2 -2
  32. package/connectors/connect-icons8/package.json +2 -2
  33. package/connectors/connect-maropost/package.json +2 -2
  34. package/connectors/connect-mercury/package.json +2 -2
  35. package/connectors/connect-meta/package.json +2 -2
  36. package/connectors/connect-midjourney/package.json +2 -2
  37. package/connectors/connect-mistral/package.json +2 -2
  38. package/connectors/connect-mixpanel/package.json +2 -2
  39. package/connectors/connect-notion/.env.example +0 -5
  40. package/connectors/connect-notion/package.json +2 -2
  41. package/connectors/connect-openai/package.json +2 -2
  42. package/connectors/connect-openweathermap/package.json +2 -2
  43. package/connectors/connect-pandadoc/package.json +2 -2
  44. package/connectors/connect-quo/package.json +2 -2
  45. package/connectors/connect-reddit/package.json +2 -2
  46. package/connectors/connect-reducto/package.json +1 -1
  47. package/connectors/connect-resend/package.json +2 -2
  48. package/connectors/connect-revolut/package.json +2 -2
  49. package/connectors/connect-sedo/package.json +2 -2
  50. package/connectors/connect-sentry/package.json +2 -2
  51. package/connectors/connect-shadcn/package.json +2 -2
  52. package/connectors/connect-snap/package.json +2 -2
  53. package/connectors/connect-stabilityai/package.json +2 -2
  54. package/connectors/connect-stripe/package.json +2 -2
  55. package/connectors/connect-stripeatlas/package.json +2 -2
  56. package/connectors/connect-substack/package.json +2 -2
  57. package/connectors/connect-tiktok/package.json +2 -2
  58. package/connectors/connect-tinker/package.json +2 -2
  59. package/connectors/connect-twilio/package.json +4 -4
  60. package/connectors/connect-uspto/package.json +2 -2
  61. package/connectors/connect-x/package.json +2 -2
  62. package/connectors/connect-xads/package.json +2 -2
  63. package/connectors/connect-xai/package.json +2 -2
  64. package/connectors/connect-youtube/package.json +2 -2
  65. package/connectors/connect-zoom/package.json +2 -2
  66. package/dist/cli/cli.test.d.ts +1 -0
  67. package/dist/cli/components/App.d.ts +6 -0
  68. package/dist/cli/components/CategorySelect.d.ts +6 -0
  69. package/dist/cli/components/ConnectorSelect.d.ts +10 -0
  70. package/dist/cli/components/Header.d.ts +6 -0
  71. package/dist/cli/components/InstallProgress.d.ts +8 -0
  72. package/dist/cli/components/SearchView.d.ts +8 -0
  73. package/dist/cli/components/components.test.d.ts +1 -0
  74. package/dist/cli/index.d.ts +2 -0
  75. package/dist/index.d.ts +11 -0
  76. package/dist/index.js +11 -16
  77. package/dist/lib/installer.d.ts +55 -0
  78. package/dist/lib/installer.test.d.ts +1 -0
  79. package/dist/lib/registry.d.ts +18 -0
  80. package/dist/lib/registry.test.d.ts +1 -0
  81. package/dist/mcp/index.d.ts +2 -0
  82. package/dist/mcp/mcp.test.d.ts +1 -0
  83. package/dist/server/auth.d.ts +70 -0
  84. package/dist/server/dashboard.d.ts +5 -0
  85. package/dist/server/index.d.ts +6 -0
  86. package/dist/server/serve.d.ts +12 -0
  87. package/dist/server/server.test.d.ts +1 -0
  88. package/package.json +5 -4
  89. package/connectors/connect-browseruse/.env.example +0 -7
  90. package/connectors/connect-browseruse/.npmrc.example +0 -2
  91. package/connectors/connect-browseruse/AGENTS.md +0 -172
  92. package/connectors/connect-browseruse/CLAUDE.md +0 -172
  93. package/connectors/connect-browseruse/GEMINI.md +0 -172
  94. package/connectors/connect-browseruse/README.md +0 -153
  95. package/connectors/connect-browseruse/package.json +0 -52
  96. package/connectors/connect-browseruse/src/api/billing.ts +0 -32
  97. package/connectors/connect-browseruse/src/api/browsers.ts +0 -50
  98. package/connectors/connect-browseruse/src/api/client.ts +0 -168
  99. package/connectors/connect-browseruse/src/api/files.ts +0 -70
  100. package/connectors/connect-browseruse/src/api/index.ts +0 -95
  101. package/connectors/connect-browseruse/src/api/profiles.ts +0 -59
  102. package/connectors/connect-browseruse/src/api/sessions.ts +0 -88
  103. package/connectors/connect-browseruse/src/api/skills.ts +0 -194
  104. package/connectors/connect-browseruse/src/api/tasks.ts +0 -127
  105. package/connectors/connect-browseruse/src/cli/index.ts +0 -888
  106. package/connectors/connect-browseruse/src/index.ts +0 -35
  107. package/connectors/connect-browseruse/src/types/index.ts +0 -312
  108. package/connectors/connect-browseruse/src/utils/config.ts +0 -212
  109. package/connectors/connect-browseruse/src/utils/output.ts +0 -119
  110. package/connectors/connect-browseruse/tsconfig.json +0 -16
@@ -30,11 +30,11 @@
30
30
  },
31
31
  "repository": {
32
32
  "type": "git",
33
- "url": "git+https://github.com/hasna/opensource-connectors.git"
33
+ "url": "git+https://github.com/hasna/connectors.git"
34
34
  },
35
- "homepage": "https://github.com/hasna/opensource-connectors#readme",
35
+ "homepage": "https://github.com/hasna/connectors#readme",
36
36
  "bugs": {
37
- "url": "https://github.com/hasna/opensource-connectors/issues"
37
+ "url": "https://github.com/hasna/connectors/issues"
38
38
  },
39
39
  "keywords": [
40
40
  "twilio",
@@ -51,7 +51,7 @@
51
51
  "hasna"
52
52
  ],
53
53
  "author": "Hasna",
54
- "license": "MIT",
54
+ "license": "Apache-2.0",
55
55
  "devDependencies": {
56
56
  "@types/bun": "latest",
57
57
  "typescript": "^5"
@@ -34,7 +34,7 @@
34
34
  "hasna"
35
35
  ],
36
36
  "author": "Hasna",
37
- "license": "MIT",
37
+ "license": "Apache-2.0",
38
38
  "devDependencies": {
39
39
  "@types/bun": "latest",
40
40
  "typescript": "^5"
@@ -49,6 +49,6 @@
49
49
  },
50
50
  "repository": {
51
51
  "type": "git",
52
- "url": "git+https://github.com/hasna/opensource-connectors.git"
52
+ "url": "git+https://github.com/hasna/connectors.git"
53
53
  }
54
54
  }
@@ -39,7 +39,7 @@
39
39
  "hasna"
40
40
  ],
41
41
  "author": "Hasna",
42
- "license": "MIT",
42
+ "license": "Apache-2.0",
43
43
  "devDependencies": {
44
44
  "@types/bun": "latest",
45
45
  "typescript": "^5"
@@ -54,6 +54,6 @@
54
54
  },
55
55
  "repository": {
56
56
  "type": "git",
57
- "url": "git+https://github.com/hasna/opensource-connectors.git"
57
+ "url": "git+https://github.com/hasna/connectors.git"
58
58
  }
59
59
  }
@@ -29,7 +29,7 @@
29
29
  "hasna"
30
30
  ],
31
31
  "author": "Hasna",
32
- "license": "MIT",
32
+ "license": "Apache-2.0",
33
33
  "dependencies": {
34
34
  "chalk": "^5.3.0",
35
35
  "commander": "^12.1.0"
@@ -47,6 +47,6 @@
47
47
  ],
48
48
  "repository": {
49
49
  "type": "git",
50
- "url": "git+https://github.com/hasna/opensource-connectors.git"
50
+ "url": "git+https://github.com/hasna/connectors.git"
51
51
  }
52
52
  }
@@ -41,7 +41,7 @@
41
41
  "hasna"
42
42
  ],
43
43
  "author": "Hasna",
44
- "license": "MIT",
44
+ "license": "Apache-2.0",
45
45
  "devDependencies": {
46
46
  "@types/bun": "latest",
47
47
  "typescript": "^5"
@@ -55,6 +55,6 @@
55
55
  },
56
56
  "repository": {
57
57
  "type": "git",
58
- "url": "git+https://github.com/hasna/opensource-connectors.git"
58
+ "url": "git+https://github.com/hasna/connectors.git"
59
59
  }
60
60
  }
@@ -42,7 +42,7 @@
42
42
  "hasna"
43
43
  ],
44
44
  "author": "Hasna",
45
- "license": "MIT",
45
+ "license": "Apache-2.0",
46
46
  "devDependencies": {
47
47
  "@types/bun": "latest",
48
48
  "typescript": "^5"
@@ -56,6 +56,6 @@
56
56
  },
57
57
  "repository": {
58
58
  "type": "git",
59
- "url": "git+https://github.com/hasna/opensource-connectors.git"
59
+ "url": "git+https://github.com/hasna/connectors.git"
60
60
  }
61
61
  }
@@ -32,7 +32,7 @@
32
32
  "hasna"
33
33
  ],
34
34
  "author": "Hasna",
35
- "license": "MIT",
35
+ "license": "Apache-2.0",
36
36
  "devDependencies": {
37
37
  "@types/bun": "latest",
38
38
  "typescript": "^5"
@@ -46,6 +46,6 @@
46
46
  },
47
47
  "repository": {
48
48
  "type": "git",
49
- "url": "git+https://github.com/hasna/opensource-connectors.git"
49
+ "url": "git+https://github.com/hasna/connectors.git"
50
50
  }
51
51
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ interface AppProps {
2
+ initialConnectors?: string[];
3
+ overwrite?: boolean;
4
+ }
5
+ export declare function App({ initialConnectors, overwrite }: AppProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ interface CategorySelectProps {
2
+ onSelect: (category: string) => void;
3
+ onBack?: () => void;
4
+ }
5
+ export declare function CategorySelect({ onSelect, onBack }: CategorySelectProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,10 @@
1
+ import { ConnectorMeta } from "../../lib/registry.js";
2
+ interface ConnectorSelectProps {
3
+ connectors: ConnectorMeta[];
4
+ selected: Set<string>;
5
+ onToggle: (name: string) => void;
6
+ onConfirm: () => void;
7
+ onBack: () => void;
8
+ }
9
+ export declare function ConnectorSelect({ connectors, selected, onToggle, onConfirm, onBack, }: ConnectorSelectProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,6 @@
1
+ interface HeaderProps {
2
+ title?: string;
3
+ subtitle?: string;
4
+ }
5
+ export declare function Header({ title, subtitle }: HeaderProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,8 @@
1
+ import { InstallResult } from "../../lib/installer.js";
2
+ interface InstallProgressProps {
3
+ connectors: string[];
4
+ overwrite?: boolean;
5
+ onComplete: (results: InstallResult[]) => void;
6
+ }
7
+ export declare function InstallProgress({ connectors, overwrite, onComplete, }: InstallProgressProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ interface SearchViewProps {
2
+ selected: Set<string>;
3
+ onToggle: (name: string) => void;
4
+ onConfirm: () => void;
5
+ onBack: () => void;
6
+ }
7
+ export declare function SearchView({ selected, onToggle, onConfirm, onBack, }: SearchViewProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bun
2
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @hasna/connectors - Open source connector library
3
+ *
4
+ * Install API connectors with a single command:
5
+ * npx @hasna/connectors install figma stripe github
6
+ *
7
+ * Or use the interactive CLI:
8
+ * npx @hasna/connectors
9
+ */
10
+ export { CONNECTORS, CATEGORIES, getConnector, getConnectorsByCategory, searchConnectors, loadConnectorVersions, type ConnectorMeta, type Category, } from "./lib/registry.js";
11
+ export { installConnector, installConnectors, getInstalledConnectors, removeConnector, connectorExists, getConnectorPath, getConnectorDocs, type InstallResult, type InstallOptions, type ConnectorDocs, } from "./lib/installer.js";
package/dist/index.js CHANGED
@@ -1,6 +1,4 @@
1
1
  // @bun
2
- var __require = import.meta.require;
3
-
4
2
  // src/lib/registry.ts
5
3
  import { existsSync, readFileSync } from "fs";
6
4
  import { join, dirname } from "path";
@@ -159,13 +157,6 @@ var CONNECTORS = [
159
157
  category: "Developer Tools",
160
158
  tags: ["scraping", "web"]
161
159
  },
162
- {
163
- name: "browseruse",
164
- displayName: "Browser Use",
165
- description: "Browser automation for AI",
166
- category: "Developer Tools",
167
- tags: ["browser", "automation"]
168
- },
169
160
  {
170
161
  name: "shadcn",
171
162
  displayName: "shadcn/ui",
@@ -435,9 +426,9 @@ var CONNECTORS = [
435
426
  {
436
427
  name: "tinker",
437
428
  displayName: "Tinker",
438
- description: "Internal tooling",
439
- category: "Business Tools",
440
- tags: ["internal", "tools"]
429
+ description: "LLM fine-tuning and training API",
430
+ category: "AI & ML",
431
+ tags: ["ai", "llm", "fine-tuning"]
441
432
  },
442
433
  {
443
434
  name: "sedo",
@@ -495,7 +486,7 @@ function loadConnectorVersions() {
495
486
  }
496
487
  }
497
488
  // src/lib/installer.ts
498
- import { existsSync as existsSync2, cpSync, mkdirSync, readFileSync as readFileSync2, writeFileSync } from "fs";
489
+ import { existsSync as existsSync2, cpSync, mkdirSync, readFileSync as readFileSync2, writeFileSync, readdirSync, statSync, rmSync } from "fs";
499
490
  import { join as join2, dirname as dirname2 } from "path";
500
491
  import { fileURLToPath as fileURLToPath2 } from "url";
501
492
  var __dirname2 = dirname2(fileURLToPath2(import.meta.url));
@@ -518,6 +509,13 @@ function connectorExists(name) {
518
509
  }
519
510
  function installConnector(name, options = {}) {
520
511
  const { targetDir = process.cwd(), overwrite = false } = options;
512
+ if (!/^[a-z0-9-]+$/.test(name)) {
513
+ return {
514
+ connector: name,
515
+ success: false,
516
+ error: `Invalid connector name '${name}'`
517
+ };
518
+ }
521
519
  const connectorName = name.startsWith("connect-") ? name : `connect-${name}`;
522
520
  const sourcePath = getConnectorPath(name);
523
521
  const destDir = join2(targetDir, ".connectors");
@@ -561,7 +559,6 @@ function installConnectors(names, options = {}) {
561
559
  }
562
560
  function updateConnectorsIndex(connectorsDir) {
563
561
  const indexPath = join2(connectorsDir, "index.ts");
564
- const { readdirSync } = __require("fs");
565
562
  const connectors = readdirSync(connectorsDir).filter((f) => f.startsWith("connect-") && !f.includes("."));
566
563
  const exports = connectors.map((c) => {
567
564
  const name = c.replace("connect-", "");
@@ -582,7 +579,6 @@ function getInstalledConnectors(targetDir = process.cwd()) {
582
579
  if (!existsSync2(connectorsDir)) {
583
580
  return [];
584
581
  }
585
- const { readdirSync, statSync } = __require("fs");
586
582
  return readdirSync(connectorsDir).filter((f) => {
587
583
  const fullPath = join2(connectorsDir, f);
588
584
  return f.startsWith("connect-") && statSync(fullPath).isDirectory();
@@ -631,7 +627,6 @@ function parseEnvVarsTable(section) {
631
627
  return vars;
632
628
  }
633
629
  function removeConnector(name, targetDir = process.cwd()) {
634
- const { rmSync } = __require("fs");
635
630
  const connectorName = name.startsWith("connect-") ? name : `connect-${name}`;
636
631
  const connectorsDir = join2(targetDir, ".connectors");
637
632
  const connectorPath = join2(connectorsDir, connectorName);
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Connector installer - handles copying connectors to user projects
3
+ */
4
+ export interface InstallResult {
5
+ connector: string;
6
+ success: boolean;
7
+ error?: string;
8
+ path?: string;
9
+ }
10
+ export interface InstallOptions {
11
+ targetDir?: string;
12
+ overwrite?: boolean;
13
+ }
14
+ /**
15
+ * Get the path to a connector in the package
16
+ */
17
+ export declare function getConnectorPath(name: string): string;
18
+ /**
19
+ * Check if a connector exists in the package
20
+ */
21
+ export declare function connectorExists(name: string): boolean;
22
+ /**
23
+ * Install a single connector to the target directory
24
+ */
25
+ export declare function installConnector(name: string, options?: InstallOptions): InstallResult;
26
+ /**
27
+ * Install multiple connectors
28
+ */
29
+ export declare function installConnectors(names: string[], options?: InstallOptions): InstallResult[];
30
+ /**
31
+ * Get list of installed connectors in a directory
32
+ */
33
+ export declare function getInstalledConnectors(targetDir?: string): string[];
34
+ /**
35
+ * Parsed documentation from a connector's CLAUDE.md
36
+ */
37
+ export interface ConnectorDocs {
38
+ overview: string;
39
+ auth: string;
40
+ envVars: {
41
+ variable: string;
42
+ description: string;
43
+ }[];
44
+ cliCommands: string;
45
+ dataStorage: string;
46
+ raw: string;
47
+ }
48
+ /**
49
+ * Read and parse a connector's documentation (CLAUDE.md)
50
+ */
51
+ export declare function getConnectorDocs(name: string): ConnectorDocs | null;
52
+ /**
53
+ * Remove an installed connector
54
+ */
55
+ export declare function removeConnector(name: string, targetDir?: string): boolean;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Connector registry - metadata about all available connectors
3
+ */
4
+ export interface ConnectorMeta {
5
+ name: string;
6
+ displayName: string;
7
+ description: string;
8
+ category: string;
9
+ tags: string[];
10
+ version?: string;
11
+ }
12
+ export declare const CATEGORIES: readonly ["AI & ML", "Developer Tools", "Design & Content", "Communication", "Social Media", "Commerce & Finance", "Google Workspace", "Data & Analytics", "Business Tools", "Patents & IP", "Advertising"];
13
+ export type Category = (typeof CATEGORIES)[number];
14
+ export declare const CONNECTORS: ConnectorMeta[];
15
+ export declare function getConnectorsByCategory(category: Category): ConnectorMeta[];
16
+ export declare function searchConnectors(query: string): ConnectorMeta[];
17
+ export declare function getConnector(name: string): ConnectorMeta | undefined;
18
+ export declare function loadConnectorVersions(): void;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Auth status detection and token management for the dashboard server.
3
+ * Reads connector CLAUDE.md files to determine auth type, checks profile
4
+ * directories for stored credentials, and handles token operations.
5
+ */
6
+ export type AuthType = "oauth" | "apikey" | "bearer";
7
+ export interface AuthStatus {
8
+ type: AuthType;
9
+ configured: boolean;
10
+ tokenExpiry?: number;
11
+ hasRefreshToken?: boolean;
12
+ envVars: {
13
+ variable: string;
14
+ description: string;
15
+ set: boolean;
16
+ }[];
17
+ }
18
+ export interface OAuthTokens {
19
+ accessToken: string;
20
+ refreshToken?: string;
21
+ expiresAt: number;
22
+ tokenType?: string;
23
+ scope?: string;
24
+ }
25
+ /**
26
+ * Get the auth type for a connector by parsing its CLAUDE.md
27
+ */
28
+ export declare function getAuthType(name: string): AuthType;
29
+ /**
30
+ * Get the full auth status for a connector
31
+ */
32
+ export declare function getAuthStatus(name: string): AuthStatus;
33
+ /**
34
+ * Get required env var names from a connector's CLAUDE.md
35
+ */
36
+ export declare function getEnvVars(name: string): {
37
+ variable: string;
38
+ description: string;
39
+ }[];
40
+ /**
41
+ * Save an API key to a connector's profile
42
+ */
43
+ export declare function saveApiKey(name: string, key: string, field?: string): void;
44
+ /**
45
+ * Get OAuth client credentials for a connector
46
+ */
47
+ export declare function getOAuthConfig(name: string): {
48
+ clientId?: string;
49
+ clientSecret?: string;
50
+ };
51
+ /**
52
+ * Build OAuth authorization URL for a connector
53
+ */
54
+ export declare function getOAuthStartUrl(name: string, redirectUri: string): string | null;
55
+ /**
56
+ * Validate and consume an OAuth state token (CSRF protection)
57
+ */
58
+ export declare function validateOAuthState(state: string | null, expectedConnector: string): boolean;
59
+ /**
60
+ * Exchange an OAuth authorization code for tokens
61
+ */
62
+ export declare function exchangeOAuthCode(name: string, code: string, redirectUri: string): Promise<OAuthTokens>;
63
+ /**
64
+ * Refresh an OAuth token using the stored refresh token
65
+ */
66
+ export declare function refreshOAuthToken(name: string): Promise<OAuthTokens>;
67
+ /**
68
+ * Get token expiry time for an OAuth connector
69
+ */
70
+ export declare function getTokenExpiry(name: string): number | null;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * HTML dashboard template for the connector auth management server.
3
+ * Single-file HTML with embedded CSS/JS — no frameworks.
4
+ */
5
+ export declare function getDashboardHtml(port: number): string;
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Standalone entry point for the connector auth dashboard server.
4
+ * Usage: connectors-serve [--port 19426]
5
+ */
6
+ export {};
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Reusable server starter for the connector auth dashboard.
3
+ * Used by both the CLI `serve` command and the standalone `connectors-serve` binary.
4
+ * Serves the Vite-built React/shadcn dashboard from dashboard/dist/.
5
+ */
6
+ export interface ServeOptions {
7
+ port: number;
8
+ open?: boolean;
9
+ }
10
+ export declare function startServer(port: number, options?: {
11
+ open?: boolean;
12
+ }): Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/connectors",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Open source connector library - Install API connectors with a single command",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,12 +24,13 @@
24
24
  "main": "./dist/index.js",
25
25
  "types": "./dist/index.d.ts",
26
26
  "scripts": {
27
- "build": "cd dashboard && bun run build && cd .. && bun build ./src/cli/index.tsx --outdir ./bin --target bun --external ink --external react --external chalk --external conf && bun build ./src/mcp/index.ts --outfile ./bin/mcp.js --target bun && bun build ./src/server/index.ts --outfile ./bin/serve.js --target bun && bun build ./src/index.ts --outdir ./dist --target bun",
27
+ "build": "cd dashboard && bun run build && cd .. && bun build ./src/cli/index.tsx --outdir ./bin --target bun --external ink --external react --external chalk --external conf && bun build ./src/mcp/index.ts --outfile ./bin/mcp.js --target bun && bun build ./src/server/index.ts --outfile ./bin/serve.js --target bun && bun build ./src/index.ts --outdir ./dist --target bun && tsc --emitDeclarationOnly --outDir ./dist",
28
28
  "build:dashboard": "cd dashboard && bun run build",
29
+ "postinstall": "cd dashboard && bun install",
29
30
  "dev": "bun run ./src/cli/index.tsx",
30
31
  "typecheck": "tsc --noEmit",
31
32
  "test": "bun test",
32
- "prepublishOnly": "bun run build"
33
+ "prepublishOnly": "bun test && bun run build"
33
34
  },
34
35
  "keywords": [
35
36
  "connectors",
@@ -45,7 +46,7 @@
45
46
  "model-context-protocol"
46
47
  ],
47
48
  "author": "Hasna",
48
- "license": "MIT",
49
+ "license": "Apache-2.0",
49
50
  "devDependencies": {
50
51
  "@types/bun": "latest",
51
52
  "@types/react": "^18.2.0",
@@ -1,7 +0,0 @@
1
- # Browser Use Cloud API
2
- # Set these environment variables or use profile configuration
3
-
4
- BROWSER_USE_API_KEY=bu_your_api_key_here
5
-
6
- # Optional: Base URL (defaults to https://api.browser-use.com)
7
- # BROWSER_USE_BASE_URL=https://api.browser-use.com
@@ -1,2 +0,0 @@
1
- @hasna:registry=https://registry.npmjs.org/
2
- //registry.npmjs.org/:_authToken=${NPM_TOKEN}