@positronic/cli 0.0.73 → 0.0.75

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 (55) hide show
  1. package/dist/src/cli.js +93 -110
  2. package/dist/src/commands/auth.js +8 -34
  3. package/dist/src/commands/schedule.js +3 -2
  4. package/dist/src/commands/users.js +15 -14
  5. package/dist/src/components/auth-login.js +1 -1
  6. package/dist/src/components/project-auth-setup.js +6 -3
  7. package/dist/src/components/project-create.js +8 -2
  8. package/dist/src/components/schedule-create.js +9 -3
  9. package/dist/src/components/schedule-list.js +1 -1
  10. package/dist/src/components/store-explorer.js +3 -5
  11. package/dist/src/components/users-create.js +2 -4
  12. package/dist/src/components/users-delete.js +5 -5
  13. package/dist/src/components/users-keys-add.js +71 -17
  14. package/dist/src/components/users-keys-list.js +5 -5
  15. package/dist/src/components/users-keys-remove.js +5 -5
  16. package/dist/src/components/users-list.js +2 -11
  17. package/dist/src/components/whoami.js +71 -0
  18. package/dist/src/hooks/useApi.js +2 -2
  19. package/dist/src/lib/jwt-auth.js +1 -1
  20. package/dist/src/lib/ssh-key-utils.js +17 -0
  21. package/dist/types/cli.d.ts.map +1 -1
  22. package/dist/types/commands/auth.d.ts +5 -18
  23. package/dist/types/commands/auth.d.ts.map +1 -1
  24. package/dist/types/commands/schedule.d.ts +2 -1
  25. package/dist/types/commands/schedule.d.ts.map +1 -1
  26. package/dist/types/commands/users.d.ts +13 -12
  27. package/dist/types/commands/users.d.ts.map +1 -1
  28. package/dist/types/components/project-auth-setup.d.ts.map +1 -1
  29. package/dist/types/components/project-create.d.ts.map +1 -1
  30. package/dist/types/components/schedule-create.d.ts +2 -1
  31. package/dist/types/components/schedule-create.d.ts.map +1 -1
  32. package/dist/types/components/users-create.d.ts.map +1 -1
  33. package/dist/types/components/users-delete.d.ts +2 -2
  34. package/dist/types/components/users-delete.d.ts.map +1 -1
  35. package/dist/types/components/users-keys-add.d.ts +4 -3
  36. package/dist/types/components/users-keys-add.d.ts.map +1 -1
  37. package/dist/types/components/users-keys-list.d.ts +2 -2
  38. package/dist/types/components/users-keys-list.d.ts.map +1 -1
  39. package/dist/types/components/users-keys-remove.d.ts +2 -2
  40. package/dist/types/components/users-keys-remove.d.ts.map +1 -1
  41. package/dist/types/components/users-list.d.ts.map +1 -1
  42. package/dist/types/components/whoami.d.ts +8 -0
  43. package/dist/types/components/whoami.d.ts.map +1 -0
  44. package/dist/types/lib/ssh-key-utils.d.ts +5 -0
  45. package/dist/types/lib/ssh-key-utils.d.ts.map +1 -1
  46. package/package.json +4 -4
  47. package/dist/src/components/auth-format-jwk-key.js +0 -457
  48. package/dist/src/components/auth-list.js +0 -66
  49. package/dist/src/components/auth-status.js +0 -113
  50. package/dist/types/components/auth-format-jwk-key.d.ts +0 -6
  51. package/dist/types/components/auth-format-jwk-key.d.ts.map +0 -1
  52. package/dist/types/components/auth-list.d.ts +0 -8
  53. package/dist/types/components/auth-list.d.ts.map +0 -1
  54. package/dist/types/components/auth-status.d.ts +0 -8
  55. package/dist/types/components/auth-status.d.ts.map +0 -1
@@ -45,43 +45,83 @@ function _unsupported_iterable_to_array(o, minLen) {
45
45
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
46
46
  }
47
47
  import React, { useEffect, useState } from 'react';
48
- import { Box, Text } from 'ink';
48
+ import { Box, Text, useInput } from 'ink';
49
49
  import { ErrorComponent } from './error.js';
50
50
  import { useApiPost, useApiGet } from '../hooks/useApi.js';
51
- import { convertSSHPubKeyToJWK } from '../lib/ssh-key-utils.js';
51
+ import { convertSSHPubKeyToJWK, convertSSHPubKeyStringToJWK } from '../lib/ssh-key-utils.js';
52
52
  import { existsSync } from 'fs';
53
53
  import { homedir } from 'os';
54
54
  import { join } from 'path';
