@doist/todoist-cli 1.62.0 → 1.62.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.
Files changed (107) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/commands/apps/list.d.ts.map +1 -1
  3. package/dist/commands/apps/list.js +5 -4
  4. package/dist/commands/apps/list.js.map +1 -1
  5. package/dist/commands/auth/index.d.ts +1 -1
  6. package/dist/commands/auth/index.d.ts.map +1 -1
  7. package/dist/commands/auth/index.js +2 -13
  8. package/dist/commands/auth/index.js.map +1 -1
  9. package/dist/commands/auth/login.d.ts +13 -4
  10. package/dist/commands/auth/login.d.ts.map +1 -1
  11. package/dist/commands/auth/login.js +75 -48
  12. package/dist/commands/auth/login.js.map +1 -1
  13. package/dist/commands/changelog.d.ts +1 -6
  14. package/dist/commands/changelog.d.ts.map +1 -1
  15. package/dist/commands/changelog.js +6 -85
  16. package/dist/commands/changelog.js.map +1 -1
  17. package/dist/commands/hc/index.d.ts.map +1 -1
  18. package/dist/commands/hc/index.js +1 -0
  19. package/dist/commands/hc/index.js.map +1 -1
  20. package/dist/commands/hc/search.d.ts +1 -0
  21. package/dist/commands/hc/search.d.ts.map +1 -1
  22. package/dist/commands/hc/search.js +8 -3
  23. package/dist/commands/hc/search.js.map +1 -1
  24. package/dist/commands/task/index.d.ts.map +1 -1
  25. package/dist/commands/task/index.js +1 -0
  26. package/dist/commands/task/index.js.map +1 -1
  27. package/dist/commands/task/update.d.ts +1 -1
  28. package/dist/commands/task/update.d.ts.map +1 -1
  29. package/dist/commands/task/update.js +6 -2
  30. package/dist/commands/task/update.js.map +1 -1
  31. package/dist/commands/update/index.d.ts +1 -1
  32. package/dist/commands/update/index.d.ts.map +1 -1
  33. package/dist/commands/update/index.js +11 -14
  34. package/dist/commands/update/index.js.map +1 -1
  35. package/dist/commands/user/index.d.ts.map +1 -1
  36. package/dist/commands/user/index.js +1 -0
  37. package/dist/commands/user/index.js.map +1 -1
  38. package/dist/commands/user/list.d.ts +1 -0
  39. package/dist/commands/user/list.d.ts.map +1 -1
  40. package/dist/commands/user/list.js +22 -11
  41. package/dist/commands/user/list.js.map +1 -1
  42. package/dist/index.js +2 -2
  43. package/dist/index.js.map +1 -1
  44. package/dist/lib/auth-html.d.ts +11 -0
  45. package/dist/lib/auth-html.d.ts.map +1 -0
  46. package/dist/lib/{oauth-server.js → auth-html.js} +13 -97
  47. package/dist/lib/auth-html.js.map +1 -0
  48. package/dist/lib/auth-provider.d.ts +16 -0
  49. package/dist/lib/auth-provider.d.ts.map +1 -0
  50. package/dist/lib/auth-provider.js +59 -0
  51. package/dist/lib/auth-provider.js.map +1 -0
  52. package/dist/lib/auth-store.d.ts +48 -0
  53. package/dist/lib/auth-store.d.ts.map +1 -0
  54. package/dist/lib/auth-store.js +91 -0
  55. package/dist/lib/auth-store.js.map +1 -0
  56. package/dist/lib/auth.d.ts +4 -0
  57. package/dist/lib/auth.d.ts.map +1 -1
  58. package/dist/lib/auth.js +1 -1
  59. package/dist/lib/auth.js.map +1 -1
  60. package/dist/lib/errors.d.ts +1 -0
  61. package/dist/lib/errors.d.ts.map +1 -1
  62. package/dist/lib/errors.js +1 -0
  63. package/dist/lib/errors.js.map +1 -1
  64. package/dist/lib/global-args.d.ts +20 -24
  65. package/dist/lib/global-args.d.ts.map +1 -1
  66. package/dist/lib/global-args.js +71 -134
  67. package/dist/lib/global-args.js.map +1 -1
  68. package/dist/lib/markdown.d.ts.map +1 -1
  69. package/dist/lib/markdown.js +8 -13
  70. package/dist/lib/markdown.js.map +1 -1
  71. package/dist/lib/oauth-scopes.d.ts +21 -0
  72. package/dist/lib/oauth-scopes.d.ts.map +1 -1
  73. package/dist/lib/oauth-scopes.js +28 -0
  74. package/dist/lib/oauth-scopes.js.map +1 -1
  75. package/dist/lib/options.d.ts +2 -3
  76. package/dist/lib/options.d.ts.map +1 -1
  77. package/dist/lib/output.d.ts +5 -3
  78. package/dist/lib/output.d.ts.map +1 -1
  79. package/dist/lib/output.js.map +1 -1
  80. package/dist/lib/skills/content.d.ts +1 -1
  81. package/dist/lib/skills/content.d.ts.map +1 -1
  82. package/dist/lib/skills/content.js +10 -2
  83. package/dist/lib/skills/content.js.map +1 -1
  84. package/dist/lib/update.d.ts +7 -13
  85. package/dist/lib/update.d.ts.map +1 -1
  86. package/dist/lib/update.js +10 -36
  87. package/dist/lib/update.js.map +1 -1
  88. package/package.json +5 -5
  89. package/dist/commands/update/action.d.ts +0 -5
  90. package/dist/commands/update/action.d.ts.map +0 -1
  91. package/dist/commands/update/action.js +0 -112
  92. package/dist/commands/update/action.js.map +0 -1
  93. package/dist/commands/update/switch.d.ts +0 -5
  94. package/dist/commands/update/switch.d.ts.map +0 -1
  95. package/dist/commands/update/switch.js +0 -31
  96. package/dist/commands/update/switch.js.map +0 -1
  97. package/dist/lib/oauth-server.d.ts +0 -8
  98. package/dist/lib/oauth-server.d.ts.map +0 -1
  99. package/dist/lib/oauth-server.js.map +0 -1
  100. package/dist/lib/oauth.d.ts +0 -13
  101. package/dist/lib/oauth.d.ts.map +0 -1
  102. package/dist/lib/oauth.js +0 -51
  103. package/dist/lib/oauth.js.map +0 -1
  104. package/dist/lib/pkce.d.ts +0 -4
  105. package/dist/lib/pkce.d.ts.map +0 -1
  106. package/dist/lib/pkce.js +0 -19
  107. package/dist/lib/pkce.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/update/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAc5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/update/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ5D"}
