linkpress 0.1.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/LICENSE +21 -0
- package/README.md +184 -0
- package/dist/ai.d.ts +31 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +428 -0
- package/dist/ai.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 +38 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/clear.d.ts +3 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +25 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +38 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/index.d.ts +9 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +9 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +129 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +33 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/serve.d.ts +3 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +122 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/source.d.ts +3 -0
- package/dist/commands/source.d.ts.map +1 -0
- package/dist/commands/source.js +48 -0
- package/dist/commands/source.js.map +1 -0
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +24 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/config.d.ts +8 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +47 -0
- package/dist/config.js.map +1 -0
- package/dist/db.d.ts +14 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +140 -0
- package/dist/db.js.map +1 -0
- package/dist/i18n.d.ts +4 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +139 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/magazine.d.ts +6 -0
- package/dist/magazine.d.ts.map +1 -0
- package/dist/magazine.js +1751 -0
- package/dist/magazine.js.map +1 -0
- package/dist/process.d.ts +16 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +77 -0
- package/dist/process.js.map +1 -0
- package/dist/scraper.d.ts +11 -0
- package/dist/scraper.d.ts.map +1 -0
- package/dist/scraper.js +159 -0
- package/dist/scraper.js.map +1 -0
- package/dist/slack/auth.d.ts +6 -0
- package/dist/slack/auth.d.ts.map +1 -0
- package/dist/slack/auth.js +373 -0
- package/dist/slack/auth.js.map +1 -0
- package/dist/slack/browser-auth.d.ts +6 -0
- package/dist/slack/browser-auth.d.ts.map +1 -0
- package/dist/slack/browser-auth.js +236 -0
- package/dist/slack/browser-auth.js.map +1 -0
- package/dist/slack/client.d.ts +45 -0
- package/dist/slack/client.d.ts.map +1 -0
- package/dist/slack/client.js +98 -0
- package/dist/slack/client.js.map +1 -0
- package/dist/slack/index.d.ts +6 -0
- package/dist/slack/index.d.ts.map +1 -0
- package/dist/slack/index.js +4 -0
- package/dist/slack/index.js.map +1 -0
- package/dist/slack/sync.d.ts +12 -0
- package/dist/slack/sync.d.ts.map +1 -0
- package/dist/slack/sync.js +182 -0
- package/dist/slack/sync.js.map +1 -0
- package/dist/types.d.ts +64 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +15 -0
- package/dist/utils.js.map +1 -0
- package/package.json +71 -0
package/dist/ai.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,UAAU,SAiCnB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import crypto from 'crypto';
|
|
5
|
+
import { insertArticle, articleExists } from '../db.js';
|
|
6
|
+
import { isValidUrl } from '../utils.js';
|
|
7
|
+
export const addCommand = new Command('add')
|
|
8
|
+
.description('Add a URL to your reading list')
|
|
9
|
+
.argument('<url>', 'URL to add')
|
|
10
|
+
.action(async (url) => {
|
|
11
|
+
const spinner = ora('Adding URL...').start();
|
|
12
|
+
try {
|
|
13
|
+
if (!isValidUrl(url)) {
|
|
14
|
+
spinner.fail(chalk.red('Invalid URL format'));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (articleExists(url)) {
|
|
18
|
+
spinner.warn(chalk.yellow('URL already exists in your list'));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const article = {
|
|
22
|
+
id: crypto.randomUUID(),
|
|
23
|
+
url,
|
|
24
|
+
title: url,
|
|
25
|
+
tags: [],
|
|
26
|
+
sourceType: 'manual',
|
|
27
|
+
createdAt: new Date(),
|
|
28
|
+
};
|
|
29
|
+
insertArticle(article);
|
|
30
|
+
spinner.succeed(chalk.green('Added: ') + chalk.cyan(url));
|
|
31
|
+
console.log(chalk.dim('Run "linkpress sync" to fetch article details'));
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
spinner.fail(chalk.red('Failed to add URL'));
|
|
35
|
+
console.error(error);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,gCAAgC,CAAC;KAC7C,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;KAC/B,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;IAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7C,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,GAAG;YACH,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,aAAa,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/commands/clear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SAoBrB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { clearAllArticles } from '../db.js';
|
|
5
|
+
import { t } from '../i18n.js';
|
|
6
|
+
export const clearCommand = new Command('clear')
|
|
7
|
+
.description('Clear all articles from the database')
|
|
8
|
+
.option('-y, --yes', 'Skip confirmation prompt')
|
|
9
|
+
.action(async (options) => {
|
|
10
|
+
if (!options.yes) {
|
|
11
|
+
const { confirm } = await inquirer.prompt([{
|
|
12
|
+
type: 'confirm',
|
|
13
|
+
name: 'confirm',
|
|
14
|
+
message: t('clear.confirm'),
|
|
15
|
+
default: false,
|
|
16
|
+
}]);
|
|
17
|
+
if (!confirm) {
|
|
18
|
+
console.log(chalk.dim(t('clear.cancelled')));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const count = clearAllArticles();
|
|
23
|
+
console.log(chalk.green(`\nā
${t('clear.success', { count })}\n`));
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=clear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../src/commands/clear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;gBAC3B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,eAAe,SAiCxB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { processArticles } from '../process.js';
|
|
4
|
+
import { getAllArticles } from '../db.js';
|
|
5
|
+
import { generateMagazine } from '../magazine.js';
|
|
6
|
+
import { t } from '../i18n.js';
|
|
7
|
+
export const generateCommand = new Command('generate')
|
|
8
|
+
.description('Process articles and generate magazine')
|
|
9
|
+
.option('-n, --limit <number>', 'Limit number of articles to process')
|
|
10
|
+
.option('--skip-process', 'Skip processing, just generate HTML')
|
|
11
|
+
.option('--reprocess', 'Reprocess already processed articles (regenerate AI summaries)')
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
if (!options.skipProcess) {
|
|
14
|
+
const limit = options.limit ? parseInt(options.limit, 10) : undefined;
|
|
15
|
+
const processedList = await processArticles({ limit, reprocess: options.reprocess });
|
|
16
|
+
console.log(chalk.bold('\nāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā'));
|
|
17
|
+
console.log(chalk.bold(`š ${t('generate.processingSummary')}`));
|
|
18
|
+
console.log(chalk.green(` ${t('generate.processed', { count: processedList.length })}`));
|
|
19
|
+
console.log(chalk.bold('āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n'));
|
|
20
|
+
}
|
|
21
|
+
const articles = getAllArticles(1000);
|
|
22
|
+
const processed = articles.filter(a => a.processedAt);
|
|
23
|
+
const unprocessed = articles.filter(a => !a.processedAt);
|
|
24
|
+
console.log(chalk.bold(`š ${t('generate.articleStats')}`));
|
|
25
|
+
console.log(chalk.dim(` ${t('generate.total', { count: articles.length })}`));
|
|
26
|
+
console.log(chalk.green(` ${t('generate.ready', { count: processed.length })}`));
|
|
27
|
+
console.log(chalk.yellow(` ${t('generate.pending', { count: unprocessed.length })}`));
|
|
28
|
+
if (processed.length > 0) {
|
|
29
|
+
const outputPath = generateMagazine({ limit: 500 });
|
|
30
|
+
console.log(chalk.bold(`\nš° ${t('generate.magazineGenerated')}`));
|
|
31
|
+
console.log(chalk.cyan(` ${outputPath}`));
|
|
32
|
+
console.log(chalk.dim(`\n${t('generate.serveHint')}`));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log(chalk.yellow(`\n${t('generate.noArticles')}`));
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { initCommand } from './init.js';
|
|
2
|
+
export { addCommand } from './add.js';
|
|
3
|
+
export { listCommand } from './list.js';
|
|
4
|
+
export { sourceCommand } from './source.js';
|
|
5
|
+
export { syncCommand } from './sync.js';
|
|
6
|
+
export { generateCommand } from './generate.js';
|
|
7
|
+
export { serveCommand } from './serve.js';
|
|
8
|
+
export { clearCommand } from './clear.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { initCommand } from './init.js';
|
|
2
|
+
export { addCommand } from './add.js';
|
|
3
|
+
export { listCommand } from './list.js';
|
|
4
|
+
export { sourceCommand } from './source.js';
|
|
5
|
+
export { syncCommand } from './sync.js';
|
|
6
|
+
export { generateCommand } from './generate.js';
|
|
7
|
+
export { serveCommand } from './serve.js';
|
|
8
|
+
export { clearCommand } from './clear.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,eAAO,MAAM,WAAW,SA4HpB,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import ora from 'ora';
|
|
5
|
+
import { loadConfig, saveConfig, getConfigDir } from '../config.js';
|
|
6
|
+
import { fetchModels, FALLBACK_MODELS } from '../ai.js';
|
|
7
|
+
const PROVIDER_CHOICES = [
|
|
8
|
+
{ name: 'Anthropic (Claude)', value: 'anthropic' },
|
|
9
|
+
{ name: 'OpenAI (GPT)', value: 'openai' },
|
|
10
|
+
{ name: 'Google (Gemini)', value: 'gemini' },
|
|
11
|
+
];
|
|
12
|
+
const LANGUAGE_CHOICES = [
|
|
13
|
+
{ name: 'English', value: 'English' },
|
|
14
|
+
{ name: 'ķźµģ“', value: 'ķźµģ“' },
|
|
15
|
+
{ name: 'ę„ę¬čŖ', value: 'ę„ę¬čŖ' },
|
|
16
|
+
{ name: 'äøę', value: 'äøę' },
|
|
17
|
+
{ name: 'EspaƱol', value: 'EspaƱol' },
|
|
18
|
+
{ name: 'PortuguĆŖs', value: 'PortuguĆŖs' },
|
|
19
|
+
{ name: 'FranƧais', value: 'FranƧais' },
|
|
20
|
+
{ name: 'Deutsch', value: 'Deutsch' },
|
|
21
|
+
{ name: 'Other (type manually)', value: '__other__' },
|
|
22
|
+
];
|
|
23
|
+
export const initCommand = new Command('init')
|
|
24
|
+
.description('Initialize LinkPress configuration')
|
|
25
|
+
.action(async () => {
|
|
26
|
+
console.log(chalk.bold('\nš Welcome to LinkPress!\n'));
|
|
27
|
+
const config = loadConfig();
|
|
28
|
+
const { provider } = await inquirer.prompt([{
|
|
29
|
+
type: 'list',
|
|
30
|
+
name: 'provider',
|
|
31
|
+
message: 'Select your AI provider:',
|
|
32
|
+
choices: PROVIDER_CHOICES,
|
|
33
|
+
}]);
|
|
34
|
+
const providerName = PROVIDER_CHOICES.find(c => c.value === provider)?.name || provider;
|
|
35
|
+
const { apiKey } = await inquirer.prompt([{
|
|
36
|
+
type: 'password',
|
|
37
|
+
name: 'apiKey',
|
|
38
|
+
message: `Enter your ${providerName} API key:`,
|
|
39
|
+
validate: (input) => {
|
|
40
|
+
if (!input.trim()) {
|
|
41
|
+
return 'API key is required.';
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
},
|
|
45
|
+
}]);
|
|
46
|
+
const spinner = ora('Fetching available models...').start();
|
|
47
|
+
let models = await fetchModels(provider, apiKey);
|
|
48
|
+
if (models.length === 0) {
|
|
49
|
+
spinner.warn('Could not fetch models. Using fallback list.');
|
|
50
|
+
models = FALLBACK_MODELS[provider];
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
spinner.succeed(`Found ${models.length} models`);
|
|
54
|
+
}
|
|
55
|
+
const modelChoices = [
|
|
56
|
+
...models.map((m) => ({
|
|
57
|
+
name: m.name === m.id ? m.id : `${m.name} (${m.id})`,
|
|
58
|
+
value: m.id,
|
|
59
|
+
})),
|
|
60
|
+
new inquirer.Separator(),
|
|
61
|
+
{ name: '[ Enter model ID manually ]', value: '__manual__' },
|
|
62
|
+
];
|
|
63
|
+
const { model: selectedModel } = await inquirer.prompt([{
|
|
64
|
+
type: 'list',
|
|
65
|
+
name: 'model',
|
|
66
|
+
message: 'Select model:',
|
|
67
|
+
choices: modelChoices,
|
|
68
|
+
pageSize: 15,
|
|
69
|
+
}]);
|
|
70
|
+
let finalModel = selectedModel;
|
|
71
|
+
if (selectedModel === '__manual__') {
|
|
72
|
+
const { manualModel } = await inquirer.prompt([{
|
|
73
|
+
type: 'input',
|
|
74
|
+
name: 'manualModel',
|
|
75
|
+
message: 'Enter model ID:',
|
|
76
|
+
validate: (input) => {
|
|
77
|
+
if (!input.trim()) {
|
|
78
|
+
return 'Model ID is required.';
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
},
|
|
82
|
+
}]);
|
|
83
|
+
finalModel = manualModel;
|
|
84
|
+
}
|
|
85
|
+
config.ai.provider = provider;
|
|
86
|
+
config.ai.model = finalModel;
|
|
87
|
+
config.ai.apiKey = apiKey;
|
|
88
|
+
const { language: selectedLanguage } = await inquirer.prompt([{
|
|
89
|
+
type: 'list',
|
|
90
|
+
name: 'language',
|
|
91
|
+
message: 'Select your preferred language for summaries:',
|
|
92
|
+
choices: LANGUAGE_CHOICES,
|
|
93
|
+
default: config.ai.language || 'English',
|
|
94
|
+
}]);
|
|
95
|
+
let finalLanguage = selectedLanguage;
|
|
96
|
+
if (selectedLanguage === '__other__') {
|
|
97
|
+
const { manualLanguage } = await inquirer.prompt([{
|
|
98
|
+
type: 'input',
|
|
99
|
+
name: 'manualLanguage',
|
|
100
|
+
message: 'Enter language name:',
|
|
101
|
+
validate: (input) => {
|
|
102
|
+
if (!input.trim()) {
|
|
103
|
+
return 'Language is required.';
|
|
104
|
+
}
|
|
105
|
+
return true;
|
|
106
|
+
},
|
|
107
|
+
}]);
|
|
108
|
+
finalLanguage = manualLanguage;
|
|
109
|
+
}
|
|
110
|
+
config.ai.language = finalLanguage;
|
|
111
|
+
const { outputFormat } = await inquirer.prompt([{
|
|
112
|
+
type: 'list',
|
|
113
|
+
name: 'outputFormat',
|
|
114
|
+
message: 'Select output format:',
|
|
115
|
+
choices: ['html', 'markdown', 'both'],
|
|
116
|
+
default: config.output.format,
|
|
117
|
+
}]);
|
|
118
|
+
config.output.format = outputFormat;
|
|
119
|
+
saveConfig(config);
|
|
120
|
+
console.log(chalk.green('\nā
Configuration saved to'), chalk.cyan(getConfigDir()));
|
|
121
|
+
console.log(chalk.dim(` Provider: ${providerName}`));
|
|
122
|
+
console.log(chalk.dim(` Model: ${finalModel}`));
|
|
123
|
+
console.log(chalk.dim(` Language: ${finalLanguage}`));
|
|
124
|
+
console.log(chalk.dim('\nNext steps:'));
|
|
125
|
+
console.log(chalk.dim(' 1. Add a Slack source:'), chalk.white('linkpress source add slack'));
|
|
126
|
+
console.log(chalk.dim(' 2. Or add URLs manually:'), chalk.white('linkpress add <url>'));
|
|
127
|
+
console.log(chalk.dim(' 3. Generate magazine:'), chalk.white('linkpress generate'));
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAmCpB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { getAllArticles } from '../db.js';
|
|
4
|
+
import { truncate } from '../utils.js';
|
|
5
|
+
export const listCommand = new Command('list')
|
|
6
|
+
.description('List all saved articles')
|
|
7
|
+
.option('-n, --limit <number>', 'Number of articles to show', '20')
|
|
8
|
+
.action((options) => {
|
|
9
|
+
const limit = parseInt(options.limit, 10);
|
|
10
|
+
const articles = getAllArticles(limit);
|
|
11
|
+
if (articles.length === 0) {
|
|
12
|
+
console.log(chalk.yellow('\nNo articles yet.'));
|
|
13
|
+
console.log(chalk.dim('Add some with: linkpress add <url>'));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
console.log(chalk.bold(`\nš Your Articles (${articles.length})\n`));
|
|
17
|
+
articles.forEach((article, index) => {
|
|
18
|
+
const status = article.processedAt
|
|
19
|
+
? chalk.green('ā')
|
|
20
|
+
: chalk.yellow('ā');
|
|
21
|
+
const title = article.title || article.url;
|
|
22
|
+
const truncatedTitle = truncate(title, 60);
|
|
23
|
+
console.log(`${status} ${chalk.white(index + 1 + '.')} ${truncatedTitle}`);
|
|
24
|
+
if (article.summary) {
|
|
25
|
+
console.log(chalk.dim(` ${article.summary.substring(0, 80)}...`));
|
|
26
|
+
}
|
|
27
|
+
if (article.tags.length > 0) {
|
|
28
|
+
console.log(chalk.cyan(` ${article.tags.map(t => `#${t}`).join(' ')}`));
|
|
29
|
+
}
|
|
30
|
+
console.log();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,sBAAsB,EAAE,4BAA4B,EAAE,IAAI,CAAC;KAClE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAErE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW;YAChC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YAClB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC;QAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;QAE3E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,eAAO,MAAM,YAAY,SA4FrB,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import express from 'express';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
import open from 'open';
|
|
7
|
+
import { loadConfig } from '../config.js';
|
|
8
|
+
import { markAsRead, markAsUnread, getArticleById, getAllArticles } from '../db.js';
|
|
9
|
+
import { syncSlackSources } from '../slack/sync.js';
|
|
10
|
+
import { processArticles } from '../process.js';
|
|
11
|
+
import { generateMagazine } from '../magazine.js';
|
|
12
|
+
const sseClients = new Set();
|
|
13
|
+
function broadcastArticle(article) {
|
|
14
|
+
const data = JSON.stringify({ type: 'new-article', article });
|
|
15
|
+
sseClients.forEach(client => {
|
|
16
|
+
client.write(`data: ${data}\n\n`);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export const serveCommand = new Command('serve')
|
|
20
|
+
.description('Start local server to view magazine')
|
|
21
|
+
.option('-p, --port <number>', 'Port number', '3000')
|
|
22
|
+
.option('-w, --watch', 'Watch for new articles from Slack')
|
|
23
|
+
.option('--interval <seconds>', 'Polling interval in seconds', '30')
|
|
24
|
+
.option('--no-open', 'Do not open browser automatically')
|
|
25
|
+
.action(async (options) => {
|
|
26
|
+
process.on('SIGINT', () => {
|
|
27
|
+
console.log(chalk.dim('\n\n Server stopped.\n'));
|
|
28
|
+
process.exit(0);
|
|
29
|
+
});
|
|
30
|
+
process.on('SIGTERM', () => {
|
|
31
|
+
process.exit(0);
|
|
32
|
+
});
|
|
33
|
+
const config = loadConfig();
|
|
34
|
+
const outputDir = config.output.directory;
|
|
35
|
+
const indexPath = path.join(outputDir, 'index.html');
|
|
36
|
+
if (!fs.existsSync(indexPath)) {
|
|
37
|
+
console.log(chalk.red('\nā No magazine found.'));
|
|
38
|
+
console.log(chalk.dim('Run "linkpress generate" first to create your magazine.\n'));
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const app = express();
|
|
42
|
+
const port = parseInt(options.port, 10);
|
|
43
|
+
app.use(express.json());
|
|
44
|
+
app.use(express.static(outputDir));
|
|
45
|
+
app.post('/api/articles/:id/read', (req, res) => {
|
|
46
|
+
const { id } = req.params;
|
|
47
|
+
const article = getArticleById(id);
|
|
48
|
+
if (!article) {
|
|
49
|
+
res.status(404).json({ error: 'Article not found' });
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
markAsRead(id);
|
|
53
|
+
res.json({ success: true, readAt: new Date().toISOString() });
|
|
54
|
+
});
|
|
55
|
+
app.delete('/api/articles/:id/read', (req, res) => {
|
|
56
|
+
const { id } = req.params;
|
|
57
|
+
const article = getArticleById(id);
|
|
58
|
+
if (!article) {
|
|
59
|
+
res.status(404).json({ error: 'Article not found' });
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
markAsUnread(id);
|
|
63
|
+
res.json({ success: true, readAt: null });
|
|
64
|
+
});
|
|
65
|
+
app.get('/api/events', (req, res) => {
|
|
66
|
+
res.setHeader('Content-Type', 'text/event-stream');
|
|
67
|
+
res.setHeader('Cache-Control', 'no-cache');
|
|
68
|
+
res.setHeader('Connection', 'keep-alive');
|
|
69
|
+
res.flushHeaders();
|
|
70
|
+
sseClients.add(res);
|
|
71
|
+
req.on('close', () => sseClients.delete(res));
|
|
72
|
+
});
|
|
73
|
+
app.get('/api/articles', (_req, res) => {
|
|
74
|
+
const articles = getAllArticles(200);
|
|
75
|
+
res.json(articles);
|
|
76
|
+
});
|
|
77
|
+
app.get('*', (_req, res) => {
|
|
78
|
+
res.sendFile(indexPath);
|
|
79
|
+
});
|
|
80
|
+
app.listen(port, () => {
|
|
81
|
+
const url = `http://localhost:${port}`;
|
|
82
|
+
console.log(chalk.bold('\nš LinkPress Server Running\n'));
|
|
83
|
+
console.log(chalk.dim(' Local: ') + chalk.cyan(url));
|
|
84
|
+
console.log(chalk.dim(' Output: ') + chalk.dim(outputDir));
|
|
85
|
+
if (options.watch) {
|
|
86
|
+
const interval = parseInt(options.interval, 10) * 1000;
|
|
87
|
+
console.log(chalk.dim(' Watch: ') + chalk.green('enabled') + chalk.dim(` (every ${options.interval}s)`));
|
|
88
|
+
startWatching(interval, outputDir);
|
|
89
|
+
}
|
|
90
|
+
console.log(chalk.dim('\n Press Ctrl+C to stop.\n'));
|
|
91
|
+
if (options.open !== false) {
|
|
92
|
+
open(url);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
async function startWatching(interval, _outputDir) {
|
|
97
|
+
const config = loadConfig();
|
|
98
|
+
async function poll() {
|
|
99
|
+
try {
|
|
100
|
+
const beforeIds = new Set(getAllArticles(500).map(a => a.id));
|
|
101
|
+
await syncSlackSources(config, { silent: true });
|
|
102
|
+
const newArticles = await processArticles({ silent: true });
|
|
103
|
+
if (newArticles.length > 0) {
|
|
104
|
+
generateMagazine();
|
|
105
|
+
for (const article of newArticles) {
|
|
106
|
+
if (!beforeIds.has(article.id)) {
|
|
107
|
+
broadcastArticle(article);
|
|
108
|
+
console.log(chalk.green(` ā New: `) + chalk.dim(article.title || article.url));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error instanceof Error && !error.message.includes('No Slack sources')) {
|
|
115
|
+
console.error(chalk.red(' Watch error:'), error.message);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
setInterval(poll, interval);
|
|
120
|
+
poll();
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/commands/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,aAAa,SACc,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { addSlackSource, listSlackSources, removeSlackSource, addChannelToSource, removeChannelFromSource } from '../slack/index.js';
|
|
4
|
+
export const sourceCommand = new Command('source')
|
|
5
|
+
.description('Manage article sources');
|
|
6
|
+
sourceCommand
|
|
7
|
+
.command('add <type>')
|
|
8
|
+
.description('Add a new source (slack)')
|
|
9
|
+
.action(async (type) => {
|
|
10
|
+
if (type === 'slack') {
|
|
11
|
+
await addSlackSource();
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
console.log(chalk.red(`Unknown source type: ${type}`));
|
|
15
|
+
console.log(chalk.dim('Available sources: slack'));
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
sourceCommand
|
|
19
|
+
.command('remove <type>')
|
|
20
|
+
.description('Remove a source (slack)')
|
|
21
|
+
.action(async (type) => {
|
|
22
|
+
if (type === 'slack') {
|
|
23
|
+
await removeSlackSource();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.log(chalk.red(`Unknown source type: ${type}`));
|
|
27
|
+
console.log(chalk.dim('Available sources: slack'));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
sourceCommand
|
|
31
|
+
.command('add-channel')
|
|
32
|
+
.description('Add a channel to an existing Slack workspace')
|
|
33
|
+
.action(async () => {
|
|
34
|
+
await addChannelToSource();
|
|
35
|
+
});
|
|
36
|
+
sourceCommand
|
|
37
|
+
.command('remove-channel')
|
|
38
|
+
.description('Remove a channel from a workspace')
|
|
39
|
+
.action(async () => {
|
|
40
|
+
await removeChannelFromSource();
|
|
41
|
+
});
|
|
42
|
+
sourceCommand
|
|
43
|
+
.command('list')
|
|
44
|
+
.description('List configured sources')
|
|
45
|
+
.action(async () => {
|
|
46
|
+
await listSlackSources();
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/commands/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAErI,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,wBAAwB,CAAC,CAAC;AAEzC,aAAa;KACV,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;IAC7B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;IAC7B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,iBAAiB,EAAE,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,kBAAkB,EAAE,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,uBAAuB,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,aAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,gBAAgB,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAoBpB,CAAC"}
|