@doist/todoist-cli 1.29.4 → 1.30.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/__mocks__/chalk.d.ts +3 -0
- package/dist/__mocks__/chalk.d.ts.map +1 -0
- package/dist/__mocks__/chalk.js +8 -0
- package/dist/__mocks__/chalk.js.map +1 -0
- package/dist/commands/activity.d.ts +3 -0
- package/dist/commands/activity.d.ts.map +1 -0
- package/dist/commands/activity.js +267 -0
- package/dist/commands/activity.js.map +1 -0
- package/dist/commands/add.d.ts +3 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +36 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/attachment.d.ts +3 -0
- package/dist/commands/attachment.d.ts.map +1 -0
- package/dist/commands/attachment.js +156 -0
- package/dist/commands/attachment.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +124 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/changelog.d.ts +8 -0
- package/dist/commands/changelog.d.ts.map +1 -0
- package/dist/commands/changelog.js +92 -0
- package/dist/commands/changelog.js.map +1 -0
- package/dist/commands/comment.d.ts +3 -0
- package/dist/commands/comment.d.ts.map +1 -0
- package/dist/commands/comment.js +301 -0
- package/dist/commands/comment.js.map +1 -0
- package/dist/commands/completed.d.ts +3 -0
- package/dist/commands/completed.d.ts.map +1 -0
- package/dist/commands/completed.js +107 -0
- package/dist/commands/completed.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +107 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/filter.d.ts +5 -0
- package/dist/commands/filter.d.ts.map +1 -0
- package/dist/commands/filter.js +287 -0
- package/dist/commands/filter.js.map +1 -0
- package/dist/commands/inbox.d.ts +3 -0
- package/dist/commands/inbox.d.ts.map +1 -0
- package/dist/commands/inbox.js +25 -0
- package/dist/commands/inbox.js.map +1 -0
- package/dist/commands/label.d.ts +5 -0
- package/dist/commands/label.d.ts.map +1 -0
- package/dist/commands/label.js +328 -0
- package/dist/commands/label.js.map +1 -0
- package/dist/commands/notification.d.ts +3 -0
- package/dist/commands/notification.d.ts.map +1 -0
- package/dist/commands/notification.js +274 -0
- package/dist/commands/notification.js.map +1 -0
- package/dist/commands/project.d.ts +7 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +714 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/reminder.d.ts +3 -0
- package/dist/commands/reminder.d.ts.map +1 -0
- package/dist/commands/reminder.js +271 -0
- package/dist/commands/reminder.js.map +1 -0
- package/dist/commands/section.d.ts +3 -0
- package/dist/commands/section.d.ts.map +1 -0
- package/dist/commands/section.js +216 -0
- package/dist/commands/section.js.map +1 -0
- package/dist/commands/settings.d.ts +12 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +312 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/commands/skill.d.ts +3 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +127 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/stats.d.ts +3 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +151 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/task.d.ts +5 -0
- package/dist/commands/task.d.ts.map +1 -0
- package/dist/commands/task.js +559 -0
- package/dist/commands/task.js.map +1 -0
- package/dist/commands/today.d.ts +18 -0
- package/dist/commands/today.d.ts.map +1 -0
- package/dist/commands/today.js +108 -0
- package/dist/commands/today.js.map +1 -0
- package/dist/commands/upcoming.d.ts +17 -0
- package/dist/commands/upcoming.d.ts.map +1 -0
- package/dist/commands/upcoming.js +129 -0
- package/dist/commands/upcoming.js.map +1 -0
- package/dist/commands/update.d.ts +6 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +90 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/view.d.ts +3 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +79 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/workspace.d.ts +3 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +309 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +176 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api/core.d.ts +13 -0
- package/dist/lib/api/core.d.ts.map +1 -0
- package/dist/lib/api/core.js +176 -0
- package/dist/lib/api/core.js.map +1 -0
- package/dist/lib/api/filters.d.ts +19 -0
- package/dist/lib/api/filters.d.ts.map +1 -0
- package/dist/lib/api/filters.js +60 -0
- package/dist/lib/api/filters.js.map +1 -0
- package/dist/lib/api/notifications.d.ts +33 -0
- package/dist/lib/api/notifications.d.ts.map +1 -0
- package/dist/lib/api/notifications.js +94 -0
- package/dist/lib/api/notifications.js.map +1 -0
- package/dist/lib/api/reminders.d.ts +30 -0
- package/dist/lib/api/reminders.d.ts.map +1 -0
- package/dist/lib/api/reminders.js +65 -0
- package/dist/lib/api/reminders.js.map +1 -0
- package/dist/lib/api/stats.d.ts +41 -0
- package/dist/lib/api/stats.d.ts.map +1 -0
- package/dist/lib/api/stats.js +74 -0
- package/dist/lib/api/stats.js.map +1 -0
- package/dist/lib/api/uploads.d.ts +10 -0
- package/dist/lib/api/uploads.d.ts.map +1 -0
- package/dist/lib/api/uploads.js +31 -0
- package/dist/lib/api/uploads.js.map +1 -0
- package/dist/lib/api/user-settings.d.ts +34 -0
- package/dist/lib/api/user-settings.d.ts.map +1 -0
- package/dist/lib/api/user-settings.js +58 -0
- package/dist/lib/api/user-settings.js.map +1 -0
- package/dist/lib/api/workspaces.d.ts +23 -0
- package/dist/lib/api/workspaces.d.ts.map +1 -0
- package/dist/lib/api/workspaces.js +61 -0
- package/dist/lib/api/workspaces.js.map +1 -0
- package/dist/lib/auth.d.ts +14 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +182 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/browser.d.ts +2 -0
- package/dist/lib/browser.d.ts.map +1 -0
- package/dist/lib/browser.js +6 -0
- package/dist/lib/browser.js.map +1 -0
- package/dist/lib/collaborators.d.ts +29 -0
- package/dist/lib/collaborators.d.ts.map +1 -0
- package/dist/lib/collaborators.js +184 -0
- package/dist/lib/collaborators.js.map +1 -0
- package/dist/lib/completion.d.ts +41 -0
- package/dist/lib/completion.d.ts.map +1 -0
- package/dist/lib/completion.js +191 -0
- package/dist/lib/completion.js.map +1 -0
- package/dist/lib/dates.d.ts +16 -0
- package/dist/lib/dates.d.ts.map +1 -0
- package/dist/lib/dates.js +45 -0
- package/dist/lib/dates.js.map +1 -0
- package/dist/lib/duration.d.ts +14 -0
- package/dist/lib/duration.d.ts.map +1 -0
- package/dist/lib/duration.js +58 -0
- package/dist/lib/duration.js.map +1 -0
- package/dist/lib/logger.d.ts +42 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +227 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/markdown.d.ts +3 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +22 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/oauth-server.d.ts +6 -0
- package/dist/lib/oauth-server.d.ts.map +1 -0
- package/dist/lib/oauth-server.js +773 -0
- package/dist/lib/oauth-server.js.map +1 -0
- package/dist/lib/oauth.d.ts +3 -0
- package/dist/lib/oauth.d.ts.map +1 -0
- package/dist/lib/oauth.js +38 -0
- package/dist/lib/oauth.js.map +1 -0
- package/dist/lib/options.d.ts +16 -0
- package/dist/lib/options.d.ts.map +1 -0
- package/dist/lib/options.js +2 -0
- package/dist/lib/options.js.map +1 -0
- package/dist/lib/output.d.ts +39 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +311 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/pagination.d.ts +23 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +26 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/lib/pkce.d.ts +4 -0
- package/dist/lib/pkce.d.ts.map +1 -0
- package/dist/lib/pkce.js +19 -0
- package/dist/lib/pkce.js.map +1 -0
- package/dist/lib/progress.d.ts +29 -0
- package/dist/lib/progress.d.ts.map +1 -0
- package/dist/lib/progress.js +101 -0
- package/dist/lib/progress.js.map +1 -0
- package/dist/lib/refs.d.ts +52 -0
- package/dist/lib/refs.d.ts.map +1 -0
- package/dist/lib/refs.js +225 -0
- package/dist/lib/refs.js.map +1 -0
- package/dist/lib/secure-store.d.ts +11 -0
- package/dist/lib/secure-store.d.ts.map +1 -0
- package/dist/lib/secure-store.js +57 -0
- package/dist/lib/secure-store.js.map +1 -0
- package/dist/lib/skills/content.d.ts +4 -0
- package/dist/lib/skills/content.d.ts.map +1 -0
- package/dist/lib/skills/content.js +429 -0
- package/dist/lib/skills/content.js.map +1 -0
- package/dist/lib/skills/create-installer.d.ts +10 -0
- package/dist/lib/skills/create-installer.d.ts.map +1 -0
- package/dist/lib/skills/create-installer.js +77 -0
- package/dist/lib/skills/create-installer.js.map +1 -0
- package/dist/lib/skills/index.d.ts +6 -0
- package/dist/lib/skills/index.d.ts.map +1 -0
- package/dist/lib/skills/index.js +40 -0
- package/dist/lib/skills/index.js.map +1 -0
- package/dist/lib/skills/types.d.ts +11 -0
- package/dist/lib/skills/types.d.ts.map +1 -0
- package/dist/lib/skills/types.js +2 -0
- package/dist/lib/skills/types.js.map +1 -0
- package/dist/lib/skills/update-installed.d.ts +7 -0
- package/dist/lib/skills/update-installed.d.ts.map +1 -0
- package/dist/lib/skills/update-installed.js +23 -0
- package/dist/lib/skills/update-installed.js.map +1 -0
- package/dist/lib/spinner.d.ts +23 -0
- package/dist/lib/spinner.d.ts.map +1 -0
- package/dist/lib/spinner.js +138 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/stdin.d.ts +2 -0
- package/dist/lib/stdin.d.ts.map +1 -0
- package/dist/lib/stdin.js +12 -0
- package/dist/lib/stdin.js.map +1 -0
- package/dist/lib/task-list.d.ts +31 -0
- package/dist/lib/task-list.d.ts.map +1 -0
- package/dist/lib/task-list.js +271 -0
- package/dist/lib/task-list.js.map +1 -0
- package/dist/lib/urls.d.ts +8 -0
- package/dist/lib/urls.d.ts.map +1 -0
- package/dist/lib/urls.js +26 -0
- package/dist/lib/urls.js.map +1 -0
- package/dist/postinstall.d.ts +2 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +3 -0
- package/dist/postinstall.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verbose logging module for debugging API latency and CLI behavior.
|
|
3
|
+
*
|
|
4
|
+
* Verbosity levels (stackable -v flags):
|
|
5
|
+
* -v (1) INFO : commands invoked, API endpoints hit, response status + total timing
|
|
6
|
+
* -vv (2) DETAIL : request parameters, response metadata, pagination progress
|
|
7
|
+
* -vvv (3) DEBUG : reference resolution steps, HTTP headers, rate-limit info
|
|
8
|
+
* -vvvv (4) TRACE : full request/response headers, body sizes, connection details
|
|
9
|
+
*
|
|
10
|
+
* All output goes to stderr with prefixed tags so it never pollutes stdout data.
|
|
11
|
+
* Can also be activated via TD_VERBOSE=1..4 environment variable.
|
|
12
|
+
*/
|
|
13
|
+
export const Verbosity = {
|
|
14
|
+
SILENT: 0,
|
|
15
|
+
INFO: 1,
|
|
16
|
+
DETAIL: 2,
|
|
17
|
+
DEBUG: 3,
|
|
18
|
+
TRACE: 4,
|
|
19
|
+
};
|
|
20
|
+
const LEVEL_TAG = {
|
|
21
|
+
[Verbosity.INFO]: 'info',
|
|
22
|
+
[Verbosity.DETAIL]: 'detail',
|
|
23
|
+
[Verbosity.DEBUG]: 'debug',
|
|
24
|
+
[Verbosity.TRACE]: 'trace',
|
|
25
|
+
};
|
|
26
|
+
class Logger {
|
|
27
|
+
level = Verbosity.SILENT;
|
|
28
|
+
/** Set verbosity from parsed CLI flags or environment. */
|
|
29
|
+
initialize() {
|
|
30
|
+
// Environment variable takes precedence if set
|
|
31
|
+
const envLevel = process.env.TD_VERBOSE;
|
|
32
|
+
if (envLevel) {
|
|
33
|
+
const parsed = parseInt(envLevel, 10);
|
|
34
|
+
if (parsed >= Verbosity.INFO && parsed <= Verbosity.TRACE) {
|
|
35
|
+
this.level = parsed;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Count -v flags in argv (supports -v, -vv, -vvv, -vvvv, and repeated --verbose)
|
|
39
|
+
const args = process.argv.slice(2);
|
|
40
|
+
let cliLevel = 0;
|
|
41
|
+
for (const arg of args) {
|
|
42
|
+
if (arg === '--verbose') {
|
|
43
|
+
cliLevel += 1;
|
|
44
|
+
}
|
|
45
|
+
else if (/^-v+$/.test(arg)) {
|
|
46
|
+
// -v = 1, -vv = 2, -vvv = 3, -vvvv = 4
|
|
47
|
+
cliLevel += arg.length - 1;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// CLI flags override env var if higher
|
|
51
|
+
if (cliLevel > 0) {
|
|
52
|
+
this.level = Math.min(cliLevel, Verbosity.TRACE);
|
|
53
|
+
}
|
|
54
|
+
if (this.level >= Verbosity.INFO) {
|
|
55
|
+
this.log(Verbosity.INFO, `verbose logging enabled (level=${this.level})`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
getLevel() {
|
|
59
|
+
return this.level;
|
|
60
|
+
}
|
|
61
|
+
isEnabled(level = Verbosity.INFO) {
|
|
62
|
+
return this.level >= level;
|
|
63
|
+
}
|
|
64
|
+
/** Core log method. Only emits if current verbosity >= requested level. */
|
|
65
|
+
log(level, message, data) {
|
|
66
|
+
if (this.level < level)
|
|
67
|
+
return;
|
|
68
|
+
const tag = LEVEL_TAG[level] ?? 'log';
|
|
69
|
+
const ts = new Date().toISOString();
|
|
70
|
+
let line = `[td:${tag}] ${ts} ${message}`;
|
|
71
|
+
if (data && Object.keys(data).length > 0) {
|
|
72
|
+
const parts = [];
|
|
73
|
+
for (const [key, value] of Object.entries(data)) {
|
|
74
|
+
if (value === undefined || value === null)
|
|
75
|
+
continue;
|
|
76
|
+
parts.push(`${key}=${typeof value === 'object' ? JSON.stringify(value) : value}`);
|
|
77
|
+
}
|
|
78
|
+
if (parts.length > 0) {
|
|
79
|
+
line += ` | ${parts.join(' ')}`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
process.stderr.write(`${line}\n`);
|
|
83
|
+
}
|
|
84
|
+
/** Level-specific convenience methods. */
|
|
85
|
+
info(message, data) {
|
|
86
|
+
this.log(Verbosity.INFO, message, data);
|
|
87
|
+
}
|
|
88
|
+
detail(message, data) {
|
|
89
|
+
this.log(Verbosity.DETAIL, message, data);
|
|
90
|
+
}
|
|
91
|
+
debug(message, data) {
|
|
92
|
+
this.log(Verbosity.DEBUG, message, data);
|
|
93
|
+
}
|
|
94
|
+
trace(message, data) {
|
|
95
|
+
this.log(Verbosity.TRACE, message, data);
|
|
96
|
+
}
|
|
97
|
+
/** Log timing of an async operation. Returns the operation result. */
|
|
98
|
+
async timed(level, label, operation, extraData) {
|
|
99
|
+
if (this.level < level) {
|
|
100
|
+
return operation();
|
|
101
|
+
}
|
|
102
|
+
const start = performance.now();
|
|
103
|
+
this.log(level, `${label} ...started`, extraData);
|
|
104
|
+
try {
|
|
105
|
+
const result = await operation();
|
|
106
|
+
const durationMs = performance.now() - start;
|
|
107
|
+
this.log(level, `${label} ...done`, {
|
|
108
|
+
...extraData,
|
|
109
|
+
duration_ms: Math.round(durationMs),
|
|
110
|
+
});
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
const durationMs = performance.now() - start;
|
|
115
|
+
this.log(level, `${label} ...FAILED`, {
|
|
116
|
+
...extraData,
|
|
117
|
+
duration_ms: Math.round(durationMs),
|
|
118
|
+
error: error instanceof Error ? error.message : String(error),
|
|
119
|
+
});
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Global singleton
|
|
125
|
+
let logger = null;
|
|
126
|
+
export function getLogger() {
|
|
127
|
+
if (!logger) {
|
|
128
|
+
logger = new Logger();
|
|
129
|
+
}
|
|
130
|
+
return logger;
|
|
131
|
+
}
|
|
132
|
+
export function initializeLogger() {
|
|
133
|
+
const log = getLogger();
|
|
134
|
+
log.initialize();
|
|
135
|
+
// When verbose, patch globalThis.fetch so SDK-internal HTTP calls are also logged.
|
|
136
|
+
// This is the only way to get HTTP-level visibility for @doist/todoist-api-typescript
|
|
137
|
+
// since it uses fetch() internally and doesn't expose hooks.
|
|
138
|
+
if (log.isEnabled()) {
|
|
139
|
+
patchGlobalFetch();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** Save original fetch and replace with logging wrapper. */
|
|
143
|
+
function patchGlobalFetch() {
|
|
144
|
+
const originalFetch = globalThis.fetch;
|
|
145
|
+
globalThis.fetch = async (input, init) => {
|
|
146
|
+
const log = getLogger();
|
|
147
|
+
const urlStr = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
|
|
148
|
+
const method = init?.method ?? (typeof input === 'object' && 'method' in input ? input.method : 'GET');
|
|
149
|
+
const urlObj = new URL(urlStr);
|
|
150
|
+
log.info(`fetch ${method} ${urlObj.pathname}`);
|
|
151
|
+
log.detail(`fetch ${method} ${urlStr}`);
|
|
152
|
+
// Log request body size at DETAIL
|
|
153
|
+
if (init?.body) {
|
|
154
|
+
const bodyStr = typeof init.body === 'string'
|
|
155
|
+
? init.body
|
|
156
|
+
: init.body instanceof URLSearchParams
|
|
157
|
+
? init.body.toString()
|
|
158
|
+
: null;
|
|
159
|
+
if (bodyStr) {
|
|
160
|
+
log.detail('request body', { size_bytes: bodyStr.length });
|
|
161
|
+
if (init.body instanceof URLSearchParams) {
|
|
162
|
+
log.trace('request body keys', { keys: Array.from(init.body.keys()) });
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Log request headers at TRACE (redact Authorization)
|
|
167
|
+
if (log.isEnabled(Verbosity.TRACE) && init?.headers) {
|
|
168
|
+
const hdrs = {};
|
|
169
|
+
if (init.headers instanceof Headers) {
|
|
170
|
+
init.headers.forEach((v, k) => {
|
|
171
|
+
hdrs[k] = k.toLowerCase() === 'authorization' ? '[REDACTED]' : v;
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
else if (typeof init.headers === 'object') {
|
|
175
|
+
for (const [k, v] of Object.entries(init.headers)) {
|
|
176
|
+
hdrs[k] = k.toLowerCase() === 'authorization' ? '[REDACTED]' : String(v);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
log.trace('request headers', hdrs);
|
|
180
|
+
}
|
|
181
|
+
const startTime = performance.now();
|
|
182
|
+
const response = await originalFetch(input, init);
|
|
183
|
+
const durationMs = Math.round(performance.now() - startTime);
|
|
184
|
+
// INFO: status + timing
|
|
185
|
+
log.info(`fetch ${method} ${urlObj.pathname} => ${response.status}`, {
|
|
186
|
+
duration_ms: durationMs,
|
|
187
|
+
});
|
|
188
|
+
// DETAIL: content-length
|
|
189
|
+
const contentLength = response.headers.get('content-length');
|
|
190
|
+
if (contentLength) {
|
|
191
|
+
log.detail('response', { content_length: contentLength });
|
|
192
|
+
}
|
|
193
|
+
// DEBUG: rate-limit and diagnostic headers
|
|
194
|
+
const diagHeaders = {};
|
|
195
|
+
for (const name of [
|
|
196
|
+
'x-request-id',
|
|
197
|
+
'x-ratelimit-limit',
|
|
198
|
+
'x-ratelimit-remaining',
|
|
199
|
+
'x-ratelimit-reset',
|
|
200
|
+
'retry-after',
|
|
201
|
+
'cf-ray',
|
|
202
|
+
]) {
|
|
203
|
+
const val = response.headers.get(name);
|
|
204
|
+
if (val)
|
|
205
|
+
diagHeaders[name] = val;
|
|
206
|
+
}
|
|
207
|
+
if (Object.keys(diagHeaders).length > 0) {
|
|
208
|
+
log.debug('response headers', diagHeaders);
|
|
209
|
+
}
|
|
210
|
+
// TRACE: all response headers
|
|
211
|
+
if (log.isEnabled(Verbosity.TRACE)) {
|
|
212
|
+
const allHeaders = {};
|
|
213
|
+
response.headers.forEach((value, name) => {
|
|
214
|
+
if (!name.toLowerCase().includes('set-cookie')) {
|
|
215
|
+
allHeaders[name] = value;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
log.trace('all response headers', allHeaders);
|
|
219
|
+
}
|
|
220
|
+
return response;
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/** Reset for testing. */
|
|
224
|
+
export function resetLogger() {
|
|
225
|
+
logger = null;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/lib/markdown.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAUrD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
let markedInstance = null;
|
|
2
|
+
export async function preloadMarkdown() {
|
|
3
|
+
if (markedInstance)
|
|
4
|
+
return;
|
|
5
|
+
const [{ Marked }, { markedTerminal }] = await Promise.all([
|
|
6
|
+
import('marked'),
|
|
7
|
+
import('marked-terminal'),
|
|
8
|
+
]);
|
|
9
|
+
const instance = new Marked();
|
|
10
|
+
// Types are outdated - markedTerminal returns MarkedExtension at runtime
|
|
11
|
+
instance.use(markedTerminal());
|
|
12
|
+
markedInstance = instance;
|
|
13
|
+
}
|
|
14
|
+
export function renderMarkdown(text) {
|
|
15
|
+
if (!markedInstance)
|
|
16
|
+
return text;
|
|
17
|
+
// Handle uncompletable task prefix: escape leading "* " so it's not a bullet
|
|
18
|
+
const escaped = text.startsWith('* ') ? `\\* ${text.slice(2)}` : text;
|
|
19
|
+
const rendered = markedInstance.parse(escaped);
|
|
20
|
+
return typeof rendered === 'string' ? rendered.trimEnd() : text;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/lib/markdown.ts"],"names":[],"mappings":"AAEA,IAAI,cAAc,GAAkB,IAAI,CAAA;AAExC,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,IAAI,cAAc;QAAE,OAAM;IAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,CAAC,iBAAiB,CAAC;KAC5B,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAA;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAgC,CAAC,CAAA;IAC5D,cAAc,GAAG,QAAQ,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACvC,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAA;IAChC,6EAA6E;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACrE,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9C,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACnE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-server.d.ts","sourceRoot":"","sources":["../../src/lib/oauth-server.ts"],"names":[],"mappings":"AAusBA,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG;IACxD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,EAAE,MAAM,IAAI,CAAA;CACtB,CA2EA;AAED,eAAO,MAAM,kBAAkB,mCAAsC,CAAA"}
|