55
55
  export var UsersKeysAdd = function(param) {
56
- var userId = param.userId, pubkeyPath = param.pubkeyPath, label = param.label;
57
- var _useApiGet = useApiGet("/users/".concat(userId)), user = _useApiGet.data, loadingUser = _useApiGet.loading, userError = _useApiGet.error;
58
- var _useApiPost = useApiPost("/users/".concat(userId, "/keys")), data = _useApiPost.data, loading = _useApiPost.loading, error = _useApiPost.error, execute = _useApiPost.execute;
56
+ var userName = param.userName, pubkeyPath = param.pubkeyPath, paste = param.paste, label = param.label;
57
+ var _useApiGet = useApiGet("/users/".concat(userName)), user = _useApiGet.data, loadingUser = _useApiGet.loading, userError = _useApiGet.error;
58
+ var _useApiPost = useApiPost("/users/".concat(userName, "/keys")), data = _useApiPost.data, loading = _useApiPost.loading, error = _useApiPost.error, execute = _useApiPost.execute;
59
59
  var _useState = _sliced_to_array(useState(false), 2), added = _useState[0], setAdded = _useState[1];
60
60
  var _useState1 = _sliced_to_array(useState(null), 2), parseError = _useState1[0], setParseError = _useState1[1];
61
61
  var _useState2 = _sliced_to_array(useState(null), 2), keyInfo = _useState2[0], setKeyInfo = _useState2[1];
62
+ var _useState3 = _sliced_to_array(useState(paste && !pubkeyPath), 2), pasteMode = _useState3[0], setPasteMode = _useState3[1];
63
+ var _useState4 = _sliced_to_array(useState(''), 2), pastedKey = _useState4[0], setPastedKey = _useState4[1];
64
+ var _useState5 = _sliced_to_array(useState(false), 2), pasteSubmitted = _useState5[0], setPasteSubmitted = _useState5[1];
65
+ useInput(function(input, key) {
66
+ if (!pasteMode || pasteSubmitted) return;
67
+ if (key.return) {
68
+ setPasteSubmitted(true);
69
+ return;
70
+ }
71
+ if (key.backspace || key.delete) {
72
+ setPastedKey(function(prev) {
73
+ return prev.slice(0, -1);
74
+ });
75
+ return;
76
+ }
77
+ if (input) {
78
+ setPastedKey(function(prev) {
79
+ return prev + input;
80
+ });
81
+ }
82
+ }, {
83
+ isActive: pasteMode && !pasteSubmitted
84
+ });
62
85
  useEffect(function() {
63
- if (!added && user && !parseError) {
64
- // Resolve the path
86
+ if (!user || added || parseError) return;
87
+ if (pasteMode && !pasteSubmitted) return;
88
+ if (pasteMode && pasteSubmitted && pastedKey) {
89
+ try {
90
+ var _convertSSHPubKeyStringToJWK = convertSSHPubKeyStringToJWK(pastedKey.trim()), jwk = _convertSSHPubKeyStringToJWK.jwk, fingerprint = _convertSSHPubKeyStringToJWK.fingerprint, algorithm = _convertSSHPubKeyStringToJWK.algorithm;
91
+ setKeyInfo({
92
+ fingerprint: fingerprint,
93
+ algorithm: algorithm
94
+ });
95
+ execute({
96
+ jwk: jwk,
97
+ fingerprint: fingerprint,
98
+ label: label || ''
99
+ }).then(function() {
100
+ return setAdded(true);
101
+ }).catch(function() {});
102
+ } catch (err) {
103
+ setParseError(err.message || 'Failed to parse SSH public key');
104
+ }
105
+ return;
106
+ }
107
+ if (pubkeyPath) {
65
108
  var resolvedPath = pubkeyPath;
66
109
  if (resolvedPath.startsWith('~')) {
67
110
  resolvedPath = join(homedir(), resolvedPath.slice(1));
68
111
  }
69
- // Check if file exists
70
112
  if (!existsSync(resolvedPath)) {
71
113
  setParseError("Public key file not found: ".concat(resolvedPath));
72
114
  return;
73
115
  }
74
116
  try {
75
- // Convert SSH public key to JWK
76
- var _convertSSHPubKeyToJWK = convertSSHPubKeyToJWK(resolvedPath), jwk = _convertSSHPubKeyToJWK.jwk, fingerprint = _convertSSHPubKeyToJWK.fingerprint, algorithm = _convertSSHPubKeyToJWK.algorithm;
117
+ var _convertSSHPubKeyToJWK = convertSSHPubKeyToJWK(resolvedPath), jwk1 = _convertSSHPubKeyToJWK.jwk, fingerprint1 = _convertSSHPubKeyToJWK.fingerprint, algorithm1 = _convertSSHPubKeyToJWK.algorithm;
77
118
  setKeyInfo({
78
- fingerprint: fingerprint,
79
- algorithm: algorithm
119
+ fingerprint: fingerprint1,
120
+ algorithm: algorithm1
80
121
  });
81
- // Upload the key
82
122
  execute({
83
- jwk: jwk,
84
- fingerprint: fingerprint,
123
+ jwk: jwk1,
124
+ fingerprint: fingerprint1,
85
125
  label: label || ''
86
126
  }).then(function() {
87
127
  return setAdded(true);
@@ -96,7 +136,10 @@ export var UsersKeysAdd = function(param) {
96
136
  pubkeyPath,
97
137
  label,
98
138
  execute,
99
- parseError
139
+ parseError,
140
+ pasteMode,
141
+ pasteSubmitted,
142
+ pastedKey
100
143
  ]);
101
144
  if (userError) {
102
145
  return /*#__PURE__*/ React.createElement(ErrorComponent, {
@@ -127,7 +170,18 @@ export var UsersKeysAdd = function(param) {
127
170
  if (!user) {
128
171
  return /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, {
129
172
  color: "red"
130
- }, "User not found: ", userId));
173
+ }, "User not found: ", userName));
174
+ }
175
+ if (pasteMode && !pasteSubmitted) {
176
+ return /*#__PURE__*/ React.createElement(Box, {
177
+ flexDirection: "column",
178
+ paddingTop: 1,
179
+ paddingBottom: 1
180
+ }, /*#__PURE__*/ React.createElement(Text, null, "Paste your SSH public key and press ", /*#__PURE__*/ React.createElement(Text, {
181
+ bold: true
182
+ }, "Enter"), ":"), /*#__PURE__*/ React.createElement(Box, {
183
+ marginTop: 1
184
+ }, /*#__PURE__*/ React.createElement(Text, null, pastedKey || '...')));
131
185
  }
132
186
  if (loading) {
133
187
  return /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, null, 'Adding key to user "', user.name, '"...'));
@@ -39,9 +39,9 @@ var padRight = function(text, width) {
39
39
  return text + ' '.repeat(Math.max(0, width - text.length));
40
40
  };
41
41
  export var UsersKeysList = function(param) {
42
- var userId = param.userId;
43
- var _useApiGet = useApiGet("/users/".concat(userId)), user = _useApiGet.data, loadingUser = _useApiGet.loading, userError = _useApiGet.error;
44
- var _useApiGet1 = useApiGet("/users/".concat(userId, "/keys")), data = _useApiGet1.data, loading = _useApiGet1.loading, error = _useApiGet1.error;
42
+ var userName = param.userName;
43
+ var _useApiGet = useApiGet("/users/".concat(userName)), user = _useApiGet.data, loadingUser = _useApiGet.loading, userError = _useApiGet.error;
44
+ var _useApiGet1 = useApiGet("/users/".concat(userName, "/keys")), data = _useApiGet1.data, loading = _useApiGet1.loading, error = _useApiGet1.error;
45
45
  if (userError) {
46
46
  return /*#__PURE__*/ React.createElement(ErrorComponent, {
47
47
  error: userError
@@ -58,7 +58,7 @@ export var UsersKeysList = function(param) {
58
58
  if (!user) {
59
59
  return /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, {
60
60
  color: "red"
61
- }, "User not found: ", userId));
61
+ }, "User not found: ", userName));
62
62
  }
63
63
  if (!data || data.keys.length === 0) {
64
64
  return /*#__PURE__*/ React.createElement(Box, {
@@ -67,7 +67,7 @@ export var UsersKeysList = function(param) {
67
67
  marginTop: 1
68
68
  }, /*#__PURE__*/ React.createElement(Text, {
69
69
  dimColor: true
70
- }, 'Tip: Add a key with "px users keys add ', userId, ' ~/.ssh/id_rsa.pub"')));
70
+ }, 'Tip: Add a key with "px users add-key ', userName, ' ~/.ssh/id_ed25519.pub"')));
71
71
  }
72
72
  var sortedKeys = _to_consumable_array(data.keys).sort(function(a, b) {
73
73
  return b.addedAt - a.addedAt;
@@ -169,9 +169,9 @@ import { Box, Text, useInput, useApp } from 'ink';
169
169
  import { ErrorComponent } from './error.js';
170
170
  import { useApiDelete, useApiGet } from '../hooks/useApi.js';
171
171
  export var UsersKeysRemove = function(param) {
172
- var userId = param.userId, fingerprint = param.fingerprint, force = param.force;
172
+ var userName = param.userName, fingerprint = param.fingerprint, force = param.force;
173
173
  var exit = useApp().exit;
174
- var _useApiGet = useApiGet("/users/".concat(userId)), user = _useApiGet.data, loadingUser = _useApiGet.loading, userError = _useApiGet.error;
174
+ var _useApiGet = useApiGet("/users/".concat(userName)), user = _useApiGet.data, loadingUser = _useApiGet.loading, userError = _useApiGet.error;
175
175
  var _useApiDelete = useApiDelete('key'), deleting = _useApiDelete.loading, deleteError = _useApiDelete.error, execute = _useApiDelete.execute;
176
176
  var _useState = _sliced_to_array(useState(force), 2), confirmed = _useState[0], setConfirmed = _useState[1];
177
177
  var _useState1 = _sliced_to_array(useState(false), 2), deleted = _useState1[0], setDeleted = _useState1[1];
@@ -196,7 +196,7 @@ export var UsersKeysRemove = function(param) {
196
196
  ]);
197
197
  return [
198
198
  4,
199
- execute("/users/".concat(userId, "/keys/").concat(encodeURIComponent(fingerprint)))
199
+ execute("/users/".concat(userName, "/keys/").concat(encodeURIComponent(fingerprint)))
200
200
  ];
201
201
  case 2:
202
202
  _state.sent();
@@ -220,7 +220,7 @@ export var UsersKeysRemove = function(param) {
220
220
  })();
221
221
  }, [
222
222
  execute,
223
- userId,
223
+ userName,
224
224
  fingerprint,
225
225
  deletionStarted
226
226
  ]);
