atxp 1.2.1 → 1.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDrE"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAOA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAKD,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BrE"}
package/dist/login.js CHANGED
@@ -1,8 +1,9 @@
1
+ import http from 'http';
1
2
  import fs from 'fs';
2
3
  import path from 'path';
3
4
  import os from 'os';
4
- import inquirer from 'inquirer';
5
5
  import chalk from 'chalk';
6
+ import open from 'open';
6
7
  const CONFIG_DIR = path.join(os.homedir(), '.atxp');
7
8
  const CONFIG_FILE = path.join(CONFIG_DIR, 'config');
8
9
  export async function login(options = {}) {
@@ -15,37 +16,107 @@ export async function login(options = {}) {
15
16
  }
16
17
  console.log(chalk.bold('ATXP Login'));
17
18
  console.log();
18
- console.log(`Get your connection string from: ${chalk.cyan('https://accounts.atxp.ai')}`);
19
- console.log();
20
- const { connectionString } = await inquirer.prompt([
21
- {
22
- type: 'password',
23
- name: 'connectionString',
24
- message: 'Enter your connection string:',
25
- mask: '*',
26
- validate: (input) => {
27
- if (!input || input.trim().length === 0) {
28
- return 'Connection string is required';
29
- }
30
- return true;
31
- },
32
- },
33
- ]);
34
- // Create config directory if it doesn't exist
19
+ try {
20
+ const connectionString = await loginWithBrowser();
21
+ saveConnectionString(connectionString);
22
+ console.log();
23
+ console.log(chalk.green('Login successful!'));
24
+ console.log();
25
+ console.log('To use ATXP tools in this terminal, run:');
26
+ console.log(chalk.cyan(` source ${CONFIG_FILE}`));
27
+ console.log();
28
+ console.log('Or add this to your shell profile (~/.bashrc, ~/.zshrc, etc.):');
29
+ console.log(chalk.cyan(` source ${CONFIG_FILE}`));
30
+ }
31
+ catch (error) {
32
+ console.error(chalk.red('Login failed:'), error instanceof Error ? error.message : error);
33
+ process.exit(1);
34
+ }
35
+ }
36
+ async function loginWithBrowser() {
37
+ return new Promise((resolve, reject) => {
38
+ const server = http.createServer((req, res) => {
39
+ const url = new URL(req.url, `http://localhost`);
40
+ const connectionString = url.searchParams.get('connection_string');
41
+ if (connectionString) {
42
+ res.writeHead(200, { 'Content-Type': 'text/html' });
43
+ res.end(`
44
+ <!DOCTYPE html>
45
+ <html>
46
+ <head>
47
+ <title>ATXP Login</title>
48
+ <style>
49
+ body {
50
+ font-family: system-ui, -apple-system, sans-serif;
51
+ display: flex;
52
+ justify-content: center;
53
+ align-items: center;
54
+ min-height: 100vh;
55
+ margin: 0;
56
+ background: #f5f5f5;
57
+ }
58
+ .container {
59
+ text-align: center;
60
+ padding: 40px;
61
+ background: white;
62
+ border-radius: 8px;
63
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
64
+ }
65
+ h1 { color: #10b981; margin-bottom: 16px; }
66
+ p { color: #666; }
67
+ </style>
68
+ </head>
69
+ <body>
70
+ <div class="container">
71
+ <h1>Login Successful</h1>
72
+ <p>You can close this tab and return to your terminal.</p>
73
+ </div>
74
+ </body>
75
+ </html>
76
+ `);
77
+ server.close();
78
+ resolve(decodeURIComponent(connectionString));
79
+ }
80
+ else {
81
+ res.writeHead(400, { 'Content-Type': 'text/plain' });
82
+ res.end('Missing connection_string parameter');
83
+ }
84
+ });
85
+ server.on('error', (err) => {
86
+ reject(new Error(`Failed to start local server: ${err.message}`));
87
+ });
88
+ // Listen on random available port
89
+ server.listen(0, '127.0.0.1', () => {
90
+ const address = server.address();
91
+ const port = typeof address === 'object' ? address?.port : null;
92
+ if (!port) {
93
+ reject(new Error('Failed to start local server'));
94
+ return;
95
+ }
96
+ const redirectUri = `http://localhost:${port}/callback`;
97
+ const loginUrl = `https://accounts.atxp.ai?cli_redirect=${encodeURIComponent(redirectUri)}`;
98
+ console.log('Opening browser to complete login...');
99
+ console.log(chalk.gray(`(${loginUrl})`));
100
+ console.log();
101
+ console.log('Waiting for authentication...');
102
+ open(loginUrl);
103
+ // Timeout after 5 minutes
104
+ const timeout = setTimeout(() => {
105
+ server.close();
106
+ reject(new Error('Login timed out. Please try again.'));
107
+ }, 5 * 60 * 1000);
108
+ server.on('close', () => {
109
+ clearTimeout(timeout);
110
+ });
111
+ });
112
+ });
113
+ }
114
+ function saveConnectionString(connectionString) {
35
115
  if (!fs.existsSync(CONFIG_DIR)) {
36
116
  fs.mkdirSync(CONFIG_DIR, { recursive: true });
37
117
  }
38
- // Write config file as shell export
39
- const configContent = `export ATXP_CONNECTION="${connectionString.trim()}"
118
+ const configContent = `export ATXP_CONNECTION="${connectionString}"
40
119
  `;
41
120
  fs.writeFileSync(CONFIG_FILE, configContent, { mode: 0o600 });
42
- console.log();
43
- console.log(chalk.green('Login successful!'));
44
- console.log();
45
- console.log('To use ATXP tools in this terminal, run:');
46
- console.log(chalk.cyan(` source ${CONFIG_FILE}`));
47
- console.log();
48
- console.log('Or add this to your shell profile (~/.bashrc, ~/.zshrc, etc.):');
49
- console.log(chalk.cyan(` source ${CONFIG_FILE}`));
50
121
  }
51
122
  //# sourceMappingURL=login.js.map
package/dist/login.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,UAAwB,EAAE;IACpD,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEvD,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,oCAAoC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACjD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,+BAA+B;YACxC,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxC,OAAO,+BAA+B,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF;KACF,CAAC,CAAC;IAEH,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,2BAA2B,gBAAgB,CAAC,IAAI,EAAE;CACzE,CAAC;IAEA,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atxp",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "ATXP CLI - Command line tool for creating ATXP projects and running demos",
5
5
  "license": "MIT",
6
6
  "repository": {