@@ -1,17 +1,14 @@
1
- import { updateAction } from './action.js';
2
- import { switchChannel } from './switch.js';
1
+ import { registerUpdateCommand as registerCoreUpdateCommand } from '@doist/cli-core/commands';
2
+ import packageJson from '../../../package.json' with { type: 'json' };
3
+ import { getConfigPath } from '../../lib/config.js';
4
+ import { withSpinner } from '../../lib/spinner.js';
3
5
  export function registerUpdateCommand(program) {
4
- const update = program
5
- .command('update')
6
- .description('Update the CLI to the latest version for the configured channel')
7
- .option('--check', 'Check for updates without installing')
8
- .option('--channel', 'Show the current update channel')
9
- .action(updateAction);
10
- update
11
- .command('switch')
12
- .description('Switch update channel between stable and pre-release')
13
- .option('--stable', 'Use the stable release channel')
14
- .option('--pre-release', 'Use the pre-release (next) channel')
15
- .action(switchChannel);
6
+ registerCoreUpdateCommand(program, {
7
+ packageName: packageJson.name,
8
+ currentVersion: packageJson.version,
9
+ configPath: getConfigPath(),
10
+ changelogCommandName: 'td changelog',
11
+ withSpinner,
12
+ });
16
13
  }
17
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/update/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,MAAM,MAAM,GAAG,OAAO;SACjB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;SACtD,MAAM,CAAC,YAAY,CAAC,CAAA;IAEzB,MAAM;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,UAAU,EAAE,gCAAgC,CAAC;SACpD,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC;SAC7D,MAAM,CAAC,aAAa,CAAC,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/update/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAE7F,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,yBAAyB,CAAC,OAAO,EAAE;QAC/B,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,cAAc,EAAE,WAAW,CAAC,OAAO;QACnC,UAAU,EAAE,aAAa,EAAE;QAC3B,oBAAoB,EAAE,cAAc;QACpC,WAAW;KACd,CAAC,CAAA;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC1D"}
@@ -7,6 +7,7 @@ export function registerUserCommand(program) {
7
7
  user.command('list')
8
8
  .description('List all stored Todoist accounts')
9
9
  .option('--json', 'Output as JSON')
10
+ .option('--ndjson', 'Output as newline-delimited JSON')
10
11
  .action(listUsersCommand);
11
12
  user.command('use <ref>')
12
13
  .description('Set the default account used when --user is not provided')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAA;IAE/F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,4EAA4E;IAC5E,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0EAA0E,CAAC;SACvF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE/B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAEpD,IAAI,CAAC,WAAW,CACZ,OAAO,EACP;;;;;;;mCAO2B,CAC9B,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAA;IAE/F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC;SACtD,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,4EAA4E;IAC5E,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0EAA0E,CAAC;SACvF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE/B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAEpD,IAAI,CAAC,WAAW,CACZ,OAAO,EACP;;;;;;;mCAO2B,CAC9B,CAAA;AACL,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export interface ListUsersOptions {
2
2
  json?: boolean;
3
+ ndjson?: boolean;
3
4
  }
4
5
  export declare function listUsersCommand(options: ListUsersOptions): Promise<void>;
5
6
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC/E"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAcD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B/E"}
@@ -1,25 +1,36 @@
1
+ import { formatJson, formatNdjson, printEmpty } from '@doist/cli-core';
1
2
  import chalk from 'chalk';
2
3
  import { listStoredUsers, readConfig } from '../../lib/auth.js';
3
4
  import { isAccessible } from '../../lib/global-args.js';
4
5
  import { getDefaultUserId } from '../../lib/users.js';