@@ -260,7 +260,7 @@ export var UsersKeysRemove = function(param) {
260
260
  if (!user) {
261
261
  return /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, {
262
262
  color: "red"
263
- }, "User not found: ", userId));
263
+ }, "User not found: ", userName));
264
264
  }
265
265
  if (deleted) {
266
266
  return /*#__PURE__*/ React.createElement(Box, {
@@ -63,11 +63,7 @@ export var UsersList = function() {
63
63
  var columns = {
64
64
  name: {
65
65
  header: 'Name',
66
- width: 20
67
- },
68
- id: {
69
- header: 'ID',
70
- width: 36
66
+ width: 30
71
67
  },
72
68
  created: {
73
69
  header: 'Created',
@@ -92,18 +88,13 @@ export var UsersList = function() {
92
88
  }, padRight(columns.name.header, columns.name.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
93
89
  bold: true,
94
90
  color: "cyan"
95
- }, padRight(columns.id.header, columns.id.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
96
- bold: true,
97
- color: "cyan"
98
91
  }, padRight(columns.created.header, columns.created.width))), /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, {
99
92
  dimColor: true
100
93
  }, '─'.repeat(totalWidth))), sortedUsers.map(function(user) {
101
94
  return /*#__PURE__*/ React.createElement(Box, {
102
- key: user.id
95
+ key: user.name
103
96
  }, /*#__PURE__*/ React.createElement(Text, null, padRight(truncate(user.name, columns.name.width), columns.name.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
104
97
  dimColor: true
105
- }, padRight(user.id, columns.id.width)), /*#__PURE__*/ React.createElement(Text, null, " "), /*#__PURE__*/ React.createElement(Text, {
106
- dimColor: true
107
98
  }, padRight(formatDate(user.createdAt), columns.created.width)));
108
99
  })));
