@doist/todoist-cli 1.62.1 → 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.
- package/CHANGELOG.md +6 -0
- package/dist/commands/auth/index.d.ts +1 -1
- package/dist/commands/auth/index.d.ts.map +1 -1
- package/dist/commands/auth/index.js +2 -13
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/auth/login.d.ts +13 -4
- package/dist/commands/auth/login.d.ts.map +1 -1
- package/dist/commands/auth/login.js +75 -48
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/task/index.d.ts.map +1 -1
- package/dist/commands/task/index.js +1 -0
- package/dist/commands/task/index.js.map +1 -1
- package/dist/commands/task/update.d.ts +1 -1
- package/dist/commands/task/update.d.ts.map +1 -1
- package/dist/commands/task/update.js +6 -2
- package/dist/commands/task/update.js.map +1 -1
- package/dist/commands/update/index.d.ts +1 -1
- package/dist/commands/update/index.d.ts.map +1 -1
- package/dist/commands/update/index.js +11 -14
- package/dist/commands/update/index.js.map +1 -1
- package/dist/lib/auth-html.d.ts +11 -0
- package/dist/lib/auth-html.d.ts.map +1 -0
- package/dist/lib/{oauth-server.js → auth-html.js} +13 -97
- package/dist/lib/auth-html.js.map +1 -0
- package/dist/lib/auth-provider.d.ts +16 -0
- package/dist/lib/auth-provider.d.ts.map +1 -0
- package/dist/lib/auth-provider.js +59 -0
- package/dist/lib/auth-provider.js.map +1 -0
- package/dist/lib/auth-store.d.ts +48 -0
- package/dist/lib/auth-store.d.ts.map +1 -0
- package/dist/lib/auth-store.js +91 -0
- package/dist/lib/auth-store.js.map +1 -0
- package/dist/lib/auth.d.ts +4 -0
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +1 -1
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/oauth-scopes.d.ts +21 -0
- package/dist/lib/oauth-scopes.d.ts.map +1 -1
- package/dist/lib/oauth-scopes.js +28 -0
- package/dist/lib/oauth-scopes.js.map +1 -1
- package/dist/lib/skills/content.d.ts +1 -1
- package/dist/lib/skills/content.d.ts.map +1 -1
- package/dist/lib/skills/content.js +8 -2
- package/dist/lib/skills/content.js.map +1 -1
- package/dist/lib/update.d.ts +7 -13
- package/dist/lib/update.d.ts.map +1 -1
- package/dist/lib/update.js +10 -36
- package/dist/lib/update.js.map +1 -1
- package/package.json +4 -4
- package/dist/commands/update/action.d.ts +0 -5
- package/dist/commands/update/action.d.ts.map +0 -1
- package/dist/commands/update/action.js +0 -112
- package/dist/commands/update/action.js.map +0 -1
- package/dist/commands/update/switch.d.ts +0 -5
- package/dist/commands/update/switch.d.ts.map +0 -1
- package/dist/commands/update/switch.js +0 -31
- package/dist/commands/update/switch.js.map +0 -1
- package/dist/lib/oauth-server.d.ts +0 -8
- package/dist/lib/oauth-server.d.ts.map +0 -1
- package/dist/lib/oauth-server.js.map +0 -1
- package/dist/lib/oauth.d.ts +0 -13
- package/dist/lib/oauth.d.ts.map +0 -1
- package/dist/lib/oauth.js +0 -51
- package/dist/lib/oauth.js.map +0 -1
- package/dist/lib/pkce.d.ts +0 -4
- package/dist/lib/pkce.d.ts.map +0 -1
- package/dist/lib/pkce.js +0 -19
- package/dist/lib/pkce.js.map +0 -1
package/dist/lib/update.js
CHANGED
|
@@ -1,42 +1,16 @@
|
|
|
1
|
+
import { fetchLatestVersion as fetchLatestVersionCore } from '@doist/cli-core/commands';
|
|
2
|
+
import packageJson from '../../package.json' with { type: 'json' };
|
|
1
3
|
import { readConfig } from './config.js';
|
|
2
|
-
export
|
|
3
|
-
export function getInstallTag(channel) {
|
|
4
|
-
return channel === 'pre-release' ? 'next' : 'latest';
|
|
5
|
-
}
|
|
6
|
-
export function parseVersion(version) {
|
|
7
|
-
const [core, ...rest] = version.replace(/^v/, '').split('-');
|
|
8
|
-
const [major, minor, patch] = core.split('.').map(Number);
|
|
9
|
-
return { major, minor, patch, prerelease: rest.length > 0 ? rest.join('-') : undefined };
|
|
10
|
-
}
|
|
11
|
-
export function compareVersions(a, b) {
|
|
12
|
-
const left = parseVersion(a);
|
|
13
|
-
const right = parseVersion(b);
|
|
14
|
-
for (const key of ['major', 'minor', 'patch']) {
|
|
15
|
-
if (left[key] !== right[key])
|
|
16
|
-
return left[key] > right[key] ? 1 : -1;
|
|
17
|
-
}
|
|
18
|
-
if (!left.prerelease && right.prerelease)
|
|
19
|
-
return 1;
|
|
20
|
-
if (left.prerelease && !right.prerelease)
|
|
21
|
-
return -1;
|
|
22
|
-
if (left.prerelease && right.prerelease) {
|
|
23
|
-
return left.prerelease.localeCompare(right.prerelease, undefined, { numeric: true });
|
|
24
|
-
}
|
|
25
|
-
return 0;
|
|
26
|
-
}
|
|
27
|
-
/** Returns true when `candidate` is strictly newer than `current` per semver. */
|
|
28
|
-
export function isNewer(current, candidate) {
|
|
29
|
-
return compareVersions(candidate, current) > 0;
|
|
30
|
-
}
|
|
4
|
+
export { compareVersions, getInstallTag, isNewer, parseVersion } from '@doist/cli-core/commands';
|
|
31
5
|
export async function fetchLatestVersion(channel) {
|
|
32
|
-
|
|
33
|
-
const response = await fetch(url);
|
|
34
|
-
if (!response.ok) {
|
|
35
|
-
throw new Error(`Registry request failed (HTTP ${response.status})`);
|
|
36
|
-
}
|
|
37
|
-
const data = (await response.json());
|
|
38
|
-
return data.version;
|
|
6
|
+
return fetchLatestVersionCore({ packageName: packageJson.name, channel });
|
|
39
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Tolerant channel read for `td doctor`. Returns the raw configured value
|
|
10
|
+
* (defaulting to `'stable'`); validation of unknown values is surfaced as a
|
|
11
|
+
* separate warning by `validateConfigForDoctor`. The user-facing
|
|
12
|
+
* `td update` command uses the strict cli-core version internally.
|
|
13
|
+
*/
|
|
40
14
|
export async function getConfiguredUpdateChannel() {
|
|
41
15
|
const config = await readConfig();
|
|
42
16
|
return config.update_channel ?? 'stable';
|
package/dist/lib/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/lib/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/lib/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACvF,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAClE,OAAO,EAAE,UAAU,EAAsB,MAAM,aAAa,CAAA;AAE5D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEhG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAsB;IAC3D,OAAO,sBAAsB,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,OAAO,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAA;AAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@doist/todoist-cli",
|
|
3
|
-
"version": "1.62.
|
|
3
|
+
"version": "1.62.2",
|
|
4
4
|
"description": "TypeScript CLI for Todoist",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"CHANGELOG.md"
|
|
52
52
|
],
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@doist/cli-core": "0.
|
|
54
|
+
"@doist/cli-core": "0.9.0",
|
|
55
55
|
"@doist/todoist-sdk": "10.1.3",
|
|
56
56
|
"@napi-rs/keyring": "1.3.0",
|
|
57
57
|
"@pnpm/tabtab": "0.5.4",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
"@types/node": "25.6.0",
|
|
70
70
|
"conventional-changelog-conventionalcommits": "9.3.1",
|
|
71
71
|
"lefthook": "2.1.6",
|
|
72
|
-
"oxfmt": "0.
|
|
73
|
-
"oxlint": "1.
|
|
72
|
+
"oxfmt": "0.48.0",
|
|
73
|
+
"oxlint": "1.63.0",
|
|
74
74
|
"semantic-release": "25.0.3",
|
|
75
75
|
"typescript": "6.0.3",
|
|
76
76
|
"vitest": "4.1.5"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/update/action.ts"],"names":[],"mappings":"AAuCA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GjG"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'node:child_process';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import packageJson from '../../../package.json' with { type: 'json' };
|
|
4
|
-
import { withSpinner } from '../../lib/spinner.js';
|
|
5
|
-
import { fetchLatestVersion, getConfiguredUpdateChannel, getInstallTag, isNewer, PACKAGE_NAME, } from '../../lib/update.js';
|
|
6
|
-
function detectPackageManager() {
|
|
7
|
-
const execPath = process.env.npm_execpath ?? '';
|
|
8
|
-
if (execPath.includes('pnpm'))
|
|
9
|
-
return 'pnpm';
|
|
10
|
-
return 'npm';
|
|
11
|
-
}
|
|
12
|
-
function runInstall(pm, tag) {
|
|
13
|
-
const command = pm === 'pnpm' ? 'add' : 'install';
|
|
14
|
-
return new Promise((resolve, reject) => {
|
|
15
|
-
const child = spawn(pm, [command, '-g', `${PACKAGE_NAME}@${tag}`], {
|
|
16
|
-
stdio: 'pipe',
|
|
17
|
-
});
|
|
18
|
-
let stderr = '';
|
|
19
|
-
child.stderr?.on('data', (data) => {
|
|
20
|
-
stderr += data.toString();
|
|
21
|
-
});
|
|
22
|
-
child.on('error', reject);
|
|
23
|
-
child.on('close', (code) => resolve({ exitCode: code ?? 1, stderr }));
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
function channelLabel(channel) {
|
|
27
|
-
return channel === 'pre-release' ? ` ${chalk.magenta('(pre-release)')}` : '';
|
|
28
|
-
}
|
|
29
|
-
export async function updateAction(options) {
|
|
30
|
-
if (options.check && options.channel) {
|
|
31
|
-
console.error(chalk.red('Error:'), 'Specify either --check or --channel, not both.');
|
|
32
|
-
process.exitCode = 1;
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const channel = await getConfiguredUpdateChannel();
|
|
36
|
-
if (options.channel) {
|
|
37
|
-
if (channel === 'pre-release') {
|
|
38
|
-
console.log(`Update channel: ${chalk.magenta('pre-release')}`);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
console.log(`Update channel: ${chalk.green('stable')}`);
|
|
42
|
-
}
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const tag = getInstallTag(channel);
|
|
46
|
-
const label = channelLabel(channel);
|
|
47
|
-
const currentVersion = packageJson.version;
|
|
48
|
-
let latestVersion;
|
|
49
|
-
try {
|
|
50
|
-
latestVersion = await withSpinner({ text: `Checking for updates${label}...`, color: 'blue' }, () => fetchLatestVersion(channel));
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
54
|
-
console.error(chalk.red('Error:'), `Failed to check for updates: ${message}`);
|
|
55
|
-
process.exitCode = 1;
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
const updateAvailable = isNewer(currentVersion, latestVersion);
|
|
59
|
-
if (options.check) {
|
|
60
|
-
const channelLine = channel === 'pre-release'
|
|
61
|
-
? ` Channel: ${chalk.magenta('pre-release')}`
|
|
62
|
-
: ` Channel: ${chalk.green('stable')}`;
|
|
63
|
-
if (updateAvailable) {
|
|
64
|
-
console.log(`Update available: ${chalk.dim(`v${currentVersion}`)} → ${chalk.green(`v${latestVersion}`)}`);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
console.log(chalk.green('✓'), `Already up to date (v${currentVersion})`);
|
|
68
|
-
}
|
|
69
|
-
console.log(channelLine);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
if (currentVersion === latestVersion) {
|
|
73
|
-
console.log(chalk.green('✓'), `Already up to date${label} (v${currentVersion})`);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (updateAvailable) {
|
|
77
|
-
console.log(`Update available${label}: ${chalk.dim(`v${currentVersion}`)} → ${chalk.green(`v${latestVersion}`)}`);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
console.log(`Downgrade available${label}: ${chalk.dim(`v${currentVersion}`)} → ${chalk.yellow(`v${latestVersion}`)}`);
|
|
81
|
-
}
|
|
82
|
-
const pm = detectPackageManager();
|
|
83
|
-
let result;
|
|
84
|
-
try {
|
|
85
|
-
result = await withSpinner({ text: `Updating to v${latestVersion}${label}...`, color: 'blue' }, () => runInstall(pm, tag));
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
if (error instanceof Error && 'code' in error && error.code === 'EACCES') {
|
|
89
|
-
console.error(chalk.red('Error:'), 'Permission denied. Try running with sudo:');
|
|
90
|
-
console.error(chalk.dim(` sudo ${pm} ${pm === 'pnpm' ? 'add' : 'install'} -g ${PACKAGE_NAME}@${tag}`));
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
94
|
-
console.error(chalk.red('Error:'), `Install failed: ${message}`);
|
|
95
|
-
}
|
|
96
|
-
process.exitCode = 1;
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
if (result.exitCode !== 0) {
|
|
100
|
-
console.error(chalk.red('Error:'), `${pm} exited with code ${result.exitCode}`);
|
|
101
|
-
if (result.stderr) {
|
|
102
|
-
console.error(chalk.dim(result.stderr.trim()));
|
|
103
|
-
}
|
|
104
|
-
process.exitCode = 1;
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
console.log(chalk.green('✓'), `Updated to v${latestVersion}${label}`);
|
|
108
|
-
if (channel === 'stable') {
|
|
109
|
-
console.log(chalk.dim(' Run'), chalk.cyan('td changelog'), chalk.dim('to see what changed'));
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=action.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/update/action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/commands/update/switch.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IACzC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmChB"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { readConfig, writeConfig } from '../../lib/config.js';
|
|
3
|
-
export async function switchChannel(options) {
|
|
4
|
-
if (options.stable && options.preRelease) {
|
|
5
|
-
console.error(chalk.red('Error:'), 'Specify either --stable or --pre-release, not both.');
|
|
6
|
-
process.exitCode = 1;
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
if (!options.stable && !options.preRelease) {
|
|
10
|
-
console.error(chalk.red('Error:'), 'Specify --stable or --pre-release.');
|
|
11
|
-
process.exitCode = 1;
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const channel = options.preRelease ? 'pre-release' : 'stable';
|
|
15
|
-
const config = await readConfig();
|
|
16
|
-
config.update_channel = channel;
|
|
17
|
-
await writeConfig(config);
|
|
18
|
-
if (channel === 'pre-release') {
|
|
19
|
-
console.log(chalk.green('✓'), `Update channel set to ${chalk.magenta('pre-release')}`);
|
|
20
|
-
console.log();
|
|
21
|
-
console.log(chalk.yellow('Note:'), 'Pre-release updates follow the', chalk.cyan('next'), 'branch.');
|
|
22
|
-
console.log('When pre-release changes are merged into a stable release, no further');
|
|
23
|
-
console.log('pre-release updates will be published until a new pre-release cycle begins.');
|
|
24
|
-
console.log('Remember to switch back to stable when done:');
|
|
25
|
-
console.log(chalk.dim(' td update switch --stable'));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
console.log(chalk.green('✓'), 'Update channel set to stable');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=switch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/commands/update/switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAA;AAEjF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAGnC;IACG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,qDAAqD,CAAC,CAAA;QACzF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACV,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,oCAAoC,CAAC,CAAA;QACxE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACV,CAAC;IAED,MAAM,OAAO,GAAkB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE5E,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,CAAC,cAAc,GAAG,OAAO,CAAA;IAC/B,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;IAEzB,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,yBAAyB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QACtF,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EACrB,gCAAgC,EAChC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAClB,SAAS,CACZ,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAA;QACpF,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAA;QAC1F,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,8BAA8B,CAAC,CAAA;IACjE,CAAC;AACL,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare const DEFAULT_PORT = 8765;
|
|
2
|
-
export declare function getRedirectUri(port: number): string;
|
|
3
|
-
export declare function startCallbackServer(expectedState: string): Promise<{
|
|
4
|
-
promise: Promise<string>;
|
|
5
|
-
port: number;
|
|
6
|
-
cleanup: () => void;
|
|
7
|
-
}>;
|
|
8
|
-
//# sourceMappingURL=oauth-server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-server.d.ts","sourceRoot":"","sources":["../../src/lib/oauth-server.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,OAAO,CAAA;AAssBhC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAYD,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IACtE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;CACtB,CAAC,CAgGD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-server.js","sourceRoot":"","sources":["../../src/lib/oauth-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2C,MAAM,WAAW,CAAA;AAEjF,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAA;AAChC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAC3B,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,YAAY;AAE7C,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkcpB,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAuP3B,OAAO;;;;;CAKnB,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACvC,OAAO,oBAAoB,IAAI,WAAW,CAAA;AAC9C,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,IAAY;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACrB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YACtC,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,aAAqB;IAK3D,IAAI,SAAS,GAA0B,IAAI,CAAA;IAC3C,IAAI,SAAS,GAAG,YAAY,CAAA;IAE5B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,IAAI,MAAM;YAAE,OAAM;QAClB,MAAM,GAAG,IAAI,CAAA;QACb,IAAI,SAAS,EAAE,CAAC;YACZ,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,SAAS,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC,CAAA;IAED,yBAAyB;IACzB,KAAK,IAAI,IAAI,GAAG,YAAY,EAAE,IAAI,GAAG,YAAY,GAAG,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5E,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAC7B,SAAS,GAAG,IAAI,CAAA;YAChB,MAAK;QACT,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,IACI,GAAG,YAAY,KAAK;gBACpB,MAAM,IAAI,GAAG;gBACZ,GAA6B,CAAC,IAAI,KAAK,YAAY,EACtD,CAAC;gBACC,IAAI,IAAI,KAAK,YAAY,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,KAAK,CACX,2CAA2C,YAAY,IAAI,YAAY,GAAG,iBAAiB,GAAG,CAAC,GAAG,CACrG,CAAA;gBACL,CAAC;gBACD,SAAQ;YACZ,CAAC;YACD,MAAM,GAAG,CAAA;QACb,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAoB,EAAE,GAAmB,EAAE,EAAE;YAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,oBAAoB,SAAS,EAAE,CAAC,CAAA;YAEpE,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBAClB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBACpB,OAAM;YACV,CAAC;YAED,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAE3C,IAAI,KAAK,EAAE,CAAC;gBACR,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAA;gBAClE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC1B,OAAO,EAAE,CAAA;gBACT,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC1C,OAAM;YACV,CAAC;YAED,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAClB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAA;gBAClE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC,CAAA;gBACtD,OAAO,EAAE,CAAA;gBACT,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAA;gBACpD,OAAM;YACV,CAAC;YAED,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;gBAC1B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAA;gBAClE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,gDAAgD,CAAC,CAAC,CAAA;gBACrE,OAAO,EAAE,CAAA;gBACT,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;gBAC5C,OAAM;YACV,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAA;YAClE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACrB,OAAO,EAAE,CAAA;YACT,OAAO,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,OAAO,EAAE,CAAA;YACT,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,OAAO,EAAE,CAAA;YACT,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACjD,CAAC,EAAE,UAAU,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAChD,CAAC"}
|
package/dist/lib/oauth.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type AdditionalScopeFlag } from './oauth-scopes.js';
|
|
2
|
-
export declare const READ_WRITE_SCOPES = "data:read_write,data:delete,project:delete";
|
|
3
|
-
export declare const READ_ONLY_SCOPES = "data:read";
|
|
4
|
-
export interface AuthScopeOptions {
|
|
5
|
-
readOnly?: boolean;
|
|
6
|
-
additionalScopes?: readonly AdditionalScopeFlag[];
|
|
7
|
-
}
|
|
8
|
-
export declare function resolveAuthScope(options: AuthScopeOptions): string;
|
|
9
|
-
export declare function buildAuthorizationUrl(codeChallenge: string, state: string, options?: AuthScopeOptions & {
|
|
10
|
-
port?: number;
|
|
11
|
-
}): string;
|
|
12
|
-
export declare function exchangeCodeForToken(code: string, codeVerifier: string, port: number): Promise<string>;
|
|
13
|
-
//# sourceMappingURL=oauth.d.ts.map
|
package/dist/lib/oauth.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,mBAAmB,CAAA;AAO3E,eAAO,MAAM,iBAAiB,+CAA+C,CAAA;AAC7E,eAAO,MAAM,gBAAgB,cAAc,CAAA;AAE3C,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAA;CACpD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAMlE;AAED,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACnD,MAAM,CAYR;AAOD,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
package/dist/lib/oauth.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { CliError } from './errors.js';
|
|
2
|
-
import { oauthScopeFor } from './oauth-scopes.js';
|
|
3
|
-
import { DEFAULT_PORT, getRedirectUri } from './oauth-server.js';
|
|
4
|
-
import { fetchTodoist } from './usage-tracking.js';
|
|
5
|
-
const TODOIST_CLIENT_ID = '04863cc1e3584830a578622f50224d5b';
|
|
6
|
-
const OAUTH_AUTHORIZE_URL = 'https://todoist.com/oauth/authorize';
|
|
7
|
-
const OAUTH_TOKEN_URL = 'https://todoist.com/oauth/access_token';
|
|
8
|
-
export const READ_WRITE_SCOPES = 'data:read_write,data:delete,project:delete';
|
|
9
|
-
export const READ_ONLY_SCOPES = 'data:read';
|
|
10
|
-
export function resolveAuthScope(options) {
|
|
11
|
-
const parts = [options.readOnly ? READ_ONLY_SCOPES : READ_WRITE_SCOPES];
|
|
12
|
-
for (const scope of options.additionalScopes ?? []) {
|
|
13
|
-
parts.push(oauthScopeFor(scope));
|
|
14
|
-
}
|
|
15
|
-
return parts.join(',');
|
|
16
|
-
}
|
|
17
|
-
export function buildAuthorizationUrl(codeChallenge, state, options = {}) {
|
|
18
|
-
const scope = resolveAuthScope(options);
|
|
19
|
-
const redirectUri = getRedirectUri(options.port ?? DEFAULT_PORT);
|
|
20
|
-
const params = new URLSearchParams({
|
|
21
|
-
client_id: TODOIST_CLIENT_ID,
|
|
22
|
-
scope,
|
|
23
|
-
state: state,
|
|
24
|
-
redirect_uri: redirectUri,
|
|
25
|
-
code_challenge: codeChallenge,
|
|
26
|
-
code_challenge_method: 'S256',
|
|
27
|
-
});
|
|
28
|
-
return `${OAUTH_AUTHORIZE_URL}?${params.toString()}`;
|
|
29
|
-
}
|
|
30
|
-
export async function exchangeCodeForToken(code, codeVerifier, port) {
|
|
31
|
-
const body = new URLSearchParams({
|
|
32
|
-
client_id: TODOIST_CLIENT_ID,
|
|
33
|
-
code: code,
|
|
34
|
-
code_verifier: codeVerifier,
|
|
35
|
-
redirect_uri: getRedirectUri(port),
|
|
36
|
-
});
|
|
37
|
-
const response = await fetchTodoist(OAUTH_TOKEN_URL, {
|
|
38
|
-
method: 'POST',
|
|
39
|
-
headers: {
|
|
40
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
41
|
-
},
|
|
42
|
-
body: body.toString(),
|
|
43
|
-
});
|
|
44
|
-
if (!response.ok) {
|
|
45
|
-
const text = await response.text();
|
|
46
|
-
throw new CliError('AUTH_FAILED', `Token exchange failed: ${response.status} ${text}`);
|
|
47
|
-
}
|
|
48
|
-
const data = await response.json();
|
|
49
|
-
return data.access_token;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=oauth.js.map
|
package/dist/lib/oauth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/lib/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAA4B,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAChE,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,MAAM,CAAC,MAAM,iBAAiB,GAAG,4CAA4C,CAAA;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAA;AAO3C,MAAM,UAAU,gBAAgB,CAAC,OAAyB;IACtD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAA;IACvE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,aAAqB,EACrB,KAAa,EACb,UAAgD,EAAE;IAElD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,CAAA;IAChE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QAC/B,SAAS,EAAE,iBAAiB;QAC5B,KAAK;QACL,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,WAAW;QACzB,cAAc,EAAE,aAAa;QAC7B,qBAAqB,EAAE,MAAM;KAChC,CAAC,CAAA;IACF,OAAO,GAAG,mBAAmB,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;AACxD,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,IAAY,EACZ,YAAoB,EACpB,IAAY;IAEZ,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC7B,SAAS,EAAE,iBAAiB;QAC5B,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC;KACrC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,cAAc,EAAE,mCAAmC;SACtD;QACD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACxB,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,IAAI,QAAQ,CAAC,aAAa,EAAE,0BAA0B,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,MAAM,IAAI,GAAkB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACjD,OAAO,IAAI,CAAC,YAAY,CAAA;AAC5B,CAAC"}
|
package/dist/lib/pkce.d.ts
DELETED
package/dist/lib/pkce.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../src/lib/pkce.ts"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,IAAI,MAAM,CAO7C;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/lib/pkce.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { createHash, randomBytes } from 'node:crypto';
|
|
2
|
-
const VERIFIER_CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';
|
|
3
|
-
const VERIFIER_LENGTH = 64;
|
|
4
|
-
export function generateCodeVerifier() {
|
|
5
|
-
const bytes = randomBytes(VERIFIER_LENGTH);
|
|
6
|
-
let verifier = '';
|
|
7
|
-
for (let i = 0; i < VERIFIER_LENGTH; i++) {
|
|
8
|
-
verifier += VERIFIER_CHARSET[bytes[i] % VERIFIER_CHARSET.length];
|
|
9
|
-
}
|
|
10
|
-
return verifier;
|
|
11
|
-
}
|
|
12
|
-
export function generateCodeChallenge(verifier) {
|
|
13
|
-
const hash = createHash('sha256').update(verifier).digest();
|
|
14
|
-
return hash.toString('base64url');
|
|
15
|
-
}
|
|
16
|
-
export function generateState() {
|
|
17
|
-
return randomBytes(16).toString('hex');
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=pkce.js.map
|
package/dist/lib/pkce.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/lib/pkce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,gBAAgB,GAAG,oEAAoE,CAAA;AAC7F,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B,MAAM,UAAU,oBAAoB;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,CAAA;IAC1C,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;IAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,aAAa;IACzB,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC"}
|