@xcrawl/cli 0.2.0 → 0.2.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/README.md CHANGED
@@ -25,6 +25,9 @@ Use either login command or environment variable.
25
25
  # Save API key locally
26
26
  xcrawl login --api-key <your_api_key>
27
27
 
28
+ # Clear local API key
29
+ xcrawl logout
30
+
28
31
  # Or use env var
29
32
  export XCRAWL_API_KEY=<your_api_key>
30
33
  ```
@@ -38,6 +41,9 @@ xcrawl scrape https://example.com --format markdown
38
41
  # Search
39
42
  xcrawl search "xcrawl cli" --limit 10
40
43
 
44
+ # Show account and credit package status
45
+ xcrawl status
46
+
41
47
  # Map links in a site
42
48
  xcrawl map https://example.com --limit 10
43
49
 
@@ -95,8 +101,7 @@ Environment variables:
95
101
  ## Public API Notes
96
102
 
97
103
  - Default API base URL is `https://run.xcrawl.com`.
98
- - Public API currently does not expose standalone `whoami` / `credits` endpoints.
99
- - CLI handles this with explicit fallback output instead of hard failure.
104
+ - Account status endpoint: `GET /web_v1/user/credit-user-info`.
100
105
 
101
106
  ## Local Development
102
107
 
@@ -0,0 +1,2 @@
1
+ import type { ApiTransport, StatusResponse } from '../types/api';
2
+ export declare function fetchStatus(client: ApiTransport): Promise<StatusResponse>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchStatus = fetchStatus;
4
+ function toNumber(value) {
5
+ if (typeof value === 'number' && Number.isFinite(value)) {
6
+ return value;
7
+ }
8
+ return 0;
9
+ }
10
+ function mapStatusData(raw) {
11
+ return {
12
+ username: raw.username ?? '',
13
+ email: raw.email ?? '',
14
+ createdAt: raw.created_at,
15
+ creditLevel: toNumber(raw.credit_level),
16
+ totalCredits: toNumber(raw.total_credits),
17
+ remainCredits: toNumber(raw.remain_credits),
18
+ consumedCredits: toNumber(raw.consumed_credits),
19
+ todayCredits: toNumber(raw.today_credits),
20
+ nextResetAt: raw.next_reset_at ?? null,
21
+ expiredAt: raw.expired_at ?? null,
22
+ packageTitle: raw.package_title ?? null
23
+ };
24
+ }
25
+ function isStatusEnvelope(value) {
26
+ return Object.prototype.hasOwnProperty.call(value, 'data');
27
+ }
28
+ async function fetchStatus(client) {
29
+ const raw = await client.get('/web_v1/user/credit-user-info');
30
+ if (isStatusEnvelope(raw)) {
31
+ return mapStatusData(raw.data ?? {});
32
+ }
33
+ return mapStatusData(raw);
34
+ }
35
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/api/status.ts"],"names":[],"mappings":";;AA8BA,kCAQC;AApCD,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,GAAkB;IACvC,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE;QAC5B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;QACvC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;QACzC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3C,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC/C,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;QACzC,WAAW,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;QACtC,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;QACjC,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAwC;IAChE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAoB;IACpD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAoC,+BAA+B,CAAC,CAAC;IAEjG,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerDoctorCommand = registerDoctorCommand;
4
- const whoami_1 = require("../api/whoami");
4
+ const status_1 = require("../api/status");
5
5
  const config_1 = require("../core/config");
6
6
  const output_1 = require("../core/output");
7
7
  const text_1 = require("../formatters/text");