109
100
  };
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { ErrorComponent } from './error.js';
4
+ import { useApiGet } from '../hooks/useApi.js';
5
+ import { resolvePrivateKeyPath } from '../lib/ssh-key-utils.js';
6
+ import { readLocalAuth } from '../lib/local-auth.js';
7
+ export var Whoami = function(param) {
8
+ var configManager = param.configManager, projectRootPath = param.projectRootPath;
9
+ var _useApiGet = useApiGet('/auth/whoami'), data = _useApiGet.data, loading = _useApiGet.loading, error = _useApiGet.error;
10
+ // Determine local key info
11
+ var envPath = process.env.POSITRONIC_PRIVATE_KEY;
12
+ var localKeyPath = projectRootPath ? readLocalAuth(projectRootPath) : null;
13
+ var configuredPath;
14
+ if (envPath) {
15
+ configuredPath = envPath;
16
+ } else if (localKeyPath) {
17
+ configuredPath = localKeyPath;
18
+ } else {
19
+ configuredPath = configManager.getPrivateKeyPath();
20
+ }
21
+ var activeKeyPath = resolvePrivateKeyPath(configuredPath);
22
+ var keySource;
23
+ if (envPath) {
24
+ keySource = 'environment variable';
25
+ } else if (localKeyPath) {
26
+ keySource = 'local project';
27
+ } else {
28
+ var globalKeyPath = configManager.getDefaultPrivateKeyPath();
29
+ var currentProject = configManager.getCurrentProject();
30
+ var projectKeyPath = currentProject ? configManager.getProjectPrivateKeyPath(currentProject.name) : undefined;
31
+ if (projectKeyPath && currentProject) {
32
+ keySource = 'project "'.concat(currentProject.name, '"');
33
+ } else if (globalKeyPath) {
34
+ keySource = 'global config';
35
+ } else {
36
+ keySource = 'default fallback';
37
+ }
38
+ }
39
+ if (error) {
40
+ return /*#__PURE__*/ React.createElement(ErrorComponent, {
41
+ error: error
42
+ });
43
+ }
44
+ if (loading) {
45
+ return /*#__PURE__*/ React.createElement(Box, null, /*#__PURE__*/ React.createElement(Text, null, "Checking identity..."));
46
+ }
47
+ if (!data) {
48
+ return null;
49
+ }
50
+ return /*#__PURE__*/ React.createElement(Box, {
51
+ flexDirection: "column",
52
+ paddingTop: 1,
53
+ paddingBottom: 1
54
+ }, /*#__PURE__*/ React.createElement(Text, null, /*#__PURE__*/ React.createElement(Text, {
55
+ bold: true
56
+ }, "Logged in as:"), ' ', /*#__PURE__*/ React.createElement(Text, {
57
+ color: "green"
58
+ }, data.name), data.isRoot && /*#__PURE__*/ React.createElement(Text, {
59
+ dimColor: true
60
+ }, " (root)")), /*#__PURE__*/ React.createElement(Box, {
61
+ marginTop: 1,
62
+ flexDirection: "column",
63
+ paddingLeft: 2
64
+ }, /*#__PURE__*/ React.createElement(Text, null, /*#__PURE__*/ React.createElement(Text, {
65
+ bold: true
66
+ }, "Key:"), " ", activeKeyPath), /*#__PURE__*/ React.createElement(Text, null, /*#__PURE__*/ React.createElement(Text, {
67
+ bold: true
68
+ }, "Source:"), " ", /*#__PURE__*/ React.createElement(Text, {
69
+ dimColor: true
70
+ }, keySource))));
71
+ };
@@ -221,12 +221,12 @@ import { apiClient, isApiLocalDevMode } from '../commands/helpers.js';
221
221
  var ROOT_KEY_NOT_CONFIGURED_ERROR = {
222
222
  title: 'Root Key Not Configured',
223
223
  message: 'The server does not have a root authentication key configured.',
224
- details: "Run 'px auth format-jwk-key' to generate the key, then add ROOT_PUBLIC_KEY as a secret in your server configuration."
224
+ details: "The server does not have a ROOT_PUBLIC_KEY secret configured. Add it in your server configuration."
225
225
  };