6
+ function projectUser(u, defaultId) {
7
+ return {
8
+ id: u.id,
9
+ email: u.email,
10
+ isDefault: u.id === defaultId,
11
+ authMode: u.auth_mode,
12
+ authScope: u.auth_scope,
13
+ authFlags: u.auth_flags,
14
+ storage: u.api_token ? 'config-file' : 'secure-store',
15
+ };
16
+ }
5
17
  export async function listUsersCommand(options) {
6
18
  const users = await listStoredUsers();
7
19
  const config = await readConfig();
8
20
  const defaultId = getDefaultUserId(config);
21
+ if (users.length === 0) {
22
+ printEmpty({
23
+ options,
24
+ message: chalk.dim('No stored Todoist accounts. Run `td auth login` to add one.'),
25
+ });
26
+ return;
27
+ }
9
28
  if (options.json) {
10
- console.log(JSON.stringify(users.map((u) => ({
11
- id: u.id,
12
- email: u.email,
13
- isDefault: u.id === defaultId,
14
- authMode: u.auth_mode,
15
- authScope: u.auth_scope,
16
- authFlags: u.auth_flags,
17
- storage: u.api_token ? 'config-file' : 'secure-store',
18
- })), null, 2));
29
+ console.log(formatJson(users.map((u) => projectUser(u, defaultId))));
19
30
  return;
20
31
  }
21
- if (users.length === 0) {
22
- console.log(chalk.dim('No stored Todoist accounts. Run `td auth login` to add one.'));
32
+ if (options.ndjson) {
33
+ console.log(formatNdjson(users.map((u) => projectUser(u, defaultId))));
23
34
  return;
24
35
  }
25
36
  const accessible = isAccessible();
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC5D,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAE1C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACP,IAAI,CAAC,SAAS,CACV,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACd,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS;YAC7B,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc;SACxD,CAAC,CAAC,EACH,IAAI,EACJ,CAAC,CACJ,CACJ,CAAA;QACD,OAAM;IACV,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAA;QACrF,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,EAAE,CAAA;IACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,CAAA;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAA;IACnE,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAOrD,SAAS,WAAW,CAAC,CAAa,EAAE,SAA6B;IAC7D,OAAO;QACH,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS;QAC7B,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc;KACxD,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC5D,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAE1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,UAAU,CAAC;YACP,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC;SACpF,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACpE,OAAM;IACV,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,EAAE,CAAA;IACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,CAAA;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAA;IACnE,CAAC;AACL,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { program } from 'commander';
3
3
  import packageJson from '../package.json' with { type: 'json' };
4
- import { CliError } from './lib/errors.js';
4
+ import { BaseCliError, CliError } from './lib/errors.js';
5
5
  import { getRequestedUserRef, isJsonMode, isNdjsonMode, isRawMode, stripUserFlag, } from './lib/global-args.js';
6
6
  import { initializeLogger } from './lib/logger.js';
7
7
  import { preloadMarkdown } from './lib/markdown.js';
@@ -260,7 +260,7 @@ initializeLogger();
260
260
  program
261
261
  .parseAsync()
262
262
  .catch((err) => {
263
- if (err instanceof CliError) {
263
+ if (err instanceof BaseCliError) {
264
264
  console.error(isJsonMode() ? formatErrorJson(err) : formatError(err));
265
265
  }
266
266
  else {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EACH,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,aAAa,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,SAAS,oBAAoB,CAAC,OAAgB;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,OAAO,GAAmB,OAAO,CAAA;IAErC,OAAO,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AAC/C,CAAC;AAED,OAAO;KACF,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,aAAa,CAAC;KAC1B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,MAAM,CAAC,yBAAyB,EAAE,mDAAmD,CAAC;KACtF,MAAM,CAAC,eAAe,EAAE,mEAAmE,CAAC;KAC5F,MAAM,CAAC,cAAc,EAAE,+DAA+D,CAAC;KACvF,MAAM,CAAC,aAAa,EAAE,gEAAgE,CAAC;KACvF,MAAM,CACH,cAAc,EACd,6EAA6E,CAChF;KACA,WAAW,CACR,OAAO,EACP;;;;;;4EAMoE,CACvE,CAAA;AAEL,+CAA+C;AAC/C,MAAM,QAAQ,GAAkE;IAC5E,GAAG,EAAE;QACD,+EAA+E;QAC/E,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB;KACrE;IACD,SAAS,EAAE;QACP,+BAA+B;QAC/B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,wBAAwB;KACjF;IACD,MAAM,EAAE;QACJ,kDAAkD;QAClD,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB;KAC3E;IACD,EAAE,EAAE;QACA,qCAAqC;QACrC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB;KACjF;IACD,KAAK,EAAE;QACH,kCAAkC;QAClC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB;KACzE;IACD,QAAQ,EAAE;QACN,gDAAgD;QAChD,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB;KAC/E;IACD,KAAK,EAAE;QACH,qBAAqB;QACrB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB;KACzE;IACD,SAAS,EAAE;QACP,sBAAsB;QACtB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,wBAAwB;KACvF;IACD,IAAI,EAAE;QACF,cAAc;QACd,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,OAAO,EAAE;QACL,iBAAiB;QACjB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB;KACnF;IACD,KAAK,EAAE;QACH,eAAe;QACf,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;KAC/E;IACD,OAAO,EAAE;QACL,iBAAiB;QACjB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB;KACnF;IACD,UAAU,EAAE;QACR,yBAAyB;QACzB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,yBAAyB;KACnF;IACD,OAAO,EAAE;QACL,yBAAyB;QACzB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB;KACnF;IACD,SAAS,EAAE;QACP,mBAAmB;QACnB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,wBAAwB;KACvF;IACD,QAAQ,EAAE;QACN,oBAAoB;QACpB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB;KAC/E;IACD,QAAQ,EAAE;QACN,uBAAuB;QACvB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,uBAAuB;KACrF;IACD,QAAQ,EAAE;QACN,sBAAsB;QACtB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,uBAAuB;KACrF;IACD,IAAI,EAAE;QACF,uBAAuB;QACvB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,IAAI,EAAE;QACF,6CAA6C;QAC7C,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,IAAI,EAAE;QACF,+CAA+C;QAC/C,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,MAAM,EAAE;QACJ,gBAAgB;QAChB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,KAAK,EAAE;QACH,mCAAmC;QACnC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;KAC/E;IACD,MAAM,EAAE;QACJ,gBAAgB;QAChB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,MAAM,EAAE;QACJ,0BAA0B;QAC1B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,YAAY,EAAE;QACV,sBAAsB;QACtB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,2BAA2B;KAC7F;IACD,KAAK,EAAE;QACH,yCAAyC;QACzC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;KAC/E;IACD,QAAQ,EAAE;QACN,mDAAmD;QACnD,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,uBAAuB;KACrF;IACD,UAAU,EAAE;QACR,0BAA0B;QAC1B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,yBAAyB;KACzF;IACD,MAAM,EAAE;QACJ,0BAA0B;QAC1B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,IAAI,EAAE;QACF,sCAAsC;QACtC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB;KACvE;IACD,MAAM,EAAE;QACJ,iEAAiE;QACjE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;CACJ,CAAA;AAED,qDAAqD;AACrD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;AAClD,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;IACtD,oBAAoB,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA;AAEF,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,oEAAoE;AACpE,0EAA0E;AAC1E,uEAAuE;AACvE,yEAAyE;AACzE,iEAAiE;AACjE,CAAC;IACG,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACvF,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAA;QACjC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,KAAe,EAAS,EAAE;YACpE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,mBAAmB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAC7D,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC,CAAA;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,mBAAmB,CAAC,sCAAsC,EAAE;gBACxD,8CAA8C;aACjD,CAAC,CAAA;QACN,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACtC,mBAAmB,CACf,6CAA6C,GAAG,8DAA8D,EAC9G,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAChD,CAAA;QACL,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,oEAAoE;AACpE,yEAAyE;AACzE,mDAAmD;AACnD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;IAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAA;IAE1E,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA;QAChE,IAAI,GAAG,KAAK,CAAC,CAAC;YAAG,OAAO,CAAC,QAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1C,QAAQ,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC,CAAC,CACL,CAAA;AACL,CAAC;KAAM,CAAC;IACJ,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAA;IAE1F,IAAI,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,4DAA4D;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,CAAA;QACvE,IAAI,GAAG,KAAK,CAAC,CAAC;YAAG,OAAO,CAAC,QAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvC,iBAAiB,EAAE,CAAA;QACnB,IAAI,CAAC;YACD,gEAAgE;YAChE,2DAA2D;YAC3D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;gBAC/B,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,QAAQ;gBACR,YAAY;aACf,CAAC,CAAA;YACF,MAAM,aAAa,GACf,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;gBACpC,CAAC,UAAU,EAAE;gBACb,CAAC,YAAY,EAAE;gBACf,CAAC,SAAS,EAAE,CAAA;YAChB,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YAEnE,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAA;YAC/B,MAAM,aAAa,CAAA;YACnB,QAAQ,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,gBAAgB,EAAE,CAAA;YAClB,MAAM,GAAG,CAAA;QACb,CAAC;IACL,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,gBAAgB,EAAE,CAAA;AAElB,OAAO;KACF,UAAU,EAAE;KACZ,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IAClB,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IACzE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CACT,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAC9E,CAAA;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC;KACD,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EACH,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,SAAS,EACT,aAAa,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,SAAS,oBAAoB,CAAC,OAAgB;IAC1C,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,OAAO,GAAmB,OAAO,CAAA;IAErC,OAAO,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AAC/C,CAAC;AAED,OAAO;KACF,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,aAAa,CAAC;KAC1B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,MAAM,CAAC,yBAAyB,EAAE,mDAAmD,CAAC;KACtF,MAAM,CAAC,eAAe,EAAE,mEAAmE,CAAC;KAC5F,MAAM,CAAC,cAAc,EAAE,+DAA+D,CAAC;KACvF,MAAM,CAAC,aAAa,EAAE,gEAAgE,CAAC;KACvF,MAAM,CACH,cAAc,EACd,6EAA6E,CAChF;KACA,WAAW,CACR,OAAO,EACP;;;;;;4EAMoE,CACvE,CAAA;AAEL,+CAA+C;AAC/C,MAAM,QAAQ,GAAkE;IAC5E,GAAG,EAAE;QACD,+EAA+E;QAC/E,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB;KACrE;IACD,SAAS,EAAE;QACP,+BAA+B;QAC/B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,wBAAwB;KACjF;IACD,MAAM,EAAE;QACJ,kDAAkD;QAClD,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB;KAC3E;IACD,EAAE,EAAE;QACA,qCAAqC;QACrC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB;KACjF;IACD,KAAK,EAAE;QACH,kCAAkC;QAClC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB;KACzE;IACD,QAAQ,EAAE;QACN,gDAAgD;QAChD,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB;KAC/E;IACD,KAAK,EAAE;QACH,qBAAqB;QACrB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB;KACzE;IACD,SAAS,EAAE;QACP,sBAAsB;QACtB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,wBAAwB;KACvF;IACD,IAAI,EAAE;QACF,cAAc;QACd,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,OAAO,EAAE;QACL,iBAAiB;QACjB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB;KACnF;IACD,KAAK,EAAE;QACH,eAAe;QACf,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;KAC/E;IACD,OAAO,EAAE;QACL,iBAAiB;QACjB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB;KACnF;IACD,UAAU,EAAE;QACR,yBAAyB;QACzB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,yBAAyB;KACnF;IACD,OAAO,EAAE;QACL,yBAAyB;QACzB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB;KACnF;IACD,SAAS,EAAE;QACP,mBAAmB;QACnB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC,CAAC,wBAAwB;KACvF;IACD,QAAQ,EAAE;QACN,oBAAoB;QACpB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB;KAC/E;IACD,QAAQ,EAAE;QACN,uBAAuB;QACvB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,uBAAuB;KACrF;IACD,QAAQ,EAAE;QACN,sBAAsB;QACtB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,uBAAuB;KACrF;IACD,IAAI,EAAE;QACF,uBAAuB;QACvB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,IAAI,EAAE;QACF,6CAA6C;QAC7C,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,IAAI,EAAE;QACF,+CAA+C;QAC/C,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB;KAC7E;IACD,MAAM,EAAE;QACJ,gBAAgB;QAChB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,KAAK,EAAE;QACH,mCAAmC;QACnC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;KAC/E;IACD,MAAM,EAAE;QACJ,gBAAgB;QAChB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,MAAM,EAAE;QACJ,0BAA0B;QAC1B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,YAAY,EAAE;QACV,sBAAsB;QACtB,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,2BAA2B;KAC7F;IACD,KAAK,EAAE;QACH,yCAAyC;QACzC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB;KAC/E;IACD,QAAQ,EAAE;QACN,mDAAmD;QACnD,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,uBAAuB;KACrF;IACD,UAAU,EAAE;QACR,0BAA0B;QAC1B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,yBAAyB;KACzF;IACD,MAAM,EAAE;QACJ,0BAA0B;QAC1B,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;IACD,IAAI,EAAE;QACF,sCAAsC;QACtC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB;KACvE;IACD,MAAM,EAAE;QACJ,iEAAiE;QACjE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;KACjF;CACJ,CAAA;AAED,qDAAqD;AACrD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;AAClD,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;IACtD,oBAAoB,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA;AAEF,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,oEAAoE;AACpE,0EAA0E;AAC1E,uEAAuE;AACvE,yEAAyE;AACzE,iEAAiE;AACjE,CAAC;IACG,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACvF,IAAI,WAAW,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAA;QACjC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,KAAe,EAAS,EAAE;YACpE,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,mBAAmB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAC7D,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC,CAAA;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,mBAAmB,CAAC,sCAAsC,EAAE;gBACxD,8CAA8C;aACjD,CAAC,CAAA;QACN,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YACtC,mBAAmB,CACf,6CAA6C,GAAG,8DAA8D,EAC9G,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAChD,CAAA;QACL,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,oEAAoE;AACpE,yEAAyE;AACzE,mDAAmD;AACnD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;IAC1C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAA;IAE1E,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAA;QAChE,IAAI,GAAG,KAAK,CAAC,CAAC;YAAG,OAAO,CAAC,QAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1C,QAAQ,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC,CAAC,CACL,CAAA;AACL,CAAC;KAAM,CAAC;IACJ,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAA;IAE1F,IAAI,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,4DAA4D;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,CAAA;QACvE,IAAI,GAAG,KAAK,CAAC,CAAC;YAAG,OAAO,CAAC,QAAsB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAEvC,iBAAiB,EAAE,CAAA;QACnB,IAAI,CAAC;YACD,gEAAgE;YAChE,2DAA2D;YAC3D,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;gBAC/B,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,QAAQ;gBACR,YAAY;aACf,CAAC,CAAA;YACF,MAAM,aAAa,GACf,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC;gBACpC,CAAC,UAAU,EAAE;gBACb,CAAC,YAAY,EAAE;gBACf,CAAC,SAAS,EAAE,CAAA;YAChB,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;YAEnE,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAA;YAC/B,MAAM,aAAa,CAAA;YACnB,QAAQ,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,gBAAgB,EAAE,CAAA;YAClB,MAAM,GAAG,CAAA;QACb,CAAC;IACL,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,gBAAgB,EAAE,CAAA;AAElB,OAAO;KACF,UAAU,EAAE;KACZ,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IAClB,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IACzE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CACT,UAAU,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAC9E,CAAA;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC;KACD,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Branded HTML pages served by the OAuth callback server. Wired into
3
+ * cli-core's `registerAuthCommand` via the `renderSuccess` / `renderError`
4
+ * options so the runtime stays generic while the CLI keeps its branding.
5
+ *
6
+ * The two consts (SUCCESS_HTML / ERROR_HTML) were lifted verbatim from the
7
+ * pre-cli-core `src/lib/oauth-server.ts` to preserve the existing UX.
8
+ */
9
+ export declare function renderAuthSuccessPage(): string;
10
+ export declare function renderAuthErrorPage(message: string): string;
11
+ //# sourceMappingURL=auth-html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-html.d.ts","sourceRoot":"","sources":["../../src/lib/auth-html.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAosBH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -1,7 +1,11 @@
1
- import { createServer } from 'node:http';
2
- export const DEFAULT_PORT = 8765;
3
- const MAX_PORT_ATTEMPTS = 5;
4
- const TIMEOUT_MS = 3 * 60 * 1000; // 3 minutes
1
+ /**
2
+ * Branded HTML pages served by the OAuth callback server. Wired into
3
+ * cli-core's `registerAuthCommand` via the `renderSuccess` / `renderError`
4
+ * options so the runtime stays generic while the CLI keeps its branding.
5
+ *
6
+ * The two consts (SUCCESS_HTML / ERROR_HTML) were lifted verbatim from the
7
+ * pre-cli-core `src/lib/oauth-server.ts` to preserve the existing UX.
8
+ */
5
9
  const SUCCESS_HTML = `
6
10
  <!DOCTYPE html>
7
11
  <html lang="en">
@@ -706,98 +710,10 @@ const ERROR_HTML = (message) => `
706
710
  </body>
707
711
  </html>
708
712
  `;
709
- export function getRedirectUri(port) {
710
- return `http://localhost:${port}/callback`;
713
+ export function renderAuthSuccessPage() {
714
+ return SUCCESS_HTML;
711
715
  }
712
- function tryListen(server, port) {
713
- return new Promise((resolve, reject) => {
714
- server.once('error', reject);
715
- server.listen(port, () => {
716
- server.removeListener('error', reject);
717
- resolve();
718
- });
719
- });
716
+ export function renderAuthErrorPage(message) {
717
+ return ERROR_HTML(message);
720
718
  }
721
- export async function startCallbackServer(expectedState) {
722
- let timeoutId = null;
723
- let boundPort = DEFAULT_PORT;
724
- const server = createServer();
725
- let closed = false;
726
- const cleanup = () => {
727
- if (closed)
728
- return;
729
- closed = true;
730
- if (timeoutId) {
731
- clearTimeout(timeoutId);
732
- timeoutId = null;
733
- }
734
- server.close();
735
- };
736
- // Find an available port
737
- for (let port = DEFAULT_PORT; port < DEFAULT_PORT + MAX_PORT_ATTEMPTS; port++) {
738
- try {
739
- await tryListen(server, port);
740
- boundPort = port;
741
- break;
742
- }
743
- catch (err) {
744
- if (err instanceof Error &&
745
- 'code' in err &&
746
- err.code === 'EADDRINUSE') {
747
- if (port === DEFAULT_PORT + MAX_PORT_ATTEMPTS - 1) {
748
- throw new Error(`Could not find an available port (tried ${DEFAULT_PORT}-${DEFAULT_PORT + MAX_PORT_ATTEMPTS - 1})`);
749
- }
750
- continue;
751
- }
752
- throw err;
753
- }
754
- }
755
- const promise = new Promise((resolve, reject) => {
756
- server.on('request', (req, res) => {
757
- const url = new URL(req.url || '/', `http://localhost:${boundPort}`);
758
- if (url.pathname !== '/callback') {
759
- res.writeHead(404);
760
- res.end('Not found');
761
- return;
762
- }
763
- const code = url.searchParams.get('code');
764
- const state = url.searchParams.get('state');
765
- const error = url.searchParams.get('error');
766
- if (error) {
767
- res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
768
- res.end(ERROR_HTML(error));
769
- cleanup();
770
- reject(new Error(`OAuth error: ${error}`));
771
- return;
772
- }
773
- if (!code || !state) {
774
- res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
775
- res.end(ERROR_HTML('Missing code or state parameter'));
776
- cleanup();
777
- reject(new Error('Missing code or state parameter'));
778
- return;
779
- }
780
- if (state !== expectedState) {
781
- res.writeHead(400, { 'Content-Type': 'text/html; charset=utf-8' });
782
- res.end(ERROR_HTML('Invalid state parameter (possible CSRF attack)'));
783
- cleanup();
784
- reject(new Error('Invalid state parameter'));
785
- return;
786
- }
787
- res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
788
- res.end(SUCCESS_HTML);
789
- cleanup();
790
- resolve(code);
791
- });
792
- server.on('error', (err) => {
793
- cleanup();
794
- reject(err);
795
- });
796
- timeoutId = setTimeout(() => {
797
- cleanup();
798
- reject(new Error('OAuth callback timed out'));
799
- }, TIMEOUT_MS);
800
- });
801
- return { promise, port: boundPort, cleanup };
802
- }
803
- //# sourceMappingURL=oauth-server.js.map
719
+ //# sourceMappingURL=auth-html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-html.js","sourceRoot":"","sources":["../../src/lib/auth-html.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkcpB,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAuP3B,OAAO;;;;;CAKnB,CAAA;AAED,MAAM,UAAU,qBAAqB;IACjC,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAC/C,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type AuthProvider } from '@doist/cli-core/auth';
2
+ import { type TodoistAccount } from './auth-store.js';
3
+ /**
4
+ * Build an `AuthProvider<TodoistAccount>` driven by cli-core's PKCE factory.
5
+ *
6
+ * The wrapper only overrides `validateToken` — `runOAuthFlow` automatically
7
+ * folds the runtime `flags` and `readOnly` values into the handshake
8
+ * between `authorize` and `exchangeCode`/`validateToken`, so we read them
9
+ * back out here to assemble the `auth_mode` / `auth_scope` / `auth_flags`
10
+ * triplet that todoist persists per account.
11
+ *
12
+ * The token-endpoint POST is routed through `fetchTodoist` so the usage-
13
+ * tracking headers (User-Agent, Doist-OS, …) are included.
14
+ */
15
+ export declare function createTodoistAuthProvider(): AuthProvider<TodoistAccount>;
16
+ //# sourceMappingURL=auth-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.d.ts","sourceRoot":"","sources":["../../src/lib/auth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,sBAAsB,CAAA;AAE5E,OAAO,EAAE,KAAK,cAAc,EAAoB,MAAM,iBAAiB,CAAA;AAavE;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,YAAY,CAAC,cAAc,CAAC,CAoCxE"}
@@ -0,0 +1,59 @@
1
+ import { createPkceProvider } from '@doist/cli-core/auth';
2
+ import { createApiForToken } from './api/core.js';
3
+ import { toTodoistAccount } from './auth-store.js';
4
+ import { extractAdditionalScopes, resolveAuthScope } from './oauth-scopes.js';
5
+ import { fetchTodoist } from './usage-tracking.js';
6
+ const TODOIST_CLIENT_ID = '04863cc1e3584830a578622f50224d5b';
7
+ const OAUTH_AUTHORIZE_URL = 'https://todoist.com/oauth/authorize';
8
+ const OAUTH_TOKEN_URL = 'https://todoist.com/oauth/access_token';
9
+ // Todoist's PKCE verifier alphabet: RFC 7636 unreserved minus `~`. Keep this
10
+ // exact so existing tokens that interrogate the verifier continue to validate.
11
+ const TODOIST_VERIFIER_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
12
+ /**
13
+ * Build an `AuthProvider<TodoistAccount>` driven by cli-core's PKCE factory.
14
+ *
15
+ * The wrapper only overrides `validateToken` — `runOAuthFlow` automatically
16
+ * folds the runtime `flags` and `readOnly` values into the handshake
17
+ * between `authorize` and `exchangeCode`/`validateToken`, so we read them
18
+ * back out here to assemble the `auth_mode` / `auth_scope` / `auth_flags`
19
+ * triplet that todoist persists per account.
20
+ *
21
+ * The token-endpoint POST is routed through `fetchTodoist` so the usage-
22
+ * tracking headers (User-Agent, Doist-OS, …) are included.
23
+ */
24
+ export function createTodoistAuthProvider() {
25
+ return {
26
+ ...createPkceProvider({
27
+ authorizeUrl: OAUTH_AUTHORIZE_URL,
28
+ tokenUrl: OAUTH_TOKEN_URL,
29
+ clientId: TODOIST_CLIENT_ID,
30
+ scopeSeparator: ',',
31
+ verifierAlphabet: TODOIST_VERIFIER_ALPHABET,
32
+ verifierLength: 64,
33
+ validate: async () => {
34
+ // Replaced below — kept narrow so a regression surfaces here.
35
+ throw new Error('createTodoistAuthProvider: validate() must be overridden');
36
+ },
37
+ fetchImpl: (input, init) => fetchTodoist(input, init ?? {}),
38
+ }),
39
+ async validateToken({ token, handshake }) {
40
+ const flags = handshake.flags ?? {};
41
+ const readOnly = Boolean(handshake.readOnly);
42
+ const additionalScopes = extractAdditionalScopes(flags);
43
+ const probeApi = createApiForToken(token);
44
+ const user = await probeApi.getUser();
45
+ const authFlags = [];
46
+ if (readOnly)
47
+ authFlags.push('read-only');
48
+ authFlags.push(...additionalScopes);
49
+ return toTodoistAccount({
50
+ id: user.id,
51
+ email: user.email,
52
+ authMode: readOnly ? 'read-only' : 'read-write',
53
+ authScope: resolveAuthScope({ readOnly, additionalScopes }),
54
+ authFlags: authFlags.length > 0 ? authFlags : undefined,
55
+ });
56
+ },
57
+ };
58
+ }
59
+ //# sourceMappingURL=auth-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.js","sourceRoot":"","sources":["../../src/lib/auth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAuB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAEvE,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,iBAAiB,GAAG,kCAAkC,CAAA;AAC5D,MAAM,mBAAmB,GAAG,qCAAqC,CAAA;AACjE,MAAM,eAAe,GAAG,wCAAwC,CAAA;AAChE,6EAA6E;AAC7E,+EAA+E;AAC/E,MAAM,yBAAyB,GAC3B,oEAAoE,CAAA;AAExE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB;IACrC,OAAO;QACH,GAAG,kBAAkB,CAAiB;YAClC,YAAY,EAAE,mBAAmB;YACjC,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,iBAAiB;YAC3B,cAAc,EAAE,GAAG;YACnB,gBAAgB,EAAE,yBAAyB;YAC3C,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACjB,8DAA8D;gBAC9D,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;YAC/E,CAAC;YACD,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,KAAqB,EAAE,IAAI,IAAI,EAAE,CAAC;SAC9E,CAAC;QACF,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;YACpC,MAAM,KAAK,GAAI,SAAS,CAAC,KAA6C,IAAI,EAAE,CAAA;YAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YAC5C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;YAEvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;YACzC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAA;YAErC,MAAM,SAAS,GAAe,EAAE,CAAA;YAChC,IAAI,QAAQ;gBAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACzC,SAAS,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;YAEnC,OAAO,gBAAgB,CAAC;gBACpB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBAC/C,SAAS,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;gBAC3D,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAA;QACN,CAAC;KACJ,CAAA;AACL,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { AuthAccount, TokenStore } from '@doist/cli-core/auth';
2
+ import { type TokenStorageResult, type UpsertUserInput } from './auth.js';
3
+ import { type AuthFlag, type AuthMode } from './config.js';
4
+ /**
5
+ * Account shape stored by todoist-cli. Extends cli-core's `AuthAccount` with
6
+ * the Todoist-specific identity + auth-mode metadata that ride alongside the
7
+ * token in the per-user config record.
8
+ */
9
+ export type TodoistAccount = AuthAccount & {
10
+ email: string;
11
+ auth_mode: AuthMode;
12
+ auth_scope?: string;
13
+ auth_flags?: AuthFlag[];
14
+ };
15
+ export type TodoistAccountInput = {
16
+ id: string;
17
+ email: string;
18
+ authMode: AuthMode;
19
+ authScope?: string;
20
+ authFlags?: AuthFlag[];
21
+ };
22
+ /**
23
+ * Single source of truth for the `TodoistAccount` field layout. Used by the
24
+ * auth provider's `validateToken` (post-handshake) and the token-store
25
+ * `active()` adapter (post-read) so the persisted shape stays aligned with
26
+ * what `set()` later disassembles via `accountToUpsertInput`.
27
+ */
28
+ export declare function toTodoistAccount(input: TodoistAccountInput): TodoistAccount;
29
+ /** Inverse of `toTodoistAccount` — feeds the upsert path that owns persistence. */
30
+ export declare function accountToUpsertInput(account: TodoistAccount, token: string): UpsertUserInput;
31
+ /**
32
+ * `TokenStore<TodoistAccount>` adapter that bridges cli-core's auth runtime
33
+ * (which is single-user) to todoist's existing multi-user keyring + config
34
+ * store. `set()` is exercised by `runOAuthFlow` during login; `active()` and
35
+ * `clear()` are wired through for completeness so the public `TokenStore`
36
+ * contract is honoured — per-user reads are still driven from the
37
+ * todoist-local commands (logout, status, token, …).
38
+ *
39
+ * The factory also returns `getLastStorageResult()` so the login command can
40
+ * surface keyring-fallback warnings (`upsertUser` reports them via the
41
+ * `TokenStorageResult` payload that `set()` would otherwise have to swallow,
42
+ * since cli-core's `TokenStore.set` signature is `void`).
43
+ */
44
+ export type TodoistTokenStore = TokenStore<TodoistAccount> & {
45
+ getLastStorageResult(): TokenStorageResult | undefined;
46
+ };
47
+ export declare function createTodoistTokenStore(): TodoistTokenStore;
48
+ //# sourceMappingURL=auth-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../src/lib/auth-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAIH,KAAK,kBAAkB,EAGvB,KAAK,eAAe,EACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAA+B,MAAM,aAAa,CAAA;AAIvF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACzB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAS3E;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAS5F;AAYD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG;IACzD,oBAAoB,IAAI,kBAAkB,GAAG,SAAS,CAAA;CACzD,CAAA;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAoD3D"}
@@ -0,0 +1,91 @@
1
+ import { clearApiToken, loadTokenForStoredUser, NoTokenError, TOKEN_ENV_VAR, upsertUser, } from './auth.js';
2
+ import { readConfig } from './config.js';
3
+ import { SecureStoreUnavailableError } from './secure-store.js';
4
+ import { getDefaultUser, getStoredUsers } from './users.js';
5
+ /**
6
+ * Single source of truth for the `TodoistAccount` field layout. Used by the
7
+ * auth provider's `validateToken` (post-handshake) and the token-store
8
+ * `active()` adapter (post-read) so the persisted shape stays aligned with
9
+ * what `set()` later disassembles via `accountToUpsertInput`.
10
+ */
11
+ export function toTodoistAccount(input) {
12
+ return {
13
+ id: input.id,
14
+ email: input.email,
15
+ label: input.email,
16
+ auth_mode: input.authMode,
17
+ auth_scope: input.authScope,
18
+ auth_flags: input.authFlags,
19
+ };
20
+ }
21
+ /** Inverse of `toTodoistAccount` — feeds the upsert path that owns persistence. */
22
+ export function accountToUpsertInput(account, token) {
23
+ return {
24
+ id: account.id,
25
+ email: account.email,
26
+ token,
27
+ authMode: account.auth_mode,
28
+ authScope: account.auth_scope,
29
+ authFlags: account.auth_flags,
30
+ };
31
+ }
32
+ function storedUserToAccount(user) {
33
+ return toTodoistAccount({
34
+ id: user.id,
35
+ email: user.email,
36
+ authMode: user.auth_mode ?? 'unknown',
37
+ authScope: user.auth_scope,
38
+ authFlags: user.auth_flags,
39
+ });
40
+ }
41
+ export function createTodoistTokenStore() {
42
+ let lastStorageResult;
43
+ return {
44
+ /**
45
+ * Pure view of persisted state. Deliberately ignores the global
46
+ * `--user` selector (a CLI-invocation concern, not storage) and
47
+ * returns `null` when `TODOIST_API_TOKEN` is in play (env tokens
48
+ * don't represent a persisted account). When multiple accounts
49
+ * are stored without a default, returns `null` rather than
50
+ * throwing a selection error — the runtime caller can react to
51
+ * "no active persisted account" but shouldn't see CLI-arg errors
52
+ * leaking out of a store read.
53
+ */
54
+ async active() {
55
+ if (process.env[TOKEN_ENV_VAR])
56
+ return null;
57
+ const config = await readConfig();
58
+ const users = getStoredUsers(config);
59
+ if (users.length === 0)
60
+ return null;
61
+ const target = getDefaultUser(config) ?? (users.length === 1 ? users[0] : null);
62
+ if (!target)
63
+ return null;
64
+ try {
65
+ const { token } = await loadTokenForStoredUser(target);
66
+ return { token, account: storedUserToAccount(target) };
67
+ }
68
+ catch (error) {
69
+ // Token unreachable (no secret, keyring offline) — surface as
70
+ // "no active persisted account" so a `set()` retry can recover
71
+ // without a runtime caller having to special-case storage errors.
72
+ if (error instanceof NoTokenError)
73
+ return null;
74
+ if (error instanceof SecureStoreUnavailableError)
75
+ return null;
76
+ throw error;
77
+ }
78
+ },
79
+ async set(account, token) {
80
+ const { replaced: _replaced, ...result } = await upsertUser(accountToUpsertInput(account, token));
81
+ lastStorageResult = result;
82
+ },
83
+ async clear() {
84
+ await clearApiToken();
85
+ },
86
+ getLastStorageResult() {
87
+ return lastStorageResult;
88
+ },
89
+ };
90
+ }
91
+ //# sourceMappingURL=auth-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/lib/auth-store.ts"],"names":[],"mappings":"AACA,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,YAAY,EAEZ,aAAa,EACb,UAAU,GAEb,MAAM,WAAW,CAAA;AAClB,OAAO,EAAgC,UAAU,EAAmB,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAsB3D;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA0B;IACvD,OAAO;QACH,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,QAAQ;QACzB,UAAU,EAAE,KAAK,CAAC,SAAS;QAC3B,UAAU,EAAE,KAAK,CAAC,SAAS;KAC9B,CAAA;AACL,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAAC,OAAuB,EAAE,KAAa;IACvE,OAAO;QACH,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK;QACL,QAAQ,EAAE,OAAO,CAAC,SAAS;QAC3B,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;KAChC,CAAA;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAgB;IACzC,OAAO,gBAAgB,CAAC;QACpB,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;QACrC,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;KAC7B,CAAC,CAAA;AACN,CAAC;AAmBD,MAAM,UAAU,uBAAuB;IACnC,IAAI,iBAAiD,CAAA;IAErD,OAAO;QACH;;;;;;;;;WASG;QACH,KAAK,CAAC,MAAM;YACR,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBAAE,OAAO,IAAI,CAAA;YAE3C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;YACjC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAEnC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC/E,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAA;YAExB,IAAI,CAAC;gBACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;gBACtD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAA;YAC1D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,8DAA8D;gBAC9D,+DAA+D;gBAC/D,kEAAkE;gBAClE,IAAI,KAAK,YAAY,YAAY;oBAAE,OAAO,IAAI,CAAA;gBAC9C,IAAI,KAAK,YAAY,2BAA2B;oBAAE,OAAO,IAAI,CAAA;gBAC7D,MAAM,KAAK,CAAA;YACf,CAAC;QACL,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK;YACpB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,UAAU,CACvD,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CACvC,CAAA;YACD,iBAAiB,GAAG,MAAM,CAAA;QAC9B,CAAC;QAED,KAAK,CAAC,KAAK;YACP,MAAM,aAAa,EAAE,CAAA;QACzB,CAAC;QAED,oBAAoB;YAChB,OAAO,iBAAiB,CAAA;QAC5B,CAAC;KACJ,CAAA;AACL,CAAC"}
@@ -92,4 +92,8 @@ export declare function clearApiToken(opts?: {
92
92
  export declare function removeUserById(id: string): Promise<TokenStorageResult>;
93
93
  export declare function setDefaultUserId(id: string): Promise<void>;
94
94
  export declare function listStoredUsers(): Promise<StoredUser[]>;
95
+ export declare function loadTokenForStoredUser(user: StoredUser): Promise<{
96
+ token: string;
97
+ source: 'secure-store' | 'config-file';
98
+ }>;
95
99
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,GACrB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAKH,KAAK,QAAQ,EACb,KAAK,QAAQ,EAEb,KAAK,UAAU,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAatC,eAAO,MAAM,aAAa,sBAAsB,CAAA;AAEhD,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,MAAM,EAAE,KAAK,GAAG,cAAc,GAAG,aAAa,CAAA;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACzB;AAED,qBAAa,YAAa,SAAQ,QAAQ;;CAUzC;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,aAAa,CAAA;AAEjE,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAkE1F;AAED;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAGnD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,CAMxF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAe7D;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC5B,KAAK,EAAE,eAAe,GACvB,OAAO,CAAC,kBAAkB,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CA0ErD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmC5F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyB5E;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAG7D"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
package/dist/lib/auth.js CHANGED
@@ -295,7 +295,7 @@ export async function listStoredUsers() {
295
295
  // ---------------------------------------------------------------------------
296
296
  // Internal helpers
297
297
  // ---------------------------------------------------------------------------
298
- async function loadTokenForStoredUser(user) {
298
+ export async function loadTokenForStoredUser(user) {
299
299
  if (user.api_token?.trim()) {
300
300
  return { token: user.api_token.trim(), source: 'config-file' };
301
301
  }