@@ -63,11 +63,11 @@ function registerDoctorCommand(program, context) {
63
63
  if (runtime.apiKey) {
64
64
  try {
65
65
  const client = context.createApiClient(runtime);
66
- await (0, whoami_1.fetchWhoAmI)(client);
66
+ await (0, status_1.fetchStatus)(client);
67
67
  report.checks.push({
68
68
  name: 'api_connectivity',
69
69
  ok: true,
70
- detail: 'whoami check passed'
70
+ detail: 'status check passed'
71
71
  });
72
72
  }
73
73
  catch (error) {
@@ -87,7 +87,7 @@ function registerDoctorCommand(program, context) {
87
87
  });
88
88
  return;
89
89
  }
90
- const message = error instanceof Error ? error.message : 'whoami check failed';
90
+ const message = error instanceof Error ? error.message : 'status check failed';
91
91
  report.checks.push({
92
92
  name: 'api_connectivity',
93
93
  ok: false,
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import type { CliContext } from '../types/cli';
3
+ export declare function registerLogoutCommand(program: Command, context: CliContext): void;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerLogoutCommand = registerLogoutCommand;
4
+ const config_1 = require("../core/config");
5
+ const output_1 = require("../core/output");
6
+ const text_1 = require("../formatters/text");
7
+ function registerLogoutCommand(program, context) {
8
+ program
9
+ .command('logout')
10
+ .description('Clear the locally saved XCrawl API key')
11
+ .option('--json', 'Output result as JSON')
12
+ .action(async (options) => {
13
+ const result = await (0, config_1.clearLocalApiKey)(context.homeDir);
14
+ await (0, output_1.renderOutput)({
15
+ ctx: { stdout: context.stdout },
16
+ data: {
17
+ ok: true,
18
+ cleared: result.cleared,
19
+ configPath: result.configPath
20
+ },
21
+ json: options.json,
22
+ renderText: () => (0, text_1.formatLogoutResult)(result.cleared, result.configPath)
23
+ });
24
+ });
25
+ }
26
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;AAWA,sDAmBC;AA5BD,2CAAkD;AAClD,2CAA8C;AAC9C,6CAAwD;AAOxD,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,OAAmB;IACzE,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEvD,MAAM,IAAA,qBAAY,EAAC;YACjB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;YAC/B,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B;YACD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAA,yBAAkB,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;SACxE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ import type { CliContext } from '../types/cli';
3
+ export declare function registerStatusCommand(program: Command, context: CliContext): void;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerStatusCommand = registerStatusCommand;
4
+ const status_1 = require("../api/status");
5
+ const auth_1 = require("../core/auth");
6
+ const output_1 = require("../core/output");
7
+ const text_1 = require("../formatters/text");
8
+ const validate_1 = require("../utils/validate");
9
+ const shared_1 = require("./shared");
10
+ function registerStatusCommand(program, context) {
11
+ program
12
+ .command('status')
13
+ .description('Show account profile and credit package status')
14
+ .option('--api-key <key>', 'Override API key')
15
+ .option('--api-base-url <url>', 'Override API base URL')
16
+ .option('--timeout <ms>', 'Request timeout in milliseconds')
17
+ .option('--debug', 'Enable debug output')
18
+ .option('--json', 'Output result as JSON')
19
+ .option('--output <path>', 'Save output to a file')
20
+ .action(async (options) => {
21
+ const runtime = await (0, shared_1.resolveCommandRuntimeConfig)(context, {
22
+ apiKey: options.apiKey,
23
+ apiBaseUrl: options.apiBaseUrl,
24
+ timeoutMs: (0, validate_1.parsePositiveInt)(options.timeout, 'timeout'),
25
+ debug: options.debug
26
+ });
27
+ runtime.apiKey = (0, auth_1.requireApiKey)(runtime.apiKey);
28
+ const client = context.createApiClient(runtime);
29
+ const outputPath = (0, shared_1.resolveOutputPath)(context, options.output);
30
+ const result = await (0, status_1.fetchStatus)(client);
31
+ await (0, output_1.renderOutput)({
32
+ ctx: { stdout: context.stdout },
33
+ data: result,
34
+ json: options.json,
35
+ outputPath,
36
+ renderText: text_1.formatStatus
37
+ });
38
+ });
39
+ }
40
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;AAmBA,sDAgCC;AAjDD,0CAA4C;AAC5C,uCAA6C;AAC7C,2CAA8C;AAC9C,6CAAkD;AAElD,gDAAqD;AACrD,qCAA0E;AAW1E,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,OAAmB;IACzE,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SAC7C,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;SACvD,MAAM,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;SAC3D,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,MAAM,IAAA,oCAA2B,EAAC,OAAO,EAAE;YACzD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,IAAA,2BAAgB,EAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;YACvD,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,GAAG,IAAA,oBAAa,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,IAAA,qBAAY,EAAC;YACjB,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;YAC/B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU;YACV,UAAU,EAAE,mBAAY;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -2,6 +2,11 @@ import type { ConfigField, ConfigKey, RuntimeConfig, XCrawlConfig } from '../typ
2
2
  export declare function getConfigPath(homeDir?: string): string;
3
3
  export declare function readLocalConfig(homeDir?: string): Promise<XCrawlConfig>;
4
4
  export declare function saveLocalConfig(nextConfig: XCrawlConfig, homeDir?: string): Promise<string>;
5
+ export interface ClearLocalApiKeyResult {
6
+ configPath: string;
7
+ cleared: boolean;
8
+ }
9
+ export declare function clearLocalApiKey(homeDir?: string): Promise<ClearLocalApiKeyResult>;
5
10
  export interface ResolveRuntimeConfigInput {
6
11
  flags?: XCrawlConfig;
7
12
  env?: XCrawlConfig;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getConfigPath = getConfigPath;
7
7
  exports.readLocalConfig = readLocalConfig;
8
8
  exports.saveLocalConfig = saveLocalConfig;
9
+ exports.clearLocalApiKey = clearLocalApiKey;
9
10
  exports.resolveRuntimeConfig = resolveRuntimeConfig;
10
11
  exports.isConfigKey = isConfigKey;
11
12
  exports.resolveConfigField = resolveConfigField;
@@ -60,6 +61,29 @@ async function saveLocalConfig(nextConfig, homeDir) {
60
61
  throw new errors_1.ConfigError(`Failed to write config file: ${configPath}`, 'Please check directory permissions.', error);
61
62
  }
62
63
  }
64
+ async function clearLocalApiKey(homeDir) {
65
+ const configPath = getConfigPath(homeDir);
66
+ const existing = await readLocalConfig(homeDir);
67
+ if (!Object.prototype.hasOwnProperty.call(existing, 'apiKey')) {
68
+ return {
69
+ configPath,
70
+ cleared: false
71
+ };
72
+ }
73
+ const configDir = node_path_1.default.dirname(configPath);
74
+ const { apiKey: _apiKey, ...withoutApiKey } = existing;
75
+ try {
76
+ await (0, promises_1.mkdir)(configDir, { recursive: true });
77
+ await (0, promises_1.writeFile)(configPath, `${JSON.stringify(withoutApiKey, null, 2)}\n`, 'utf8');
78
+ return {
79
+ configPath,
80
+ cleared: true
81
+ };
82
+ }
83
+ catch (error) {
84
+ throw new errors_1.ConfigError(`Failed to write config file: ${configPath}`, 'Please check directory permissions.', error);
85
+ }
86
+ }
63
87
  function resolveRuntimeConfig(input) {
64
88
  const defaults = input.defaults ?? constants_1.DEFAULT_RUNTIME_CONFIG;
65
89
  const flags = input.flags ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { CrawlStartResponse, CrawlStatusResponse, CreditsResponse, MapResponse, ScrapeResponse, SearchResponse, WhoAmIResponse } from '../types/api';
1
+ import type { CrawlStartResponse, CrawlStatusResponse, MapResponse, ScrapeResponse, SearchResponse, StatusResponse } from '../types/api';
2
2
  export declare function formatLoginSuccess(configPath: string): string;
3
- export declare function formatWhoami(data: WhoAmIResponse): string;
3
+ export declare function formatLogoutResult(cleared: boolean, configPath: string): string;
4
+ export declare function formatStatus(data: StatusResponse): string;
4
5
  export declare function formatScrape(data: ScrapeResponse): string;
5
6
  export declare function formatSearch(data: SearchResponse): string;
6
- export declare function formatCredits(data: CreditsResponse): string;
7
7
  export declare function formatMap(data: MapResponse): string;
8
8
  export declare function formatCrawlStart(data: CrawlStartResponse): string;
9
9
  export declare function formatCrawlStatus(data: CrawlStatusResponse): string;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatLoginSuccess = formatLoginSuccess;
4
- exports.formatWhoami = formatWhoami;
4
+ exports.formatLogoutResult = formatLogoutResult;
5
+ exports.formatStatus = formatStatus;
5
6
  exports.formatScrape = formatScrape;
6
7
  exports.formatSearch = formatSearch;
7
- exports.formatCredits = formatCredits;
8
8
  exports.formatMap = formatMap;
9
9
  exports.formatCrawlStart = formatCrawlStart;
10
10
  exports.formatCrawlStatus = formatCrawlStatus;
@@ -14,12 +14,25 @@ exports.formatDoctorReport = formatDoctorReport;
14
14
  function formatLoginSuccess(configPath) {
15
15
  return `API key saved to: ${configPath}`;
16
16
  }
17
- function formatWhoami(data) {
17
+ function formatLogoutResult(cleared, configPath) {
18
+ if (!cleared) {
19
+ return 'No local API key found. Already logged out.';
20
+ }
21
+ return `API key removed from: ${configPath}`;
22
+ }
23
+ function formatStatus(data) {
18
24
  return [
19
- `Account: ${data.name ?? 'N/A'}`,
25
+ `Username: ${data.username || 'N/A'}`,
20
26
  `Email: ${data.email}`,
21
- `Plan: ${data.plan ?? 'N/A'}`,
22
- `ID: ${data.id}`
27
+ `Created At: ${data.createdAt ?? 'N/A'}`,
28
+ `Credit Level: ${data.creditLevel}`,
29
+ `Total Credits: ${data.totalCredits}`,
30
+ `Remaining Credits: ${data.remainCredits}`,
31
+ `Consumed Credits: ${data.consumedCredits}`,
32
+ `Today Credits: ${data.todayCredits}`,
33
+ `Next Reset At: ${data.nextResetAt ?? 'N/A'}`,
34
+ `Expired At: ${data.expiredAt ?? 'N/A'}`,
35
+ `Package: ${data.packageTitle ?? 'N/A'}`
23
36
  ].join('\n');
24
37
  }
25
38
  function formatScrape(data) {
@@ -36,19 +49,11 @@ function formatSearch(data) {
36
49
  });
37
50
  return `Query: ${data.query}\n\n${lines.join('\n\n')}`;
38
51
  }
39
- function formatCredits(data) {
40
- return [
41
- `Remaining: ${data.remaining}`,
42
- `Used: ${data.used}`,
43
- `Total: ${data.total}`,
44
- `Reset At: ${data.resetAt ?? 'N/A'}`
45
- ].join('\n');
46
- }
47
52
  function formatMap(data) {
48
53
  if (data.links.length === 0) {
49
54
  return `Source URL: ${data.url}\nTotal links: 0`;
50
55
  }
51
- const lines = data.links.map((link, index) => `${index + 1}. ${link.title ?? 'Untitled'}\n ${link.url}`);
56
+ const lines = data.links.map((link, index) => `${index + 1}. ${link.url}`);
52
57
  return `Source URL: ${data.url}\nTotal links: ${data.total}\n\n${lines.join('\n\n')}`;
53
58
  }
54
59
  function formatCrawlStart(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/formatters/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/formatters/text.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,21 +14,21 @@ const commander_1 = require("commander");
14
14
  const client_1 = require("./api/client");
15
15
  const config_1 = require("./commands/config");
16
16
  const crawl_1 = require("./commands/crawl");
17
- const credits_1 = require("./commands/credits");
18
17
  const doctor_1 = require("./commands/doctor");
19
18
  const init_1 = require("./commands/init");
20
19
  const login_1 = require("./commands/login");
20
+ const logout_1 = require("./commands/logout");
21
21
  const map_1 = require("./commands/map");
22
22
  const scrape_1 = require("./commands/scrape");
23
23
  const search_1 = require("./commands/search");
24
- const whoami_1 = require("./commands/whoami");
24
+ const status_1 = require("./commands/status");
25
25
  const errors_1 = require("./core/errors");
26
26
  const KNOWN_COMMANDS = new Set([
27
27
  'login',
28
- 'whoami',
28
+ 'logout',
29
+ 'status',
29
30
  'scrape',
30
31
  'search',
31
- 'credits',
32
32
  'doctor',
33
33
  'map',
34
34
  'crawl',
@@ -36,6 +36,9 @@ const KNOWN_COMMANDS = new Set([
36
36
  'init',
37
37
  'help'
38
38
  ]);
39
+ function isLikelyHttpUrl(value) {
40
+ return value.startsWith('http://') || value.startsWith('https://');
41
+ }
39
42
  function normalizeArgv(argv) {
40
43
  if (argv.length === 0) {
41
44
  return argv;
@@ -50,6 +53,9 @@ function normalizeArgv(argv) {
50
53
  if (first.startsWith('-') || KNOWN_COMMANDS.has(first)) {
51
54
  return argv;
52
55
  }
56
+ if (!isLikelyHttpUrl(first)) {
57
+ return argv;
58
+ }
53
59
  return ['scrape', ...argv];
54
60
  }
55
61
  function createDefaultContext(overrides = {}) {
@@ -74,10 +80,10 @@ function createProgram(context) {
74
80
  const program = new commander_1.Command();
75
81
  program.name('xcrawl').description('XCrawl CLI').version(context.version);
76
82
  (0, login_1.registerLoginCommand)(program, context);
77
- (0, whoami_1.registerWhoamiCommand)(program, context);
83
+ (0, logout_1.registerLogoutCommand)(program, context);
84
+ (0, status_1.registerStatusCommand)(program, context);
78
85
  (0, scrape_1.registerScrapeCommand)(program, context);
79
86
  (0, search_1.registerSearchCommand)(program, context);
80
- (0, credits_1.registerCreditsCommand)(program, context);
81
87
  (0, doctor_1.registerDoctorCommand)(program, context);
82
88
  (0, map_1.registerMapCommand)(program, context);
83
89
  (0, crawl_1.registerCrawlCommand)(program, context);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,36 @@ export interface ApiTransport {
9
9
  get<T>(path: string, options?: ApiRequestOptions): Promise<T>;
10
10
  post<T>(path: string, options?: ApiRequestOptions): Promise<T>;
11
11
  }
12
- export interface WhoAmIResponse {
13
- id: string;
12
+ export interface StatusResponse {
13
+ username: string;
14
14
  email: string;
15
- name?: string;
16
- plan?: string;
15
+ createdAt?: string;
16
+ creditLevel: number;
17
+ totalCredits: number;
18
+ remainCredits: number;
19
+ consumedCredits: number;
20
+ todayCredits: number;
21
+ nextResetAt?: string | null;
22
+ expiredAt?: string | null;
23
+ packageTitle?: string | null;
24
+ }
25
+ export interface RawStatusData {
26
+ username?: string;
27
+ email?: string;
28
+ created_at?: string;
29
+ credit_level?: number;
30
+ total_credits?: number;
31
+ remain_credits?: number;
32
+ consumed_credits?: number;
33
+ today_credits?: number;
34
+ next_reset_at?: string | null;
35
+ expired_at?: string | null;
36
+ package_title?: string | null;
37
+ }
38
+ export interface RawStatusEnvelope {
39
+ code?: number;
40
+ msg?: string;
41
+ data?: RawStatusData;
17
42
  }
18
43
  export interface ScrapeRequest {
19
44
  url: string;
@@ -82,12 +107,6 @@ export interface RawSearchResponse {
82
107
  ended_at?: string;
83
108
  total_credits_used?: number;
84
109
  }
85
- export interface CreditsResponse {
86
- remaining: number;
87
- used: number;
88
- total: number;
89
- resetAt?: string;
90
- }
91
110
  export interface MapRequest {
92
111
  url: string;
93
112
  maxDepth?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xcrawl/cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "XCrawl command line interface",
5
5
  "publishConfig": {
6
6
  "access": "public"