226
226
  var AUTH_REQUIRED_ERROR = {
227
227
  title: 'Authentication Required',
228
228
  message: 'Your request could not be authenticated.',
229
- details: "Run 'px auth login' to configure your SSH key, or check that your key is registered on the server."
229
+ details: "Run 'px login' to configure your SSH key, or check that your key is registered on the server."
230
230
  };
231
231
  var ROOT_ACCESS_REQUIRED_ERROR = {
232
232
  title: 'Root Access Required',
@@ -258,7 +258,7 @@ var authProjectRootPath = null;
258
258
  }
259
259
  var keyPath = resolvePrivateKeyPath(configuredPath);
260
260
  if (!existsSync(keyPath)) {
261
- this.initError = new Error("Private key not found at ".concat(keyPath, ". Run 'px auth login' to configure your SSH key, or set POSITRONIC_PRIVATE_KEY environment variable."));
261
+ this.initError = new Error("Private key not found at ".concat(keyPath, ". Run 'px login' to configure your SSH key, or set POSITRONIC_PRIVATE_KEY environment variable."));
262
262
  return;
263
263
  }
264
264
  this.privateKey = loadPrivateKey(keyPath);
@@ -150,6 +150,23 @@ import { execSync } from 'child_process';
150
150
  algorithm: sshKey.type
151
151
  };
152
152
  }
153
+ /**
154
+ * Convert an SSH public key string to JWK format
155
+ * Like convertSSHPubKeyToJWK but accepts the key content directly instead of a file path
156
+ */ export function convertSSHPubKeyStringToJWK(pubKeyContent) {
157
+ var sshKey = sshpk.parseKey(pubKeyContent.trim(), 'auto');
158
+ var fingerprint = sshKey.fingerprint('sha256').toString();
159
+ var pem = sshKey.toString('pem');
160
+ var keyObject = createPublicKey(pem);
161
+ var jwk = keyObject.export({
162
+ format: 'jwk'
163
+ });
164
+ return {
165
+ jwk: jwk,
166
+ fingerprint: fingerprint,
167
+ algorithm: sshKey.type
168
+ };
169
+ }
153
170
  /**
154
171
  * Load an SSH private key from a file path or environment variable
155
172
  */ export function loadPrivateKey(pathOrEnv) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,4BA67C3C"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,4BAq5C3C"}
