@doist/outline-cli 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/commands/auth.js +32 -138
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/changelog.d.ts +1 -6
- package/dist/commands/changelog.js +8 -88
- package/dist/commands/changelog.js.map +1 -1
- package/dist/commands/document.js +3 -3
- package/dist/commands/document.js.map +1 -1
- package/dist/commands/search.js +16 -11
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/update/index.d.ts +1 -1
- package/dist/commands/update/index.js +11 -14
- package/dist/commands/update/index.js.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +5 -1
- package/dist/lib/api.js +9 -7
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/auth-pages.d.ts +2 -0
- package/dist/lib/auth-pages.js +101 -0
- package/dist/lib/auth-pages.js.map +1 -0
- package/dist/lib/auth-provider.d.ts +10 -0
- package/dist/lib/auth-provider.js +198 -0
- package/dist/lib/auth-provider.js.map +1 -0
- package/dist/lib/auth.d.ts +15 -6
- package/dist/lib/auth.js +28 -42
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/config.d.ts +18 -0
- package/dist/lib/config.js +20 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/errors.d.ts +8 -0
- package/dist/lib/errors.js +9 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/global-args.d.ts +5 -0
- package/dist/lib/global-args.js +17 -0
- package/dist/lib/global-args.js.map +1 -0
- package/dist/lib/markdown.d.ts +2 -1
- package/dist/lib/markdown.js +10 -5
- package/dist/lib/markdown.js.map +1 -1
- package/dist/lib/output.d.ts +9 -5
- package/dist/lib/output.js +29 -11
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/skills/content.d.ts +1 -1
- package/dist/lib/skills/content.js +10 -3
- package/dist/lib/skills/content.js.map +1 -1
- package/dist/lib/spinner.d.ts +2 -13
- package/dist/lib/spinner.js +4 -55
- package/dist/lib/spinner.js.map +1 -1
- package/package.json +6 -6
- package/dist/commands/update/action.d.ts +0 -4
- package/dist/commands/update/action.js +0 -157
- package/dist/commands/update/action.js.map +0 -1
- package/dist/commands/update/switch.d.ts +0 -4
- package/dist/commands/update/switch.js +0 -29
- package/dist/commands/update/switch.js.map +0 -1
- package/dist/lib/oauth-server.d.ts +0 -14
- package/dist/lib/oauth-server.js +0 -203
- package/dist/lib/oauth-server.js.map +0 -1
- package/dist/lib/oauth.d.ts +0 -17
- package/dist/lib/oauth.js +0 -42
- package/dist/lib/oauth.js.map +0 -1
- package/dist/lib/pkce.d.ts +0 -3
- package/dist/lib/pkce.js +0 -16
- package/dist/lib/pkce.js.map +0 -1
- package/dist/lib/update-config.d.ts +0 -3
- package/dist/lib/update-config.js +0 -35
- package/dist/lib/update-config.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.6.0](https://github.com/Doist/outline-cli/compare/v1.5.3...v1.6.0) (2026-05-15)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **auth:** adopt cli-core 0.12.0 multi-user TokenStore shape ([#71](https://github.com/Doist/outline-cli/issues/71)) ([53487b7](https://github.com/Doist/outline-cli/commit/53487b707b9a980c401ef19b3e37c08299aa6abe))
|
|
6
|
+
|
|
7
|
+
## [1.5.3](https://github.com/Doist/outline-cli/compare/v1.5.2...v1.5.3) (2026-05-11)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* `ol --version` shows the wrong version ([#60](https://github.com/Doist/outline-cli/issues/60)) ([3ed8b10](https://github.com/Doist/outline-cli/commit/3ed8b10d19d727c131b87b2dc6939b5ab0b04a09))
|
|
12
|
+
|
|
1
13
|
## [1.5.2](https://github.com/Doist/outline-cli/compare/v1.5.1...v1.5.2) (2026-05-09)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
package/dist/commands/auth.js
CHANGED
|
@@ -1,157 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { attachLoginCommand } from '@doist/cli-core/auth';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
-
import open from 'open';
|
|
4
3
|
import { apiRequest } from '../lib/api.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { renderError, renderSuccess } from '../lib/auth-pages.js';
|
|
5
|
+
import { createOutlineAuthProvider, createOutlineTokenStore } from '../lib/auth-provider.js';
|
|
6
|
+
import { clearConfig, getBaseUrl, getTokenSource } from '../lib/auth.js';
|
|
8
7
|
import { formatError } from '../lib/output.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
finally {
|
|
16
|
-
rl.close();
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function parseCallbackPort(rawPort) {
|
|
20
|
-
const parsed = Number(rawPort);
|
|
8
|
+
const DEFAULT_OAUTH_CALLBACK_PORT = 54969;
|
|
9
|
+
function resolvePreferredCallbackPort() {
|
|
10
|
+
const raw = process.env.OUTLINE_OAUTH_CALLBACK_PORT?.trim();
|
|
11
|
+
if (!raw)
|
|
12
|
+
return DEFAULT_OAUTH_CALLBACK_PORT;
|
|
13
|
+
const parsed = Number(raw);
|
|
21
14
|
if (!Number.isInteger(parsed) || parsed < 1 || parsed > 65_535) {
|
|
22
|
-
return
|
|
15
|
+
return DEFAULT_OAUTH_CALLBACK_PORT;
|
|
23
16
|
}
|
|
24
17
|
return parsed;
|
|
25
18
|
}
|
|
26
19
|
export function registerAuthCommand(program) {
|
|
27
20
|
const auth = program.command('auth').description('Manage authentication');
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
const provider = createOutlineAuthProvider();
|
|
22
|
+
const store = createOutlineTokenStore();
|
|
23
|
+
attachLoginCommand(auth, {
|
|
24
|
+
provider,
|
|
25
|
+
store,
|
|
26
|
+
preferredPort: resolvePreferredCallbackPort(),
|
|
27
|
+
resolveScopes: () => [],
|
|
28
|
+
renderSuccess,
|
|
29
|
+
renderError,
|
|
30
|
+
onSuccess({ view, account }) {
|
|
31
|
+
if (view.json || view.ndjson)
|
|
32
|
+
return;
|
|
33
|
+
console.log(chalk.green(`Authenticated to ${account.teamName} as ${account.label}`));
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
.description('Authenticate with an Outline instance via OAuth')
|
|
31
37
|
.option('--base-url <url>', 'Outline base URL to use for this login (saved for future logins)')
|
|
32
|
-
.option('--client-id <clientId>', 'OAuth client ID to use for this login (saved for future logins)')
|
|
33
|
-
.option('--callback-port <port>', `Local OAuth callback port (default: ${DEFAULT_OAUTH_CALLBACK_PORT})`)
|
|
34
|
-
.action(async (options) => {
|
|
35
|
-
const configuredBaseUrl = getBaseUrl();
|
|
36
|
-
const optionBaseUrl = options.baseUrl?.trim();
|
|
37
|
-
const envBaseUrl = process.env.OUTLINE_URL?.trim();
|
|
38
|
-
let url = optionBaseUrl || envBaseUrl;
|
|
39
|
-
if (!url) {
|
|
40
|
-
const baseUrlInput = await prompt(`Base URL (default: ${configuredBaseUrl}): `);
|
|
41
|
-
url = baseUrlInput.trim() || configuredBaseUrl;
|
|
42
|
-
}
|
|
43
|
-
url = url.replace(/\/$/, '');
|
|
44
|
-
const optionClientId = options.clientId?.trim();
|
|
45
|
-
const optionCallbackPort = options.callbackPort?.trim();
|
|
46
|
-
const envCallbackPort = process.env.OUTLINE_OAUTH_CALLBACK_PORT?.trim();
|
|
47
|
-
const rawCallbackPort = optionCallbackPort || envCallbackPort;
|
|
48
|
-
let callbackPort = DEFAULT_OAUTH_CALLBACK_PORT;
|
|
49
|
-
if (rawCallbackPort) {
|
|
50
|
-
const parsedPort = parseCallbackPort(rawCallbackPort);
|
|
51
|
-
if (!parsedPort) {
|
|
52
|
-
console.error(formatError('OAUTH_CALLBACK_PORT_INVALID', `Invalid callback port: ${rawCallbackPort}`, [
|
|
53
|
-
'Use an integer between 1 and 65535',
|
|
54
|
-
'Set via --callback-port or OUTLINE_OAUTH_CALLBACK_PORT',
|
|
55
|
-
]));
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
callbackPort = parsedPort;
|
|
59
|
-
}
|
|
60
|
-
if (options.token) {
|
|
61
|
-
saveConfig(options.token.trim(), url, optionClientId);
|
|
62
|
-
try {
|
|
63
|
-
const { data } = await apiRequest('auth.info');
|
|
64
|
-
console.log(chalk.green(`Authenticated to ${data.team.name} as ${data.user.name}`));
|
|
65
|
-
}
|
|
66
|
-
catch (err) {
|
|
67
|
-
console.log(chalk.yellow('Token saved, but could not verify:'), err.message);
|
|
68
|
-
}
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const existingClientId = getOAuthClientId();
|
|
72
|
-
let clientId = optionClientId || existingClientId;
|
|
73
|
-
if (!clientId) {
|
|
74
|
-
const clientIdInput = await prompt('OAuth Client ID: ');
|
|
75
|
-
clientId = clientIdInput.trim();
|
|
76
|
-
}
|
|
77
|
-
if (!clientId) {
|
|
78
|
-
console.error(formatError('OAUTH_CLIENT_ID_REQUIRED', 'OAuth client ID is required.', [
|
|
79
|
-
'Create a public OAuth app in Outline settings',
|
|
80
|
-
'Use --client-id <id> for this login',
|
|
81
|
-
'Set OUTLINE_OAUTH_CLIENT_ID or enter it here',
|
|
82
|
-
]));
|
|
83
|
-
process.exit(1);
|
|
84
|
-
}
|
|
85
|
-
const codeVerifier = generateCodeVerifier();
|
|
86
|
-
const codeChallenge = generateCodeChallenge(codeVerifier);
|
|
87
|
-
const state = generateState();
|
|
88
|
-
let callbackServer;
|
|
89
|
-
try {
|
|
90
|
-
callbackServer = await startOAuthCallbackServer({
|
|
91
|
-
state,
|
|
92
|
-
port: callbackPort,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
const error = err;
|
|
97
|
-
const hints = [
|
|
98
|
-
`Ensure http://localhost:${callbackPort}/callback is reachable from your browser`,
|
|
99
|
-
"Re-run with 'ol auth login --token <token>' for manual auth",
|
|
100
|
-
];
|
|
101
|
-
if (error.code === 'EADDRINUSE') {
|
|
102
|
-
hints.unshift(`Port ${callbackPort} is already in use. Close the other process using it.`);
|
|
103
|
-
}
|
|
104
|
-
console.error(formatError('OAUTH_CALLBACK_SERVER_FAILED', `Could not start local OAuth callback server: ${error.message}`, hints));
|
|
105
|
-
process.exit(1);
|
|
106
|
-
}
|
|
107
|
-
const authorizationUrl = buildAuthorizationUrl({
|
|
108
|
-
baseUrl: url,
|
|
109
|
-
clientId,
|
|
110
|
-
redirectUri: callbackServer.redirectUri,
|
|
111
|
-
codeChallenge,
|
|
112
|
-
state,
|
|
113
|
-
});
|
|
114
|
-
try {
|
|
115
|
-
await open(authorizationUrl);
|
|
116
|
-
}
|
|
117
|
-
catch (err) {
|
|
118
|
-
console.log(chalk.yellow('Could not open browser automatically.'), chalk.dim(authorizationUrl));
|
|
119
|
-
console.log(chalk.dim(err.message));
|
|
120
|
-
}
|
|
121
|
-
console.log(chalk.dim('Waiting for OAuth authorization...'));
|
|
122
|
-
try {
|
|
123
|
-
const code = await callbackServer.waitForCode;
|
|
124
|
-
const token = await exchangeCodeForToken({
|
|
125
|
-
baseUrl: url,
|
|
126
|
-
clientId,
|
|
127
|
-
redirectUri: callbackServer.redirectUri,
|
|
128
|
-
codeVerifier,
|
|
129
|
-
code,
|
|
130
|
-
});
|
|
131
|
-
saveConfig(token, url, clientId);
|
|
132
|
-
const { data } = await apiRequest('auth.info');
|
|
133
|
-
console.log(chalk.green(`Authenticated to ${data.team.name} as ${data.user.name}`));
|
|
134
|
-
}
|
|
135
|
-
catch (err) {
|
|
136
|
-
callbackServer.close();
|
|
137
|
-
console.error(formatError('OAUTH_LOGIN_FAILED', `OAuth login failed: ${err.message}`, [
|
|
138
|
-
'Confirm the OAuth app redirect URI matches the CLI callback',
|
|
139
|
-
'Verify --base-url or OUTLINE_URL points to your Outline instance',
|
|
140
|
-
"Re-run with 'ol auth login --token' for manual auth",
|
|
141
|
-
]));
|
|
142
|
-
process.exit(1);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
38
|
+
.option('--client-id <clientId>', 'OAuth client ID to use for this login (saved for future logins)');
|
|
145
39
|
auth.command('status')
|
|
146
40
|
.description('Show current authentication state')
|
|
147
41
|
.action(async () => {
|
|
148
|
-
const source = getTokenSource();
|
|
42
|
+
const source = await getTokenSource();
|
|
149
43
|
if (!source) {
|
|
150
44
|
console.log(chalk.yellow('Not authenticated. Run: ol auth login'));
|
|
151
45
|
return;
|
|
152
46
|
}
|
|
153
47
|
console.log(chalk.dim(`Token source: ${source}`));
|
|
154
|
-
console.log(chalk.dim(`Base URL: ${getBaseUrl()}`));
|
|
48
|
+
console.log(chalk.dim(`Base URL: ${await getBaseUrl()}`));
|
|
155
49
|
try {
|
|
156
50
|
const { data } = await apiRequest('auth.info');
|
|
157
51
|
console.log(`Team: ${chalk.bold(data.team.name)}`);
|
|
@@ -168,8 +62,8 @@ export function registerAuthCommand(program) {
|
|
|
168
62
|
});
|
|
169
63
|
auth.command('logout')
|
|
170
64
|
.description('Clear saved authentication')
|
|
171
|
-
.action(() => {
|
|
172
|
-
clearConfig();
|
|
65
|
+
.action(async () => {
|
|
66
|
+
await clearConfig();
|
|
173
67
|
console.log('Logged out.');
|
|
174
68
|
});
|
|
175
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
interface ChangelogOptions {
|
|
3
|
-
count: string;
|
|
4
|
-
}
|
|
5
|
-
export declare function changelogAction(options: ChangelogOptions): Promise<void>;
|
|
1
|
+
import type { Command } from 'commander';
|
|
6
2
|
export declare function registerChangelogCommand(program: Command): void;
|
|
7
|
-
export {};
|
|
@@ -1,95 +1,15 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
1
|
import { dirname, join } from 'node:path';
|
|
3
2
|
import { fileURLToPath } from 'node:url';
|
|
4
|
-
import
|
|
3
|
+
import { registerChangelogCommand as registerCoreChangelogCommand } from '@doist/cli-core/commands';
|
|
5
4
|
import packageJson from '../../package.json' with { type: 'json' };
|
|
6
5
|
const CHANGELOG_PATH = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'CHANGELOG.md');
|
|
7
|
-
const
|
|
8
|
-
function formatInline(text) {
|
|
9
|
-
return text
|
|
10
|
-
.replace(/\*\*([^*]+)\*\*/g, (_, content) => chalk.bold(content))
|
|
11
|
-
.replace(/`([^`]+)`/g, (_, code) => chalk.cyan(code));
|
|
12
|
-
}
|
|
13
|
-
function formatForTerminal(text) {
|
|
14
|
-
return text
|
|
15
|
-
.split('\n')
|
|
16
|
-
.map((line) => {
|
|
17
|
-
// Version headers: ## 1.25.0 (date) → bold green
|
|
18
|
-
if (line.startsWith('## ')) {
|
|
19
|
-
return chalk.green.bold(line.slice(3));
|
|
20
|
-
}
|
|
21
|
-
// Section headers: ### Features → bold
|
|
22
|
-
if (line.startsWith('### ')) {
|
|
23
|
-
return chalk.bold(line.slice(4));
|
|
24
|
-
}
|
|
25
|
-
// Bullet items: * or - description → dimmed bullet + text
|
|
26
|
-
if (line.startsWith('* ')) {
|
|
27
|
-
return ` ${chalk.dim('•')} ${formatInline(line.slice(2))}`;
|
|
28
|
-
}
|
|
29
|
-
if (line.startsWith('- ')) {
|
|
30
|
-
return ` ${chalk.dim('•')} ${formatInline(line.slice(2))}`;
|
|
31
|
-
}
|
|
32
|
-
return formatInline(line);
|
|
33
|
-
})
|
|
34
|
-
.join('\n');
|
|
35
|
-
}
|
|
36
|
-
function cleanChangelog(text) {
|
|
37
|
-
return (text
|
|
38
|
-
// Version headers: ## [1.25.0](https://...) (date) → ## 1.25.0 (date)
|
|
39
|
-
.replace(/## \[([^\]]+)\]\([^)]*\)/g, '## $1')
|
|
40
|
-
// Remove commit hash links: ([abc1234](https://...))
|
|
41
|
-
.replace(/ \([a-f0-9]{7}\)/g, '')
|
|
42
|
-
.replace(/ \(\[[a-f0-9]{7}\]\([^)]*\)\)/g, '')
|
|
43
|
-
// Issue/PR links: [#151](https://...) → #151
|
|
44
|
-
.replace(/\[#(\d+)\]\([^)]*\)/g, '#$1')
|
|
45
|
-
// Remove **deps:** dependency update lines (not useful to end users)
|
|
46
|
-
.replace(/^[*-] \*\*deps:\*\*.*$/gm, '')
|
|
47
|
-
// Remove **scope:** prefixes but keep the text: **task:** foo → foo
|
|
48
|
-
.replace(/\*\*[\w-]+:\*\* /g, '')
|
|
49
|
-
// Clean up blank lines left by removed dep lines
|
|
50
|
-
.replace(/\n{3,}/g, '\n\n')
|
|
51
|
-
// Remove section headers left empty after filtering (e.g. ### Bug Fixes with no items)
|
|
52
|
-
.replace(/### [\w ]+\n\n(?=#|$)/gm, ''));
|
|
53
|
-
}
|
|
54
|
-
function parseChangelog(content, count) {
|
|
55
|
-
const sections = content.split(/\n(?=## (?:\d|\[))/);
|
|
56
|
-
const versionSections = sections.filter((s) => /^## (?:\d|\[)/.test(s));
|
|
57
|
-
const selected = versionSections.slice(0, count);
|
|
58
|
-
if (selected.length === 0) {
|
|
59
|
-
return { text: 'No changelog entries found.', hasMore: false };
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
text: cleanChangelog(selected.join('\n').trimEnd()),
|
|
63
|
-
hasMore: versionSections.length > count,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
export async function changelogAction(options) {
|
|
67
|
-
const count = Number(options.count);
|
|
68
|
-
if (!Number.isInteger(count) || count < 1) {
|
|
69
|
-
console.error(chalk.red('Error:'), 'Count must be a positive number');
|
|
70
|
-
process.exitCode = 1;
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
let content;
|
|
74
|
-
try {
|
|
75
|
-
content = await readFile(CHANGELOG_PATH, 'utf-8');
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
console.error(chalk.red('Error:'), 'Could not read changelog file');
|
|
79
|
-
process.exitCode = 1;
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const { text, hasMore } = parseChangelog(content, count);
|
|
83
|
-
console.log(formatForTerminal(text));
|
|
84
|
-
if (hasMore) {
|
|
85
|
-
console.log(chalk.dim(`\nView full changelog: ${CHANGELOG_URL}`));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
6
|
+
const REPO_URL = packageJson.repository.url.replace(/^git\+/, '').replace(/\.git$/, '');
|
|
88
7
|
export function registerChangelogCommand(program) {
|
|
89
|
-
program
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
.
|
|
93
|
-
|
|
8
|
+
registerCoreChangelogCommand(program, {
|
|
9
|
+
path: CHANGELOG_PATH,
|
|
10
|
+
repoUrl: REPO_URL,
|
|
11
|
+
version: packageJson.version,
|
|
12
|
+
bulletMarkers: ['*', '-'],
|
|
13
|
+
});
|
|
94
14
|
}
|
|
95
15
|
//# sourceMappingURL=changelog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/commands/changelog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/commands/changelog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,wBAAwB,IAAI,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AAEnG,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAElE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;AAChG,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAEvF,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACrD,4BAA4B,CAAC,OAAO,EAAE;QAClC,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;KAC5B,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -55,7 +55,7 @@ export function registerDocumentCommand(program) {
|
|
|
55
55
|
body.collectionId = await resolveCollectionId(opts.collection);
|
|
56
56
|
}
|
|
57
57
|
const { data, pagination } = await apiRequest('documents.list', body);
|
|
58
|
-
outputList(data, formatDoc, essentialKeys, getOutputOptions(opts), pagination);
|
|
58
|
+
outputList(data, formatDoc, essentialKeys, getOutputOptions(opts), pagination, 'No documents found.');
|
|
59
59
|
});
|
|
60
60
|
doc.command('get <id>')
|
|
61
61
|
.description('Get a document by ID, URL, or name')
|
|
@@ -81,14 +81,14 @@ export function registerDocumentCommand(program) {
|
|
|
81
81
|
}
|
|
82
82
|
else {
|
|
83
83
|
const content = formatDocFull(data);
|
|
84
|
-
console.log(opts.raw ? content : renderMarkdown(content));
|
|
84
|
+
console.log(opts.raw ? content : await renderMarkdown(content));
|
|
85
85
|
}
|
|
86
86
|
});
|
|
87
87
|
doc.command('open <id>')
|
|
88
88
|
.description('Open a document in the browser')
|
|
89
89
|
.action(async (id) => {
|
|
90
90
|
const resolved = await resolveDocumentRef(id);
|
|
91
|
-
const fullUrl = `${getBaseUrl()}${resolved.url}`;
|
|
91
|
+
const fullUrl = `${await getBaseUrl()}${resolved.url}`;
|
|
92
92
|
await open(fullUrl);
|
|
93
93
|
console.log(chalk.dim(`Opened: ${fullUrl}`));
|
|
94
94
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/commands/document.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/search.js
CHANGED
|
@@ -3,17 +3,19 @@ import { apiRequest } from '../lib/api.js';
|
|
|
3
3
|
import { getBaseUrl } from '../lib/auth.js';
|
|
4
4
|
import { getOutputOptions, outputList } from '../lib/output.js';
|
|
5
5
|
const essentialKeys = ['document', 'context'];
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
function makeFormatResult(baseUrl) {
|
|
7
|
+
return (result) => {
|
|
8
|
+
const { document, context } = result;
|
|
9
|
+
const title = chalk.bold(document.title);
|
|
10
|
+
const id = chalk.dim(document.urlId);
|
|
11
|
+
const link = chalk.dim(`${baseUrl}${document.url}`);
|
|
12
|
+
const snippet = context
|
|
13
|
+
.replace(/<b>(.*?)<\/b>/g, (_, m) => chalk.bold(m))
|
|
14
|
+
.replace(/<\/?b>/g, '')
|
|
15
|
+
.trim()
|
|
16
|
+
.slice(0, 120);
|
|
17
|
+
return `${title} ${id}\n ${link}\n ${chalk.dim(snippet)}\n`;
|
|
18
|
+
};
|
|
17
19
|
}
|
|
18
20
|
export function registerSearchCommand(program) {
|
|
19
21
|
program
|
|
@@ -36,6 +38,9 @@ export function registerSearchCommand(program) {
|
|
|
36
38
|
body.statusFilter = [opts.status];
|
|
37
39
|
const { data, pagination } = await apiRequest('documents.search', body);
|
|
38
40
|
const outputOpts = getOutputOptions(opts);
|
|
41
|
+
const formatResult = outputOpts.json || outputOpts.ndjson
|
|
42
|
+
? () => ''
|
|
43
|
+
: makeFormatResult(await getBaseUrl());
|
|
39
44
|
outputList(data, formatResult, essentialKeys, outputOpts, pagination);
|
|
40
45
|
});
|
|
41
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAc/D,MAAM,aAAa,GAA2B,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAErE,SAAS,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAc/D,MAAM,aAAa,GAA2B,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAErE,SAAS,gBAAgB,CAAC,OAAe;IACrC,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,OAAO;aAClB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAClD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;aACtB,IAAI,EAAE;aACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClB,OAAO,GAAG,KAAK,IAAI,EAAE,OAAO,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;IACjE,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,OAAO;SACF,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SACtD,MAAM,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC;SACnC,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAI,EAAE,EAAE;QAClC,MAAM,IAAI,GAA4B;YAClC,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SAC5B,CAAA;QACD,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAA;QACxD,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAElD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,UAAU,CAAiB,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAEvF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,YAAY,GACd,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM;YAChC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE;YACV,CAAC,CAAC,gBAAgB,CAAC,MAAM,UAAU,EAAE,CAAC,CAAA;QAC9C,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IACzE,CAAC,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
2
|
export declare function registerUpdateCommand(program: Command): void;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
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
|
-
|
|
5
|
-
.
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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: 'ol 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":"
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
+
import packageJson from '../package.json' with { type: 'json' };
|
|
3
4
|
import { registerAuthCommand } from './commands/auth.js';
|
|
4
5
|
import { registerChangelogCommand } from './commands/changelog.js';
|
|
5
6
|
import { registerCollectionCommand } from './commands/collection.js';
|
|
@@ -7,12 +8,16 @@ import { registerDocumentCommand } from './commands/document.js';
|
|
|
7
8
|
import { registerSearchCommand } from './commands/search.js';
|
|
8
9
|
import { registerSkillCommand } from './commands/skill.js';
|
|
9
10
|
import { registerUpdateCommand } from './commands/update/index.js';
|
|
11
|
+
import { BaseCliError } from './lib/errors.js';
|
|
12
|
+
import { isJsonMode } from './lib/global-args.js';
|
|
13
|
+
import { formatError, formatErrorJson } from './lib/output.js';
|
|
10
14
|
const program = new Command();
|
|
11
15
|
program
|
|
12
16
|
.name('ol')
|
|
13
|
-
.version(
|
|
17
|
+
.version(packageJson.version)
|
|
14
18
|
.description('CLI for the Outline wiki/knowledge base API')
|
|
15
19
|
.option('--no-spinner', 'Disable loading animations')
|
|
20
|
+
.option('--accessible', 'Render output in screen-reader-friendly mode')
|
|
16
21
|
.addHelpText('after', `
|
|
17
22
|
Note for AI/LLM agents:
|
|
18
23
|
Use --json or --ndjson flags for unambiguous, parseable output.
|
|
@@ -25,7 +30,12 @@ registerSkillCommand(program);
|
|
|
25
30
|
registerChangelogCommand(program);
|
|
26
31
|
registerUpdateCommand(program);
|
|
27
32
|
program.parseAsync().catch((err) => {
|
|
28
|
-
|
|
33
|
+
if (err instanceof BaseCliError) {
|
|
34
|
+
console.error(isJsonMode() ? formatErrorJson(err) : formatError(err));
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
console.error(err.message);
|
|
38
|
+
}
|
|
29
39
|
process.exit(1);
|
|
30
40
|
});
|
|
31
41
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACF,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,cAAc,EAAE,4BAA4B,CAAC;KACpD,MAAM,CAAC,cAAc,EAAE,8CAA8C,CAAC;KACtE,WAAW,CACR,OAAO,EACP;;;kEAG0D,CAC7D,CAAA;AAEL,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,yBAAyB,CAAC,OAAO,CAAC,CAAA;AAClC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,wBAAwB,CAAC,OAAO,CAAC,CAAA;AACjC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAE9B,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACtC,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,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA"}
|
package/dist/lib/api.d.ts
CHANGED
|
@@ -7,8 +7,12 @@ export interface PaginatedResult<T> {
|
|
|
7
7
|
data: T;
|
|
8
8
|
pagination?: Pagination;
|
|
9
9
|
}
|
|
10
|
+
export type ApiRequestOverrides = {
|
|
11
|
+
token?: string;
|
|
12
|
+
baseUrl?: string;
|
|
13
|
+
};
|
|
10
14
|
/**
|
|
11
15
|
* Public API request function that wraps rawApiRequest with automatic spinners.
|
|
12
16
|
* Spinner messages are configured per API path in API_SPINNER_CONFIG.
|
|
13
17
|
*/
|
|
14
|
-
export declare function apiRequest<T>(path: string, body?: object): Promise<PaginatedResult<T>>;
|
|
18
|
+
export declare function apiRequest<T>(path: string, body?: object, overrides?: ApiRequestOverrides): Promise<PaginatedResult<T>>;
|