pdauth 1.0.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.
- package/PROXY-SPEC.md +159 -0
- package/README.md +142 -0
- package/bin/ga.mjs +329 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +88 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/apps.d.ts +8 -0
- package/dist/commands/apps.d.ts.map +1 -0
- package/dist/commands/apps.js +76 -0
- package/dist/commands/apps.js.map +1 -0
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +58 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/connect.d.ts +6 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +67 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +7 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/proxy.d.ts +12 -0
- package/dist/commands/proxy.d.ts.map +1 -0
- package/dist/commands/proxy.js +127 -0
- package/dist/commands/proxy.js.map +1 -0
- package/dist/commands/status.d.ts +10 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +117 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/tools.d.ts +10 -0
- package/dist/commands/tools.d.ts.map +1 -0
- package/dist/commands/tools.js +123 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +59 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/pipedream.d.ts +52 -0
- package/dist/pipedream.d.ts.map +1 -0
- package/dist/pipedream.js +142 -0
- package/dist/pipedream.js.map +1 -0
- package/package.json +46 -0
- package/src/cli.ts +111 -0
- package/src/commands/apps.ts +88 -0
- package/src/commands/config.ts +68 -0
- package/src/commands/connect.ts +76 -0
- package/src/commands/index.ts +6 -0
- package/src/commands/proxy.ts +155 -0
- package/src/commands/status.ts +143 -0
- package/src/commands/tools.ts +150 -0
- package/src/config.ts +78 -0
- package/src/index.ts +6 -0
- package/src/pipedream.ts +216 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { listAccounts, deleteAccount } from '../pipedream.js';
|
|
4
|
+
import { isConfigured, getDefaultUser, getUsers } from '../config.js';
|
|
5
|
+
export async function statusCommand(options) {
|
|
6
|
+
if (!isConfigured()) {
|
|
7
|
+
console.error(chalk.red('Not configured. Run: pdauth config'));
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
const spinner = ora('Fetching connected accounts...').start();
|
|
11
|
+
try {
|
|
12
|
+
if (options.all) {
|
|
13
|
+
// Show all users
|
|
14
|
+
const users = getUsers();
|
|
15
|
+
const userIds = Object.keys(users);
|
|
16
|
+
if (userIds.length === 0) {
|
|
17
|
+
spinner.stop();
|
|
18
|
+
console.log(chalk.yellow('No users registered. Run: pdauth connect <app> --user <id>'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const allAccounts = [];
|
|
22
|
+
for (const userId of userIds) {
|
|
23
|
+
const accounts = await listAccounts(userId);
|
|
24
|
+
allAccounts.push({ userId, accounts });
|
|
25
|
+
}
|
|
26
|
+
spinner.stop();
|
|
27
|
+
if (options.json) {
|
|
28
|
+
console.log(JSON.stringify(allAccounts, null, 2));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log(chalk.bold('\nš All Connected Accounts\n'));
|
|
32
|
+
for (const { userId, accounts } of allAccounts) {
|
|
33
|
+
const userMeta = users[userId];
|
|
34
|
+
const label = userMeta?.label ? ` (${userMeta.label})` : '';
|
|
35
|
+
console.log(chalk.bold(` š¤ ${userId}${label}`));
|
|
36
|
+
if (accounts.length === 0) {
|
|
37
|
+
console.log(chalk.gray(' No connected accounts\n'));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
for (const account of accounts) {
|
|
41
|
+
const status = account.dead ? chalk.red('ā dead') :
|
|
42
|
+
account.healthy ? chalk.green('ā healthy') : chalk.yellow('ā unhealthy');
|
|
43
|
+
console.log(` ${chalk.cyan(account.app.nameSlug.padEnd(25))} ${status}`);
|
|
44
|
+
}
|
|
45
|
+
console.log();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const userId = options.user || getDefaultUser();
|
|
51
|
+
const accounts = await listAccounts(userId);
|
|
52
|
+
spinner.stop();
|
|
53
|
+
if (options.json) {
|
|
54
|
+
console.log(JSON.stringify({ user: userId, accounts }, null, 2));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
console.log(chalk.bold(`\nš Connected Accounts for ${chalk.cyan(userId)}\n`));
|
|
58
|
+
if (accounts.length === 0) {
|
|
59
|
+
console.log(chalk.yellow(' No connected accounts.\n'));
|
|
60
|
+
console.log(chalk.gray(' Run: pdauth connect <app> to authorize an app\n'));
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
for (const account of accounts) {
|
|
64
|
+
const status = account.dead ? chalk.red('ā dead') :
|
|
65
|
+
account.healthy ? chalk.green('ā healthy') : chalk.yellow('ā unhealthy');
|
|
66
|
+
console.log(` ${chalk.cyan(account.app.nameSlug.padEnd(25))} ${account.app.name}`);
|
|
67
|
+
console.log(` ${' '.repeat(25)} ${chalk.gray('Status:')} ${status}`);
|
|
68
|
+
console.log(` ${' '.repeat(25)} ${chalk.gray('Account ID:')} ${account.id}`);
|
|
69
|
+
console.log(` ${' '.repeat(25)} ${chalk.gray('Connected:')} ${new Date(account.createdAt).toLocaleDateString()}`);
|
|
70
|
+
console.log();
|
|
71
|
+
}
|
|
72
|
+
console.log(chalk.gray(` Total: ${accounts.length} connected app(s)\n`));
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
spinner.fail('Failed to fetch accounts');
|
|
76
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export async function disconnectCommand(appSlugOrAccountId, options) {
|
|
81
|
+
if (!isConfigured()) {
|
|
82
|
+
console.error(chalk.red('Not configured. Run: pdauth config'));
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
const userId = options.user || getDefaultUser();
|
|
86
|
+
const spinner = ora('Finding account...').start();
|
|
87
|
+
try {
|
|
88
|
+
const accounts = await listAccounts(userId);
|
|
89
|
+
// Find account by app slug or account ID
|
|
90
|
+
const account = accounts.find(a => a.app.nameSlug === appSlugOrAccountId || a.id === appSlugOrAccountId);
|
|
91
|
+
if (!account) {
|
|
92
|
+
spinner.fail(`No connected account found: ${appSlugOrAccountId}`);
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
if (!options.force) {
|
|
96
|
+
spinner.stop();
|
|
97
|
+
console.log(chalk.yellow(`\nā ļø This will disconnect ${chalk.cyan(account.app.name)} for user ${userId}`));
|
|
98
|
+
console.log(chalk.gray(' Run with --force to confirm\n'));
|
|
99
|
+
process.exit(0);
|
|
100
|
+
}
|
|
101
|
+
spinner.text = `Disconnecting ${account.app.name}...`;
|
|
102
|
+
const success = await deleteAccount(account.id);
|
|
103
|
+
if (success) {
|
|
104
|
+
spinner.succeed(`Disconnected ${account.app.name}`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
spinner.fail(`Failed to disconnect ${account.app.name}`);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
spinner.fail('Failed to disconnect');
|
|
113
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function toolsCommand(appSlug: string, options: {
|
|
2
|
+
user?: string;
|
|
3
|
+
json?: boolean;
|
|
4
|
+
}): Promise<void>;
|
|
5
|
+
export declare function callCommand(toolSelector: string, args: string[], options: {
|
|
6
|
+
user?: string;
|
|
7
|
+
json?: boolean;
|
|
8
|
+
args?: string;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CAyDf;AAED,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC,IAAI,CAAC,CA8Ef"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { listMcpTools, invokeMcpTool, listAccounts } from '../pipedream.js';
|
|
4
|
+
import { isConfigured, getDefaultUser } from '../config.js';
|
|
5
|
+
export async function toolsCommand(appSlug, options) {
|
|
6
|
+
if (!isConfigured()) {
|
|
7
|
+
console.error(chalk.red('Not configured. Run: pdauth config'));
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
const userId = options.user || getDefaultUser();
|
|
11
|
+
const spinner = ora(`Fetching tools for ${appSlug}...`).start();
|
|
12
|
+
try {
|
|
13
|
+
// Check if app is connected
|
|
14
|
+
const accounts = await listAccounts(userId);
|
|
15
|
+
const connected = accounts.find(a => a.app.nameSlug === appSlug);
|
|
16
|
+
if (!connected) {
|
|
17
|
+
spinner.fail(`App not connected: ${appSlug}`);
|
|
18
|
+
console.log(chalk.gray(`\nRun: pdauth connect ${appSlug} --user ${userId}`));
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
const tools = await listMcpTools(userId, appSlug);
|
|
22
|
+
spinner.stop();
|
|
23
|
+
if (options.json) {
|
|
24
|
+
console.log(JSON.stringify(tools, null, 2));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
console.log(chalk.bold(`\nš§ Tools for ${chalk.cyan(appSlug)} (${tools.length} available)\n`));
|
|
28
|
+
if (tools.length === 0) {
|
|
29
|
+
console.log(chalk.yellow(' No tools available for this app.\n'));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
for (const tool of tools) {
|
|
33
|
+
console.log(` ${chalk.cyan(tool.name)}`);
|
|
34
|
+
if (tool.description) {
|
|
35
|
+
console.log(` ${chalk.gray(tool.description.slice(0, 80))}${tool.description.length > 80 ? '...' : ''}`);
|
|
36
|
+
}
|
|
37
|
+
const required = tool.inputSchema?.required || [];
|
|
38
|
+
const props = Object.keys(tool.inputSchema?.properties || {});
|
|
39
|
+
if (props.length > 0) {
|
|
40
|
+
const propDisplay = props.map(p => required.includes(p) ? chalk.yellow(p) : chalk.gray(p)).join(', ');
|
|
41
|
+
console.log(` ${chalk.dim('params:')} ${propDisplay}`);
|
|
42
|
+
}
|
|
43
|
+
console.log();
|
|
44
|
+
}
|
|
45
|
+
console.log(chalk.gray(` Invoke: pdauth call ${appSlug}.<tool_name> key=value\n`));
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
spinner.fail('Failed to fetch tools');
|
|
49
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export async function callCommand(toolSelector, args, options) {
|
|
54
|
+
if (!isConfigured()) {
|
|
55
|
+
console.error(chalk.red('Not configured. Run: pdauth config'));
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
// Parse tool selector: app.tool_name
|
|
59
|
+
const [appSlug, ...toolParts] = toolSelector.split('.');
|
|
60
|
+
const toolName = toolParts.join('.');
|
|
61
|
+
if (!appSlug || !toolName) {
|
|
62
|
+
console.error(chalk.red('Invalid tool selector. Use: app_slug.tool_name'));
|
|
63
|
+
console.error(chalk.gray('Example: pdauth call slack.send_message channel=general text="Hello"'));
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
const userId = options.user || getDefaultUser();
|
|
67
|
+
// Parse arguments
|
|
68
|
+
let toolArgs = {};
|
|
69
|
+
if (options.args) {
|
|
70
|
+
// JSON args from --args flag
|
|
71
|
+
try {
|
|
72
|
+
toolArgs = JSON.parse(options.args);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
console.error(chalk.red('Invalid JSON in --args'));
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Parse key=value args
|
|
81
|
+
for (const arg of args) {
|
|
82
|
+
const eqIndex = arg.indexOf('=');
|
|
83
|
+
if (eqIndex === -1)
|
|
84
|
+
continue;
|
|
85
|
+
const key = arg.slice(0, eqIndex);
|
|
86
|
+
let value = arg.slice(eqIndex + 1);
|
|
87
|
+
// Try to parse as JSON for complex values
|
|
88
|
+
try {
|
|
89
|
+
value = JSON.parse(value);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Keep as string
|
|
93
|
+
}
|
|
94
|
+
toolArgs[key] = value;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const spinner = ora(`Calling ${appSlug}.${toolName}...`).start();
|
|
98
|
+
try {
|
|
99
|
+
// Check if app is connected
|
|
100
|
+
const accounts = await listAccounts(userId);
|
|
101
|
+
const connected = accounts.find(a => a.app.nameSlug === appSlug);
|
|
102
|
+
if (!connected) {
|
|
103
|
+
spinner.fail(`App not connected: ${appSlug}`);
|
|
104
|
+
console.log(chalk.gray(`\nRun: pdauth connect ${appSlug} --user ${userId}`));
|
|
105
|
+
process.exit(1);
|
|
106
|
+
}
|
|
107
|
+
const result = await invokeMcpTool(userId, appSlug, toolName, toolArgs);
|
|
108
|
+
spinner.stop();
|
|
109
|
+
if (options.json) {
|
|
110
|
+
console.log(JSON.stringify(result, null, 2));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
console.log(chalk.bold(`\nā
${appSlug}.${toolName} completed\n`));
|
|
114
|
+
console.log(JSON.stringify(result, null, 2));
|
|
115
|
+
console.log();
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
spinner.fail('Tool call failed');
|
|
119
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface PdAuthConfig {
|
|
2
|
+
clientId: string;
|
|
3
|
+
clientSecret: string;
|
|
4
|
+
projectId: string;
|
|
5
|
+
environment: 'development' | 'production';
|
|
6
|
+
}
|
|
7
|
+
export interface UserMapping {
|
|
8
|
+
[externalUserId: string]: {
|
|
9
|
+
label?: string;
|
|
10
|
+
createdAt: string;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function getConfig(): PdAuthConfig;
|
|
14
|
+
export declare function setConfig(values: Partial<PdAuthConfig>): void;
|
|
15
|
+
export declare function isConfigured(): boolean;
|
|
16
|
+
export declare function getDefaultUser(): string;
|
|
17
|
+
export declare function setDefaultUser(userId: string): void;
|
|
18
|
+
export declare function getUsers(): UserMapping;
|
|
19
|
+
export declare function addUser(userId: string, label?: string): void;
|
|
20
|
+
export declare function getConfigPath(): string;
|
|
21
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,aAAa,GAAG,YAAY,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,cAAc,EAAE,MAAM,GAAG;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAiBD,wBAAgB,SAAS,IAAI,YAAY,CAOxC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAK7D;AAED,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGnD;AAED,wBAAgB,QAAQ,IAAI,WAAW,CAEtC;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAM5D;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import Conf from 'conf';
|
|
2
|
+
import { homedir } from 'os';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const schema = {
|
|
5
|
+
clientId: { type: 'string', default: '' },
|
|
6
|
+
clientSecret: { type: 'string', default: '' },
|
|
7
|
+
projectId: { type: 'string', default: '' },
|
|
8
|
+
environment: { type: 'string', default: 'development' },
|
|
9
|
+
defaultUser: { type: 'string', default: 'default' },
|
|
10
|
+
users: { type: 'object', default: {} },
|
|
11
|
+
};
|
|
12
|
+
const config = new Conf({
|
|
13
|
+
projectName: 'pdauth',
|
|
14
|
+
cwd: join(homedir(), '.config', 'pdauth'),
|
|
15
|
+
schema,
|
|
16
|
+
});
|
|
17
|
+
export function getConfig() {
|
|
18
|
+
return {
|
|
19
|
+
clientId: config.get('clientId'),
|
|
20
|
+
clientSecret: config.get('clientSecret'),
|
|
21
|
+
projectId: config.get('projectId'),
|
|
22
|
+
environment: config.get('environment'),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function setConfig(values) {
|
|
26
|
+
if (values.clientId !== undefined)
|
|
27
|
+
config.set('clientId', values.clientId);
|
|
28
|
+
if (values.clientSecret !== undefined)
|
|
29
|
+
config.set('clientSecret', values.clientSecret);
|
|
30
|
+
if (values.projectId !== undefined)
|
|
31
|
+
config.set('projectId', values.projectId);
|
|
32
|
+
if (values.environment !== undefined)
|
|
33
|
+
config.set('environment', values.environment);
|
|
34
|
+
}
|
|
35
|
+
export function isConfigured() {
|
|
36
|
+
const cfg = getConfig();
|
|
37
|
+
return !!(cfg.clientId && cfg.clientSecret && cfg.projectId);
|
|
38
|
+
}
|
|
39
|
+
export function getDefaultUser() {
|
|
40
|
+
return config.get('defaultUser');
|
|
41
|
+
}
|
|
42
|
+
export function setDefaultUser(userId) {
|
|
43
|
+
config.set('defaultUser', userId);
|
|
44
|
+
addUser(userId);
|
|
45
|
+
}
|
|
46
|
+
export function getUsers() {
|
|
47
|
+
return config.get('users');
|
|
48
|
+
}
|
|
49
|
+
export function addUser(userId, label) {
|
|
50
|
+
const users = getUsers();
|
|
51
|
+
if (!users[userId]) {
|
|
52
|
+
users[userId] = { createdAt: new Date().toISOString(), label };
|
|
53
|
+
config.set('users', users);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export function getConfigPath() {
|
|
57
|
+
return config.path;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,qCAAqC;AAErC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { PipedreamClient } from '@pipedream/sdk';
|
|
2
|
+
export declare function getClient(): PipedreamClient;
|
|
3
|
+
export declare function resetClient(): void;
|
|
4
|
+
export interface ConnectLinkResult {
|
|
5
|
+
token: string;
|
|
6
|
+
expiresAt: string;
|
|
7
|
+
connectLinkUrl: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function createConnectLink(externalUserId: string, appSlug: string): Promise<ConnectLinkResult>;
|
|
10
|
+
export interface PipedreamAccount {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
externalId?: string;
|
|
14
|
+
healthy: boolean;
|
|
15
|
+
dead: boolean;
|
|
16
|
+
app: {
|
|
17
|
+
id: string;
|
|
18
|
+
nameSlug: string;
|
|
19
|
+
name: string;
|
|
20
|
+
imgSrc?: string;
|
|
21
|
+
};
|
|
22
|
+
createdAt: string;
|
|
23
|
+
updatedAt: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function listAccounts(externalUserId: string): Promise<PipedreamAccount[]>;
|
|
26
|
+
export declare function deleteAccount(accountId: string): Promise<boolean>;
|
|
27
|
+
export interface PipedreamApp {
|
|
28
|
+
id: string;
|
|
29
|
+
nameSlug: string;
|
|
30
|
+
name: string;
|
|
31
|
+
authType: string;
|
|
32
|
+
description: string;
|
|
33
|
+
imgSrc: string;
|
|
34
|
+
categories: string[];
|
|
35
|
+
}
|
|
36
|
+
export declare function searchApps(query?: string): Promise<PipedreamApp[]>;
|
|
37
|
+
export declare function getApp(nameSlug: string): Promise<PipedreamApp | null>;
|
|
38
|
+
export declare function getAccessToken(): Promise<string>;
|
|
39
|
+
export declare function getMcpServerUrl(): string;
|
|
40
|
+
export declare function getMcpHeaders(externalUserId: string, appSlug?: string): Promise<Record<string, string>>;
|
|
41
|
+
export interface McpTool {
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: string;
|
|
46
|
+
properties: Record<string, unknown>;
|
|
47
|
+
required?: string[];
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export declare function listMcpTools(externalUserId: string, appSlug: string): Promise<McpTool[]>;
|
|
51
|
+
export declare function invokeMcpTool(externalUserId: string, appSlug: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
|
|
52
|
+
//# sourceMappingURL=pipedream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipedream.d.ts","sourceRoot":"","sources":["../src/pipedream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKjD,wBAAgB,SAAS,IAAI,eAAe,CAe3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CACrC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAwB5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE;QACH,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAItF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvE;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAsB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAIxE;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAG3E;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAGtD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAsB,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgB7G;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAyB9F;AAED,wBAAsB,aAAa,CACjC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAgClB"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { PipedreamClient } from '@pipedream/sdk';
|
|
2
|
+
import { getConfig, isConfigured } from './config.js';
|
|
3
|
+
let _client = null;
|
|
4
|
+
export function getClient() {
|
|
5
|
+
if (!isConfigured()) {
|
|
6
|
+
throw new Error('Pipedream not configured. Run: pdauth config');
|
|
7
|
+
}
|
|
8
|
+
if (!_client) {
|
|
9
|
+
const config = getConfig();
|
|
10
|
+
_client = new PipedreamClient({
|
|
11
|
+
projectEnvironment: config.environment,
|
|
12
|
+
clientId: config.clientId,
|
|
13
|
+
clientSecret: config.clientSecret,
|
|
14
|
+
projectId: config.projectId,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return _client;
|
|
18
|
+
}
|
|
19
|
+
export function resetClient() {
|
|
20
|
+
_client = null;
|
|
21
|
+
}
|
|
22
|
+
export async function createConnectLink(externalUserId, appSlug) {
|
|
23
|
+
const client = getClient();
|
|
24
|
+
const response = await client.tokens.create({
|
|
25
|
+
externalUserId,
|
|
26
|
+
});
|
|
27
|
+
const expiresAt = typeof response.expiresAt === 'string'
|
|
28
|
+
? response.expiresAt
|
|
29
|
+
: response.expiresAt
|
|
30
|
+
? new Date(response.expiresAt).toISOString()
|
|
31
|
+
: new Date(Date.now() + 3600000).toISOString();
|
|
32
|
+
// Build connect link URL with app parameter
|
|
33
|
+
const baseUrl = response.connectLinkUrl || 'https://connect.pipedream.com';
|
|
34
|
+
const separator = baseUrl.includes('?') ? '&' : '?';
|
|
35
|
+
const connectLinkUrl = `${baseUrl}${separator}app=${encodeURIComponent(appSlug)}&connectLink=true`;
|
|
36
|
+
return {
|
|
37
|
+
token: response.token ?? '',
|
|
38
|
+
expiresAt,
|
|
39
|
+
connectLinkUrl,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export async function listAccounts(externalUserId) {
|
|
43
|
+
const client = getClient();
|
|
44
|
+
const response = await client.accounts.list({ externalUserId });
|
|
45
|
+
return (response.data ?? []);
|
|
46
|
+
}
|
|
47
|
+
export async function deleteAccount(accountId) {
|
|
48
|
+
const client = getClient();
|
|
49
|
+
try {
|
|
50
|
+
await client.accounts.delete(accountId);
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export async function searchApps(query) {
|
|
58
|
+
const client = getClient();
|
|
59
|
+
const response = await client.apps.list(query ? { q: query } : {});
|
|
60
|
+
return (response.data ?? []);
|
|
61
|
+
}
|
|
62
|
+
export async function getApp(nameSlug) {
|
|
63
|
+
const apps = await searchApps(nameSlug);
|
|
64
|
+
return apps.find(app => app.nameSlug === nameSlug) || null;
|
|
65
|
+
}
|
|
66
|
+
export async function getAccessToken() {
|
|
67
|
+
const client = getClient();
|
|
68
|
+
return client.rawAccessToken;
|
|
69
|
+
}
|
|
70
|
+
export function getMcpServerUrl() {
|
|
71
|
+
return 'https://remote.mcp.pipedream.net';
|
|
72
|
+
}
|
|
73
|
+
export async function getMcpHeaders(externalUserId, appSlug) {
|
|
74
|
+
const accessToken = await getAccessToken();
|
|
75
|
+
const config = getConfig();
|
|
76
|
+
const headers = {
|
|
77
|
+
'Authorization': `Bearer ${accessToken}`,
|
|
78
|
+
'x-pd-project-id': config.projectId,
|
|
79
|
+
'x-pd-environment': config.environment,
|
|
80
|
+
'x-pd-external-user-id': externalUserId,
|
|
81
|
+
};
|
|
82
|
+
if (appSlug) {
|
|
83
|
+
headers['x-pd-app-slug'] = appSlug;
|
|
84
|
+
}
|
|
85
|
+
return headers;
|
|
86
|
+
}
|
|
87
|
+
export async function listMcpTools(externalUserId, appSlug) {
|
|
88
|
+
const headers = await getMcpHeaders(externalUserId, appSlug);
|
|
89
|
+
const response = await fetch(getMcpServerUrl(), {
|
|
90
|
+
method: 'POST',
|
|
91
|
+
headers: {
|
|
92
|
+
...headers,
|
|
93
|
+
'Content-Type': 'application/json',
|
|
94
|
+
'Accept': 'application/json, text/event-stream',
|
|
95
|
+
},
|
|
96
|
+
body: JSON.stringify({
|
|
97
|
+
jsonrpc: '2.0',
|
|
98
|
+
method: 'tools/list',
|
|
99
|
+
id: Date.now(),
|
|
100
|
+
}),
|
|
101
|
+
});
|
|
102
|
+
const text = await response.text();
|
|
103
|
+
// Parse SSE format: "event: message\ndata: {...}"
|
|
104
|
+
const dataMatch = text.match(/^data: (.+)$/m);
|
|
105
|
+
if (!dataMatch) {
|
|
106
|
+
throw new Error('Invalid MCP response');
|
|
107
|
+
}
|
|
108
|
+
const data = JSON.parse(dataMatch[1]);
|
|
109
|
+
return data.result?.tools ?? [];
|
|
110
|
+
}
|
|
111
|
+
export async function invokeMcpTool(externalUserId, appSlug, toolName, args) {
|
|
112
|
+
const headers = await getMcpHeaders(externalUserId, appSlug);
|
|
113
|
+
const response = await fetch(getMcpServerUrl(), {
|
|
114
|
+
method: 'POST',
|
|
115
|
+
headers: {
|
|
116
|
+
...headers,
|
|
117
|
+
'Content-Type': 'application/json',
|
|
118
|
+
'Accept': 'application/json, text/event-stream',
|
|
119
|
+
},
|
|
120
|
+
body: JSON.stringify({
|
|
121
|
+
jsonrpc: '2.0',
|
|
122
|
+
method: 'tools/call',
|
|
123
|
+
params: {
|
|
124
|
+
name: toolName,
|
|
125
|
+
arguments: args,
|
|
126
|
+
},
|
|
127
|
+
id: Date.now(),
|
|
128
|
+
}),
|
|
129
|
+
});
|
|
130
|
+
const text = await response.text();
|
|
131
|
+
// Parse SSE format: "event: message\ndata: {...}"
|
|
132
|
+
const dataMatch = text.match(/^data: (.+)$/m);
|
|
133
|
+
if (!dataMatch) {
|
|
134
|
+
throw new Error(`Invalid MCP response: ${text.slice(0, 200)}`);
|
|
135
|
+
}
|
|
136
|
+
const data = JSON.parse(dataMatch[1]);
|
|
137
|
+
if (data.error) {
|
|
138
|
+
throw new Error(JSON.stringify(data.error));
|
|
139
|
+
}
|
|
140
|
+
return data.result;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=pipedream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipedream.js","sourceRoot":"","sources":["../src/pipedream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEtD,IAAI,OAAO,GAA2B,IAAI,CAAC;AAE3C,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,OAAO,GAAG,IAAI,eAAe,CAAC;YAC5B,kBAAkB,EAAE,MAAM,CAAC,WAAW;YACtC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,cAAsB,EACtB,OAAe;IAEf,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,SAAS,GACb,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;QACpC,CAAC,CAAC,QAAQ,CAAC,SAAS;QACpB,CAAC,CAAC,QAAQ,CAAC,SAAS;YAClB,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAC5C,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAErD,4CAA4C;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,IAAI,+BAA+B,CAAC;IAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,MAAM,cAAc,GAAG,GAAG,OAAO,GAAG,SAAS,OAAO,kBAAkB,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAEnG,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;QAC3B,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,cAAsB;IACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAkC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB;IACnD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAc;IAC7C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAA8B,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAgB;IAC3C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,MAAM,CAAC,cAAc,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,kCAAkC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,cAAsB,EAAE,OAAgB;IAC1E,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,WAAW,EAAE;QACxC,iBAAiB,EAAE,MAAM,CAAC,SAAS;QACnC,kBAAkB,EAAE,MAAM,CAAC,WAAW;QACtC,uBAAuB,EAAE,cAAc;KACxC,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,cAAsB,EAAE,OAAe;IACxE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,GAAG,OAAO;YACV,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,qCAAqC;SAChD;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY;YACpB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,kDAAkD;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAuC,CAAC;IAC5E,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,cAAsB,EACtB,OAAe,EACf,QAAgB,EAChB,IAA6B;IAE7B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,GAAG,OAAO;YACV,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,qCAAqC;SAChD;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,IAAI;aAChB;YACD,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;SACf,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,kDAAkD;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAA0C,CAAC;IAC/E,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pdauth",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "š Pipedream OAuth CLI - Give AI agents access to 2500+ APIs via dynamic OAuth",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"pdauth": "dist/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsx src/cli.ts",
|
|
13
|
+
"start": "node dist/cli.js",
|
|
14
|
+
"prepublishOnly": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"pipedream",
|
|
18
|
+
"oauth",
|
|
19
|
+
"mcp",
|
|
20
|
+
"ai-agents",
|
|
21
|
+
"openclaw",
|
|
22
|
+
"cli"
|
|
23
|
+
],
|
|
24
|
+
"author": "Versatly",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/Versatly/pdauth.git"
|
|
29
|
+
},
|
|
30
|
+
"homepage": "https://github.com/Versatly/pdauth#readme",
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@pipedream/sdk": "^2.3.2",
|
|
33
|
+
"chalk": "^5.3.0",
|
|
34
|
+
"commander": "^12.1.0",
|
|
35
|
+
"conf": "^13.0.1",
|
|
36
|
+
"ora": "^8.1.1"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^22.0.0",
|
|
40
|
+
"tsx": "^4.19.0",
|
|
41
|
+
"typescript": "^5.6.0"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=18"
|
|
45
|
+
}
|
|
46
|
+
}
|