@@ -8,38 +8,25 @@ interface LoginArgs {
8
8
  interface LogoutArgs {
9
9
  project?: boolean;
10
10
  }
11
- interface FormatJwkKeyArgs {
12
- pubkey?: string;
13
- }
14
11
  export declare class AuthCommand {
15
12
  private configManager;
16
13
  private projectRootPath?;
17
14
  constructor(configManager?: ProjectConfigManager, projectRootPath?: string);
18
15
  /**
19
- * Handles the 'px auth' or 'px auth status' command.
20
- * Shows current auth configuration.
21
- */
22
- status(): React.ReactElement;
23
- /**
24
- * Handles the 'px auth login' command.
16
+ * Handles the 'px login' command.
25
17
  * Configure SSH key for authentication.
26
18
  */
27
19
  login({ path, project }: ArgumentsCamelCase<LoginArgs>): React.ReactElement;
28
20
  /**
29
- * Handles the 'px auth logout' command.
21
+ * Handles the 'px logout' command.
30
22
  * Clear SSH key configuration.
31
23
  */
32
24
  logout({ project }: ArgumentsCamelCase<LogoutArgs>): React.ReactElement;
33
25
  /**
34
- * Handles the 'px auth list' command.
35
- * List available SSH keys.
36
- */
37
- list(): React.ReactElement;
38
- /**
39
- * Handles the 'px auth format-jwk-key' command.
40
- * Convert an SSH public key to JWK format for ROOT_PUBLIC_KEY configuration.
26
+ * Handles the 'px whoami' command.
27
+ * Shows the current authenticated identity.
41
28
  */
42
- formatJwkKey({ pubkey }: ArgumentsCamelCase<FormatJwkKeyArgs>): React.ReactElement;
29
+ whoami(): React.ReactElement;
43
30
  }
44
31
  export {};
45
32
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,aAAa,CAAC,EAAE,oBAAoB,EAAE,eAAe,CAAC,EAAE,MAAM;IAK1E;;;OAGG;IACH,MAAM,IAAI,KAAK,CAAC,YAAY;IAO5B;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,YAAY;IAS3E;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY;IAQvE;;;OAGG;IACH,IAAI,IAAI,KAAK,CAAC,YAAY;IAO1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;CAKnF"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,aAAa,CAAC,EAAE,oBAAoB,EAAE,eAAe,CAAC,EAAE,MAAM;IAK1E;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,YAAY;IAS3E;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY;IAQvE;;;OAGG;IACH,MAAM,IAAI,KAAK,CAAC,YAAY;CAM7B"}
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  interface ScheduleCreateArgs {
4
4
  brain: string;
5
5
  cronExpression: string;
6
+ options?: Record<string, string>;
6
7
  }
