sprint-artifact 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/utils/oauth2.d.ts.map +1 -1
- package/dist/utils/oauth2.js +54 -56
- package/dist/utils/oauth2.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../../src/utils/oauth2.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../../src/utils/oauth2.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAc3D,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA0BlG;AAED,wBAAsB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlF;AAED,wBAAsB,KAAK,CAAC,OAAO,CAAC,EAAE;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkH7B"}
|
package/dist/utils/oauth2.js
CHANGED
|
@@ -6,8 +6,6 @@ import { homedir } from 'node:os';
|
|
|
6
6
|
import { existsSync } from 'node:fs';
|
|
7
7
|
import open from 'open';
|
|
8
8
|
const SCOPES = ['https://www.googleapis.com/auth/drive'];
|
|
9
|
-
const REDIRECT_PORT = 3000;
|
|
10
|
-
const REDIRECT_URI = `http://localhost:${REDIRECT_PORT}/callback`;
|
|
11
9
|
const GLOBAL_CONFIG_DIR = join(homedir(), '.sprint-artifact');
|
|
12
10
|
const GLOBAL_CREDENTIALS_FILE = join(GLOBAL_CONFIG_DIR, 'credentials.json');
|
|
13
11
|
const COMMON_CREDENTIALS_PATHS = [
|
|
@@ -74,73 +72,73 @@ export async function login(options) {
|
|
|
74
72
|
throw new Error('No credentials found. Provide --credentials path or save credentials to ~/.sprint-artifact/credentials.json');
|
|
75
73
|
}
|
|
76
74
|
}
|
|
77
|
-
|
|
75
|
+
// Get a random available port
|
|
76
|
+
const server = createServer();
|
|
77
|
+
await new Promise((resolve) => server.listen(0, resolve));
|
|
78
|
+
const port = server.address().port;
|
|
79
|
+
server.close();
|
|
80
|
+
const redirectUri = `http://localhost:${port}`;
|
|
81
|
+
const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, redirectUri);
|
|
78
82
|
const authUrl = oauth2Client.generateAuthUrl({
|
|
79
83
|
access_type: 'offline',
|
|
80
84
|
scope: SCOPES,
|
|
81
85
|
prompt: 'consent',
|
|
82
86
|
});
|
|
83
87
|
return new Promise((resolve, reject) => {
|
|
84
|
-
const
|
|
85
|
-
const url = new URL(req.url, `http://localhost:${
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
<
|
|
116
|
-
<
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
resolve(credentials);
|
|
124
|
-
}
|
|
125
|
-
catch (err) {
|
|
126
|
-
res.writeHead(500, { 'Content-Type': 'text/html' });
|
|
127
|
-
res.end('<h1>Error</h1><p>Failed to get tokens</p>');
|
|
128
|
-
server.close();
|
|
129
|
-
reject(err);
|
|
130
|
-
}
|
|
88
|
+
const callbackServer = createServer(async (req, res) => {
|
|
89
|
+
const url = new URL(req.url, `http://localhost:${port}`);
|
|
90
|
+
const code = url.searchParams.get('code');
|
|
91
|
+
const error = url.searchParams.get('error');
|
|
92
|
+
if (error) {
|
|
93
|
+
res.writeHead(400, { 'Content-Type': 'text/html' });
|
|
94
|
+
res.end(`<h1>Error</h1><p>${error}</p>`);
|
|
95
|
+
callbackServer.close();
|
|
96
|
+
reject(new Error(`OAuth error: ${error}`));
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (!code) {
|
|
100
|
+
res.writeHead(400, { 'Content-Type': 'text/html' });
|
|
101
|
+
res.end('<h1>Error</h1><p>No code received</p>');
|
|
102
|
+
callbackServer.close();
|
|
103
|
+
reject(new Error('No authorization code received'));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
const { tokens } = await oauth2Client.getToken(code);
|
|
108
|
+
const credentials = {
|
|
109
|
+
client_id: clientId,
|
|
110
|
+
client_secret: clientSecret,
|
|
111
|
+
redirect_uris: [redirectUri],
|
|
112
|
+
refresh_token: tokens.refresh_token || undefined,
|
|
113
|
+
access_token: tokens.access_token || undefined,
|
|
114
|
+
token_expiry: tokens.expiry_date ? new Date(tokens.expiry_date).toISOString() : undefined,
|
|
115
|
+
};
|
|
116
|
+
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
117
|
+
res.end(`
|
|
118
|
+
<html>
|
|
119
|
+
<body style="font-family: sans-serif; text-align: center; padding: 50px;">
|
|
120
|
+
<h1 style="color: #4CAF50;">✓ Login Successful</h1>
|
|
121
|
+
<p>You can close this window and return to the terminal.</p>
|
|
122
|
+
</body>
|
|
123
|
+
</html>
|
|
124
|
+
`);
|
|
125
|
+
callbackServer.close();
|
|
126
|
+
resolve(credentials);
|
|
131
127
|
}
|
|
132
|
-
|
|
133
|
-
res.writeHead(
|
|
134
|
-
res.end();
|
|
128
|
+
catch (err) {
|
|
129
|
+
res.writeHead(500, { 'Content-Type': 'text/html' });
|
|
130
|
+
res.end('<h1>Error</h1><p>Failed to get tokens</p>');
|
|
131
|
+
callbackServer.close();
|
|
132
|
+
reject(err);
|
|
135
133
|
}
|
|
136
134
|
});
|
|
137
|
-
|
|
138
|
-
console.log(
|
|
135
|
+
callbackServer.listen(port, () => {
|
|
136
|
+
console.log(`Opening browser for login (port ${port})...`);
|
|
139
137
|
open(authUrl).catch(() => {
|
|
140
138
|
console.log(`\nOpen this URL manually:\n${authUrl}\n`);
|
|
141
139
|
});
|
|
142
140
|
});
|
|
143
|
-
|
|
141
|
+
callbackServer.on('error', (err) => {
|
|
144
142
|
reject(err);
|
|
145
143
|
});
|
|
146
144
|
});
|
package/dist/utils/oauth2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../src/utils/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,MAAM,GAAG,CAAC,uCAAuC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../src/utils/oauth2.ts"],"names":[],"mappings":"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"}
|