replicas-cli 0.2.2 → 0.2.4

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/commands/login.ts"],"names":[],"mappings":"AAgBA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAoJlD"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAgBA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA6MlD"}
@@ -20,9 +20,64 @@ async function loginCommand() {
20
20
  const state = generateState();
21
21
  return new Promise((resolve, reject) => {
22
22
  let authTimeout;
23
+ let hasHandledCallback = false;
24
+ let lastRedirectUrl = null;
25
+ let lastMessage = null;
26
+ const pendingResponses = new Set();
27
+ function respondWithRedirect(res) {
28
+ if (lastRedirectUrl) {
29
+ res.writeHead(302, {
30
+ 'Location': lastRedirectUrl,
31
+ 'Connection': 'close',
32
+ });
33
+ res.end();
34
+ }
35
+ else {
36
+ res.writeHead(200, {
37
+ 'Content-Type': 'text/html; charset=utf-8',
38
+ 'Connection': 'close',
39
+ });
40
+ res.end(`
41
+ <!DOCTYPE html>
42
+ <html lang="en">
43
+ <head>
44
+ <meta charset="utf-8" />
45
+ <title>Replicas CLI Login</title>
46
+ <style>
47
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background:#09090b; color:#f4f4f5; display:flex; align-items:center; justify-content:center; height:100vh; margin:0; }
48
+ .card { border:1px solid #27272a; padding:32px; border-radius:12px; background:#0f0f12; max-width:420px; text-align:center; }
49
+ .title { font-size:20px; margin-bottom:12px; letter-spacing:0.08em; text-transform:uppercase; color:#a855f7; }
50
+ .message { font-family: 'Menlo', 'Source Code Pro', monospace; font-size:14px; line-height:1.6; color:#d4d4d8; white-space:pre-line; }
51
+ </style>
52
+ </head>
53
+ <body>
54
+ <div class="card">
55
+ <div class="title">Replicas CLI</div>
56
+ <div class="message">${lastMessage || 'Authentication already processed. You can close this tab.'}</div>
57
+ </div>
58
+ </body>
59
+ </html>
60
+ `);
61
+ }
62
+ }
63
+ function flushPendingResponses() {
64
+ for (const response of pendingResponses) {
65
+ respondWithRedirect(response);
66
+ }
67
+ pendingResponses.clear();
68
+ }
23
69
  const server = http_1.default.createServer(async (req, res) => {
24
70
  const url = new url_1.URL(req.url || '', `http://${req.headers.host}`);
25
71
  if (url.pathname === '/callback') {
72
+ if (hasHandledCallback) {
73
+ if (!lastRedirectUrl) {
74
+ pendingResponses.add(res);
75
+ res.on('close', () => pendingResponses.delete(res));
76
+ return;
77
+ }
78
+ respondWithRedirect(res);
79
+ return;
80
+ }
26
81
  const returnedState = url.searchParams.get('state');
27
82
  const accessToken = url.searchParams.get('access_token');
28
83
  const refreshToken = url.searchParams.get('refresh_token');
@@ -30,11 +85,10 @@ async function loginCommand() {
30
85
  const error = url.searchParams.get('error');
31
86
  if (error) {
32
87
  const errorUrl = `${WEB_APP_URL}/cli-login/error?message=${encodeURIComponent(error)}`;
33
- res.writeHead(302, {
34
- 'Location': errorUrl,
35
- 'Connection': 'close'
36
- });
37
- res.end();
88
+ lastRedirectUrl = errorUrl;
89
+ lastMessage = `Authentication failed: ${error}`;
90
+ respondWithRedirect(res);
91
+ flushPendingResponses();
38
92
  clearTimeout(authTimeout);
39
93
  setImmediate(() => {
40
94
  server.closeAllConnections?.();
@@ -45,11 +99,10 @@ async function loginCommand() {
45
99
  }
46
100
  if (returnedState !== state) {
47
101
  const errorUrl = `${WEB_APP_URL}/cli-login/error?message=${encodeURIComponent('Invalid state parameter. This might be a CSRF attack.')}`;
48
- res.writeHead(302, {
49
- 'Location': errorUrl,
50
- 'Connection': 'close'
51
- });
52
- res.end();
102
+ lastRedirectUrl = errorUrl;
103
+ lastMessage = 'Invalid state parameter. This might be a CSRF attack.';
104
+ respondWithRedirect(res);
105
+ flushPendingResponses();
53
106
  clearTimeout(authTimeout);
54
107
  setImmediate(() => {
55
108
  server.closeAllConnections?.();
@@ -60,11 +113,10 @@ async function loginCommand() {
60
113
  }
61
114
  if (!accessToken || !refreshToken || !expiresAt) {
62
115
  const errorUrl = `${WEB_APP_URL}/cli-login/error?message=${encodeURIComponent('Missing required authentication tokens.')}`;
63
- res.writeHead(302, {
64
- 'Location': errorUrl,
65
- 'Connection': 'close'
66
- });
67
- res.end();
116
+ lastRedirectUrl = errorUrl;
117
+ lastMessage = 'Missing required authentication tokens.';
118
+ respondWithRedirect(res);
119
+ flushPendingResponses();
68
120
  clearTimeout(authTimeout);
69
121
  setImmediate(() => {
70
122
  server.closeAllConnections?.();
@@ -73,10 +125,14 @@ async function loginCommand() {
73
125
  });
74
126
  return;
75
127
  }
128
+ hasHandledCallback = true;
129
+ const existingConfig = (0, config_1.readConfig)();
76
130
  const config = {
77
131
  access_token: accessToken,
78
132
  refresh_token: refreshToken,
79
133
  expires_at: parseInt(expiresAt, 10),
134
+ organization_id: existingConfig?.organization_id,
135
+ ide_command: existingConfig?.ide_command,
80
136
  };
81
137
  try {
82
138
  (0, config_1.writeConfig)(config);
@@ -90,11 +146,10 @@ async function loginCommand() {
90
146
  console.log(chalk_1.default.gray(' You can set your organization later with: replicas org switch'));
91
147
  }
92
148
  const successUrl = `${WEB_APP_URL}/cli-login/success?email=${encodeURIComponent(user.email)}`;
93
- res.writeHead(302, {
94
- 'Location': successUrl,
95
- 'Connection': 'close'
96
- });
97
- res.end();
149
+ lastRedirectUrl = successUrl;
150
+ lastMessage = `Successfully logged in as ${user.email}. You can close this tab.`;
151
+ respondWithRedirect(res);
152
+ flushPendingResponses();
98
153
  console.log(chalk_1.default.green('\n✓ Successfully logged in!'));
99
154
  console.log(chalk_1.default.gray(` Email: ${user.email}\n`));
100
155
  clearTimeout(authTimeout);
@@ -106,11 +161,10 @@ async function loginCommand() {
106
161
  }
107
162
  catch (error) {
108
163
  const errorUrl = `${WEB_APP_URL}/cli-login/error?message=${encodeURIComponent('Failed to verify authentication.')}`;
109
- res.writeHead(302, {
110
- 'Location': errorUrl,
111
- 'Connection': 'close'
112
- });
113
- res.end();
164
+ lastRedirectUrl = errorUrl;
165
+ lastMessage = 'Failed to verify authentication.';
166
+ respondWithRedirect(res);
167
+ flushPendingResponses();
114
168
  clearTimeout(authTimeout);
115
169
  setImmediate(() => {
116
170
  server.closeAllConnections?.();
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ const program = new commander_1.Command();
18
18
  program
19
19
  .name('replicas')
20
20
  .description('CLI for managing Replicas workspaces')
21
- .version('0.1.0');
21
+ .version('0.2.3');
22
22
  program
23
23
  .command('login')
24
24
  .description('Authenticate with your Replicas account')
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAKA,UAAU,YAAa,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAClD,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAED,wBAAsB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EACrD,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CA6BZ"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAKA,UAAU,YAAa,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAClD,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAwCD,wBAAsB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EACrD,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAgCZ"}
package/dist/lib/api.js CHANGED
@@ -15,17 +15,44 @@ async function authenticatedFetch(url, options) {
15
15
  'Content-Type': 'application/json',
16
16
  ...(options?.headers || {}),
17
17
  };
18
- const response = await fetch(`${WEB_APP_URL}${url}`, {
18
+ const absoluteUrl = url.startsWith('http') ? url : `${WEB_APP_URL}${url}`;
19
+ const requestInit = {
19
20
  ...options,
20
21
  headers,
21
- body: options?.body ? JSON.stringify(options.body) : undefined,
22
- });
22
+ body: options?.body !== undefined ? JSON.stringify(options.body) : undefined,
23
+ };
24
+ const response = await fetchWithRedirects(absoluteUrl, requestInit);
23
25
  if (!response.ok) {
24
26
  const error = await response.json().catch(() => ({ error: 'Request failed' }));
25
27
  throw new Error(error.error || `Request failed with status ${response.status}`);
26
28
  }
27
29
  return response.json();
28
30
  }
31
+ const REDIRECT_STATUSES = new Set([301, 302, 303, 307, 308]);
32
+ const MAX_REDIRECTS = 5;
33
+ async function fetchWithRedirects(url, init, attempt = 0) {
34
+ const response = await fetch(url, { ...init, redirect: 'manual' });
35
+ if (REDIRECT_STATUSES.has(response.status)) {
36
+ if (attempt >= MAX_REDIRECTS) {
37
+ throw new Error('Too many redirects while contacting the Replicas API');
38
+ }
39
+ const location = response.headers.get('location');
40
+ if (!location) {
41
+ throw new Error(`Redirect status ${response.status} missing Location header`);
42
+ }
43
+ const nextUrl = new URL(location, url).toString();
44
+ const shouldForceGet = response.status === 303 &&
45
+ init.method !== undefined &&
46
+ init.method.toUpperCase() !== 'GET';
47
+ const nextInit = {
48
+ ...init,
49
+ method: shouldForceGet ? 'GET' : init.method,
50
+ body: shouldForceGet ? undefined : init.body,
51
+ };
52
+ return fetchWithRedirects(nextUrl, nextInit, attempt + 1);
53
+ }
54
+ return response;
55
+ }
29
56
  async function orgAuthenticatedFetch(url, options) {
30
57
  const token = await (0, auth_1.getValidToken)();
31
58
  const organizationId = (0, config_1.getOrganizationId)();
@@ -38,11 +65,13 @@ async function orgAuthenticatedFetch(url, options) {
38
65
  'Content-Type': 'application/json',
39
66
  ...(options?.headers || {}),
40
67
  };
41
- const response = await fetch(`${WEB_APP_URL}${url}`, {
68
+ const absoluteUrl = url.startsWith('http') ? url : `${WEB_APP_URL}${url}`;
69
+ const requestInit = {
42
70
  ...options,
43
71
  headers,
44
- body: options?.body ? JSON.stringify(options.body) : undefined,
45
- });
72
+ body: options?.body !== undefined ? JSON.stringify(options.body) : undefined,
73
+ };
74
+ const response = await fetchWithRedirects(absoluteUrl, requestInit);
46
75
  if (!response.ok) {
47
76
  const error = await response.json().catch(() => ({ error: 'Request failed' }));
48
77
  throw new Error(error.error || `Request failed with status ${response.status}`);
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":";;AASA,gDA4BC;AAED,sDAgCC;AAvED,iCAAuC;AACvC,qCAA6C;AAE7C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,sBAAsB,CAAC;AAMpE,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,OAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAa,GAAE,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,KAAK,EAAE;QAClC,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,OAAO,EAAE,OAAiC,IAAI,EAAE,CAAC;KACtD,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,GAAG,GAAG,EAAE,EAAE;QACnD,GAAG,OAAO;QACV,OAAO;QACP,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAuB,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,8BAA8B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,GAAW,EACX,OAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAa,GAAE,CAAC;IACpC,MAAM,cAAc,GAAG,IAAA,0BAAiB,GAAE,CAAC;IAE3C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,KAAK,EAAE;QAClC,iBAAiB,EAAE,cAAc;QACjC,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,OAAO,EAAE,OAAiC,IAAI,EAAE,CAAC;KACtD,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,GAAG,GAAG,EAAE,EAAE;QACnD,GAAG,OAAO;QACV,OAAO;QACP,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAuB,CAAC;QACrG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,8BAA8B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA+BhC,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAgBrD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAYpD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAgChC,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAgBrD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAYpD"}
package/dist/lib/auth.js CHANGED
@@ -22,6 +22,7 @@ async function refreshToken() {
22
22
  if (!data.session)
23
23
  throw new Error('Failed to refresh session');
24
24
  (0, config_1.writeConfig)({
25
+ ...config,
25
26
  access_token: data.session.access_token,
26
27
  refresh_token: data.session.refresh_token,
27
28
  expires_at: data.session.expires_at || 0,
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":";;AAiCA,sCAgBC;AAED,wCAYC;AA/DD,yCAAsC;AACtC,qCAAmD;AAGnD,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACzD,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;QAEH,IAAI,KAAK;YAAE,MAAM,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEhE,IAAA,oBAAW,EAAC;YACV,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,YAAY,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,SAAS,CAAC,YAAY,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IAEpC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAErE,IAAI,KAAK;QAAE,MAAM,KAAK,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE7C,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;KAC/B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":";;AAkCA,sCAgBC;AAED,wCAYC;AAhED,yCAAsC;AACtC,qCAAmD;AAGnD,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACzD,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;QAEH,IAAI,KAAK;YAAE,MAAM,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEhE,IAAA,oBAAW,EAAC;YACV,GAAG,MAAM;YACT,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACvC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,YAAY,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,SAAS,CAAC,YAAY,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IAEpC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAErE,IAAI,KAAK;QAAE,MAAM,KAAK,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE7C,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;KAC/B,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-cli",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding",
5
5
  "main": "dist/index.js",
6
6
  "bin": {