7
8
  interface ScheduleListArgs {
8
9
  brain?: string;
@@ -21,7 +22,7 @@ interface ScheduleTimezoneArgs {
21
22
  }
22
23
  export declare class ScheduleCommand {
23
24
  constructor();
24
- create({ brain, cronExpression, }: ArgumentsCamelCase<ScheduleCreateArgs>): React.ReactElement;
25
+ create({ brain, cronExpression, options, }: ArgumentsCamelCase<ScheduleCreateArgs>): React.ReactElement;
25
26
  list({ brain }: ArgumentsCamelCase<ScheduleListArgs>): React.ReactElement;
26
27
  delete({ scheduleId, force }: ArgumentsCamelCase<ScheduleDeleteArgs>): React.ReactElement;
27
28
  runs({ scheduleId, limit, status, }: ArgumentsCamelCase<ScheduleRunsArgs>): React.ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../../src/commands/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC9C;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;;IAG1B,MAAM,CAAC,EACL,KAAK,EACL,cAAc,GACf,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY;IAW9D,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAMzE,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY;IAOzF,IAAI,CAAC,EACH,UAAU,EACV,KAAK,EACL,MAAM,GACP,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAQ5D,QAAQ,CAAC,EACP,QAAQ,GACT,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,YAAY;CAKjE"}
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../../src/commands/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;CAC9C;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;;IAG1B,MAAM,CAAC,EACL,KAAK,EACL,cAAc,EACd,OAAO,GACR,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY;IAY9D,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAMzE,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY;IAOzF,IAAI,CAAC,EACH,UAAU,EACV,KAAK,EACL,MAAM,GACP,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAQ5D,QAAQ,CAAC,EACP,QAAQ,GACT,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,YAAY;CAKjE"}
@@ -4,19 +4,20 @@ interface UsersCreateArgs {
4
4
  name: string;
5
5
  }
6
6
  interface UsersDeleteArgs {
7
- id: string;
7
+ name: string;
8
8
  force: boolean;
9
9
  }
10
- interface UsersKeysListArgs {
11
- id: string;
10
+ interface UsersListKeysArgs {
11
+ name: string;
12
12
  }
13
- interface UsersKeysAddArgs {
14
- id: string;
15
- pubkeyPath: string;
13
+ interface UsersAddKeyArgs {
14
+ name: string;
15
+ pubkeyPath?: string;
16
+ paste?: boolean;
16
17
  label?: string;
17
18
  }
18
- interface UsersKeysRemoveArgs {
19
- id: string;
19
+ interface UsersRemoveKeyArgs {
20
+ name: string;
20
21
  fingerprint: string;
21
22
  force: boolean;
22
23
  }
@@ -24,10 +25,10 @@ export declare class UsersCommand {
24
25
  constructor();
25
26
  list(): React.ReactElement;
26
27
  create({ name }: ArgumentsCamelCase<UsersCreateArgs>): React.ReactElement;
27
- delete({ id, force }: ArgumentsCamelCase<UsersDeleteArgs>): React.ReactElement;
28
- keysList({ id }: ArgumentsCamelCase<UsersKeysListArgs>): React.ReactElement;
29
- keysAdd({ id, pubkeyPath, label, }: ArgumentsCamelCase<UsersKeysAddArgs>): React.ReactElement;
30
- keysRemove({ id, fingerprint, force, }: ArgumentsCamelCase<UsersKeysRemoveArgs>): React.ReactElement;
28
+ delete({ name, force }: ArgumentsCamelCase<UsersDeleteArgs>): React.ReactElement;
29
+ listKeys({ name }: ArgumentsCamelCase<UsersListKeysArgs>): React.ReactElement;
30
+ addKey({ name, pubkeyPath, paste, label, }: ArgumentsCamelCase<UsersAddKeyArgs>): React.ReactElement;
31
+ removeKey({ name, fingerprint, force, }: ArgumentsCamelCase<UsersRemoveKeyArgs>): React.ReactElement;
31
32
  }
32
33
  export {};
33
34
  //# sourceMappingURL=users.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/commands/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,YAAY;;IAGvB,IAAI,IAAI,KAAK,CAAC,YAAY;IAI1B,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY;IAIzE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY;IAI9E,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,YAAY;IAI3E,OAAO,CAAC,EACN,EAAE,EACF,UAAU,EACV,KAAK,GACN,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,YAAY;IAQ5D,UAAU,CAAC,EACT,EAAE,EACF,WAAW,EACX,KAAK,GACN,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,YAAY;CAOhE"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/commands/users.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,YAAY;;IAGvB,IAAI,IAAI,KAAK,CAAC,YAAY;IAI1B,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY;IAIzE,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY;IAIhF,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,YAAY;IAI7E,MAAM,CAAC,EACL,IAAI,EACJ,UAAU,EACV,KAAK,EACL,KAAK,GACN,EAAE,kBAAkB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,YAAY;IAS3D,SAAS,CAAC,EACR,IAAI,EACJ,WAAW,EACX,KAAK,GACN,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,YAAY;CAO/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-auth-setup.d.ts","sourceRoot":"","sources":["../../../src/components/project-auth-setup.tsx"],"names":[],"mappings":"AAcA,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAUD,eAAO,MAAM,gBAAgB,GAAI,4BAA4B,qBAAqB,mDAiMjF,CAAC"}
1
+ {"version":3,"file":"project-auth-setup.d.ts","sourceRoot":"","sources":["../../../src/components/project-auth-setup.tsx"],"names":[],"mappings":"AAcA,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAUD,eAAO,MAAM,gBAAgB,GAAI,4BAA4B,qBAAqB,mDAoMjF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-create.d.ts","sourceRoot":"","sources":["../../../src/components/project-create.tsx"],"names":[],"mappings":"AAMA,UAAU,kBAAkB;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAID,eAAO,MAAM,aAAa,GAAI,oBAAoB,kBAAkB,4CAqGnE,CAAC"}
1
+ {"version":3,"file":"project-create.d.ts","sourceRoot":"","sources":["../../../src/components/project-create.tsx"],"names":[],"mappings":"AAMA,UAAU,kBAAkB;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAID,eAAO,MAAM,aAAa,GAAI,oBAAoB,kBAAkB,4CA2GnE,CAAC"}
@@ -1,7 +1,8 @@
1
1
  interface ScheduleCreateProps {
2
2
  identifier: string;
3
3
  cronExpression: string;
4
+ options?: Record<string, string>;
4
5
  }
5
- export declare const ScheduleCreate: ({ identifier, cronExpression }: ScheduleCreateProps) => import("react/jsx-runtime").JSX.Element | null;
6
+ export declare const ScheduleCreate: ({ identifier, cronExpression, options }: ScheduleCreateProps) => import("react/jsx-runtime").JSX.Element | null;
6
7
  export {};
7
8
  //# sourceMappingURL=schedule-create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-create.d.ts","sourceRoot":"","sources":["../../../src/components/schedule-create.tsx"],"names":[],"mappings":"AAKA,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAYD,eAAO,MAAM,cAAc,GAAI,gCAAgC,mBAAmB,mDA6EjF,CAAC"}
1
+ {"version":3,"file":"schedule-create.d.ts","sourceRoot":"","sources":["../../../src/components/schedule-create.tsx"],"names":[],"mappings":"AAKA,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAYD,eAAO,MAAM,cAAc,GAAI,yCAAyC,mBAAmB,mDAmF1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"users-create.d.ts","sourceRoot":"","sources":["../../../src/components/users-create.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAQD,eAAO,MAAM,WAAW,GAAI,UAAU,gBAAgB,mDA2ErD,CAAC"}
1
+ {"version":3,"file":"users-create.d.ts","sourceRoot":"","sources":["../../../src/components/users-create.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAOD,eAAO,MAAM,WAAW,GAAI,UAAU,gBAAgB,mDAwErD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  interface UsersDeleteProps {
2
- userId: string;
2
+ userName: string;
3
3
  force: boolean;
4
4
  }
5
- export declare const UsersDelete: ({ userId, force }: UsersDeleteProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ export declare const UsersDelete: ({ userName, force }: UsersDeleteProps) => import("react/jsx-runtime").JSX.Element | null;
6
6
  export {};
7
7
  //# sourceMappingURL=users-delete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users-delete.d.ts","sourceRoot":"","sources":["../../../src/components/users-delete.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAQD,eAAO,MAAM,WAAW,GAAI,mBAAmB,gBAAgB,mDA4F9D,CAAC"}
1
+ {"version":3,"file":"users-delete.d.ts","sourceRoot":"","sources":["../../../src/components/users-delete.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAOD,eAAO,MAAM,WAAW,GAAI,qBAAqB,gBAAgB,mDA4FhE,CAAC"}
@@ -1,8 +1,9 @@
1
1
  interface UsersKeysAddProps {
2
- userId: string;
3
- pubkeyPath: string;
2
+ userName: string;
3
+ pubkeyPath?: string;
4
+ paste?: boolean;
4
5
  label?: string;
5
6
  }
6
- export declare const UsersKeysAdd: ({ userId, pubkeyPath, label }: UsersKeysAddProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export declare const UsersKeysAdd: ({ userName, pubkeyPath, paste, label }: UsersKeysAddProps) => import("react/jsx-runtime").JSX.Element | null;
7
8
  export {};
8
9
  //# sourceMappingURL=users-keys-add.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users-keys-add.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-add.tsx"],"names":[],"mappings":"AASA,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,eAAO,MAAM,YAAY,GAAI,+BAA+B,iBAAiB,mDA0G5E,CAAC"}
1
+ {"version":3,"file":"users-keys-add.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-add.tsx"],"names":[],"mappings":"AASA,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,eAAO,MAAM,YAAY,GAAI,wCAAwC,iBAAiB,mDAqJrF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  interface UsersKeysListProps {
2
- userId: string;
2
+ userName: string;
3
3
  }
4
- export declare const UsersKeysList: ({ userId }: UsersKeysListProps) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const UsersKeysList: ({ userName }: UsersKeysListProps) => import("react/jsx-runtime").JSX.Element;
5
5
  export {};
6
6
  //# sourceMappingURL=users-keys-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users-keys-list.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-list.tsx"],"names":[],"mappings":"AAKA,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkCD,eAAO,MAAM,aAAa,GAAI,YAAY,kBAAkB,4CAkF3D,CAAC"}
1
+ {"version":3,"file":"users-keys-list.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-list.tsx"],"names":[],"mappings":"AAKA,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiCD,eAAO,MAAM,aAAa,GAAI,cAAc,kBAAkB,4CAkF7D,CAAC"}
@@ -1,8 +1,8 @@
1
1
  interface UsersKeysRemoveProps {
2
- userId: string;
2
+ userName: string;
3
3
  fingerprint: string;
4
4
  force: boolean;
5
5
  }
6
- export declare const UsersKeysRemove: ({ userId, fingerprint, force }: UsersKeysRemoveProps) => import("react/jsx-runtime").JSX.Element | null;
6
+ export declare const UsersKeysRemove: ({ userName, fingerprint, force }: UsersKeysRemoveProps) => import("react/jsx-runtime").JSX.Element | null;
7
7
  export {};
8
8
  //# sourceMappingURL=users-keys-remove.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users-keys-remove.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-remove.tsx"],"names":[],"mappings":"AAKA,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAQD,eAAO,MAAM,eAAe,GAAI,gCAAgC,oBAAoB,mDA+FnF,CAAC"}
1
+ {"version":3,"file":"users-keys-remove.d.ts","sourceRoot":"","sources":["../../../src/components/users-keys-remove.tsx"],"names":[],"mappings":"AAKA,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;CAChB;AAOD,eAAO,MAAM,eAAe,GAAI,kCAAkC,oBAAoB,mDA+FrF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"users-list.d.ts","sourceRoot":"","sources":["../../../src/components/users-list.tsx"],"names":[],"mappings":"AA8BA,eAAO,MAAM,SAAS,+CAqErB,CAAC"}
1
+ {"version":3,"file":"users-list.d.ts","sourceRoot":"","sources":["../../../src/components/users-list.tsx"],"names":[],"mappings":"AA6BA,eAAO,MAAM,SAAS,+CAgErB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ProjectConfigManager } from '../commands/project-config-manager.js';
2
+ interface WhoamiProps {
3
+ configManager: ProjectConfigManager;
4
+ projectRootPath?: string;
5
+ }
6
+ export declare const Whoami: ({ configManager, projectRootPath }: WhoamiProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=whoami.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/components/whoami.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAIlF,UAAU,WAAW;IACnB,aAAa,EAAE,oBAAoB,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAOD,eAAO,MAAM,MAAM,GAAI,oCAAoC,WAAW,mDAqErE,CAAC"}