@invinite-org/invinite-data-cli 0.1.19

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.
Files changed (93) hide show
  1. package/README.md +693 -0
  2. package/claude-plugin/.claude-plugin/plugin.json +11 -0
  3. package/claude-plugin/agents/invinite-data.md +46 -0
  4. package/claude-plugin/commands/financial-research.md +69 -0
  5. package/claude-plugin/skills/invinite-data-cli/SKILL.md +251 -0
  6. package/dist/bin/invd.d.ts +2 -0
  7. package/dist/bin/invd.js +5 -0
  8. package/dist/bin/invd.js.map +1 -0
  9. package/dist/src/cli.d.ts +2 -0
  10. package/dist/src/cli.js +47 -0
  11. package/dist/src/cli.js.map +1 -0
  12. package/dist/src/client/api-client.d.ts +6 -0
  13. package/dist/src/client/api-client.js +40 -0
  14. package/dist/src/client/api-client.js.map +1 -0
  15. package/dist/src/client/pagination.d.ts +3 -0
  16. package/dist/src/client/pagination.js +27 -0
  17. package/dist/src/client/pagination.js.map +1 -0
  18. package/dist/src/client/websocket-client.d.ts +1 -0
  19. package/dist/src/client/websocket-client.js +57 -0
  20. package/dist/src/client/websocket-client.js.map +1 -0
  21. package/dist/src/commands/company.d.ts +2 -0
  22. package/dist/src/commands/company.js +220 -0
  23. package/dist/src/commands/company.js.map +1 -0
  24. package/dist/src/commands/config.d.ts +2 -0
  25. package/dist/src/commands/config.js +56 -0
  26. package/dist/src/commands/config.js.map +1 -0
  27. package/dist/src/commands/filings.d.ts +2 -0
  28. package/dist/src/commands/filings.js +139 -0
  29. package/dist/src/commands/filings.js.map +1 -0
  30. package/dist/src/commands/financials.d.ts +2 -0
  31. package/dist/src/commands/financials.js +162 -0
  32. package/dist/src/commands/financials.js.map +1 -0
  33. package/dist/src/commands/health.d.ts +2 -0
  34. package/dist/src/commands/health.js +18 -0
  35. package/dist/src/commands/health.js.map +1 -0
  36. package/dist/src/commands/insider-trades.d.ts +2 -0
  37. package/dist/src/commands/insider-trades.js +56 -0
  38. package/dist/src/commands/insider-trades.js.map +1 -0
  39. package/dist/src/commands/ipos.d.ts +2 -0
  40. package/dist/src/commands/ipos.js +42 -0
  41. package/dist/src/commands/ipos.js.map +1 -0
  42. package/dist/src/commands/market.d.ts +2 -0
  43. package/dist/src/commands/market.js +34 -0
  44. package/dist/src/commands/market.js.map +1 -0
  45. package/dist/src/commands/metadata.d.ts +2 -0
  46. package/dist/src/commands/metadata.js +39 -0
  47. package/dist/src/commands/metadata.js.map +1 -0
  48. package/dist/src/commands/metrics.d.ts +2 -0
  49. package/dist/src/commands/metrics.js +158 -0
  50. package/dist/src/commands/metrics.js.map +1 -0
  51. package/dist/src/commands/ownership.d.ts +2 -0
  52. package/dist/src/commands/ownership.js +152 -0
  53. package/dist/src/commands/ownership.js.map +1 -0
  54. package/dist/src/commands/plugin.d.ts +2 -0
  55. package/dist/src/commands/plugin.js +303 -0
  56. package/dist/src/commands/plugin.js.map +1 -0
  57. package/dist/src/commands/segments.d.ts +2 -0
  58. package/dist/src/commands/segments.js +64 -0
  59. package/dist/src/commands/segments.js.map +1 -0
  60. package/dist/src/commands/ws.d.ts +2 -0
  61. package/dist/src/commands/ws.js +14 -0
  62. package/dist/src/commands/ws.js.map +1 -0
  63. package/dist/src/config/auth.d.ts +2 -0
  64. package/dist/src/config/auth.js +70 -0
  65. package/dist/src/config/auth.js.map +1 -0
  66. package/dist/src/config/config-manager.d.ts +6 -0
  67. package/dist/src/config/config-manager.js +37 -0
  68. package/dist/src/config/config-manager.js.map +1 -0
  69. package/dist/src/formatters/json-formatter.d.ts +1 -0
  70. package/dist/src/formatters/json-formatter.js +4 -0
  71. package/dist/src/formatters/json-formatter.js.map +1 -0
  72. package/dist/src/formatters/table-formatter.d.ts +3 -0
  73. package/dist/src/formatters/table-formatter.js +63 -0
  74. package/dist/src/formatters/table-formatter.js.map +1 -0
  75. package/dist/src/formatters/tree-formatter.d.ts +11 -0
  76. package/dist/src/formatters/tree-formatter.js +30 -0
  77. package/dist/src/formatters/tree-formatter.js.map +1 -0
  78. package/dist/src/shared/errors.d.ts +6 -0
  79. package/dist/src/shared/errors.js +32 -0
  80. package/dist/src/shared/errors.js.map +1 -0
  81. package/dist/src/shared/options.d.ts +13 -0
  82. package/dist/src/shared/options.js +14 -0
  83. package/dist/src/shared/options.js.map +1 -0
  84. package/dist/src/shared/output.d.ts +3 -0
  85. package/dist/src/shared/output.js +13 -0
  86. package/dist/src/shared/output.js.map +1 -0
  87. package/dist/src/shared/spinner.d.ts +3 -0
  88. package/dist/src/shared/spinner.js +12 -0
  89. package/dist/src/shared/spinner.js.map +1 -0
  90. package/dist/src/shared/types.d.ts +11 -0
  91. package/dist/src/shared/types.js +2 -0
  92. package/dist/src/shared/types.js.map +1 -0
  93. package/package.json +54 -0
@@ -0,0 +1,18 @@
1
+ import { apiGet } from '../client/api-client.js';
2
+ import { withErrorHandling } from '../shared/errors.js';
3
+ import { output } from '../shared/output.js';
4
+ import chalk from 'chalk';
5
+ export function registerHealthCommand(program) {
6
+ program
7
+ .command('health')
8
+ .description('Check API health status')
9
+ .action(withErrorHandling(async () => {
10
+ const parentOpts = program.opts();
11
+ const data = await apiGet({ path: '/health' });
12
+ output(data, parentOpts, () => {
13
+ console.log(chalk.green('✓'), `API is ${data.status}`);
14
+ console.log(chalk.dim(` Timestamp: ${data.timestamp}`));
15
+ });
16
+ }));
17
+ }
18
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/commands/health.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;QACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAwC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerInsiderTradesCommands(program: Command): void;
@@ -0,0 +1,56 @@
1
+ import { apiGet } from '../client/api-client.js';
2
+ import { fetchAllPages } from '../client/pagination.js';
3
+ import { withErrorHandling } from '../shared/errors.js';
4
+ import { output } from '../shared/output.js';
5
+ import { formatTable, printPaginationHint } from '../formatters/table-formatter.js';
6
+ import { setJsonMode } from '../shared/spinner.js';
7
+ import chalk from 'chalk';
8
+ export function registerInsiderTradesCommands(program) {
9
+ const insiderTrades = program
10
+ .command('insider-trades')
11
+ .description('Insider trading data');
12
+ insiderTrades
13
+ .command('list')
14
+ .description('Fetch insider transactions')
15
+ .requiredOption('-i, --identifier <ticker>', 'Ticker or CIK')
16
+ .option('--start-date <date>', 'Start date (YYYY-MM-DD)')
17
+ .option('--end-date <date>', 'End date (YYYY-MM-DD)')
18
+ .option('--acquired-disposed <ad>', 'Filter: A (acquisition) or D (disposition)')
19
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
20
+ .option('-l, --limit <n>', 'Max results', '100')
21
+ .option('--offset <n>', 'Offset', '0')
22
+ .action(withErrorHandling(async (cmdOpts) => {
23
+ const opts = program.opts();
24
+ if (opts.json)
25
+ setJsonMode(true);
26
+ let data = await apiGet({
27
+ path: '/v1/insider-trades',
28
+ params: {
29
+ identifier: cmdOpts.identifier,
30
+ start_date: cmdOpts.startDate,
31
+ end_date: cmdOpts.endDate,
32
+ acquired_disposed: cmdOpts.acquiredDisposed,
33
+ sort: cmdOpts.sort,
34
+ limit: cmdOpts.limit,
35
+ offset: cmdOpts.offset,
36
+ },
37
+ });
38
+ if (opts.all && data.next_url) {
39
+ data = await fetchAllPages(data, d => d.next_url, (acc, page) => ({ ...page, transactions: [...acc.transactions, ...page.transactions] }));
40
+ }
41
+ output(data, opts, () => {
42
+ console.log(chalk.bold(`\n${data.ticker} (${data.cik}) Insider Trades\n`));
43
+ formatTable(data.transactions, [
44
+ 'filed_at', 'period_of_report', 'reporting_person_name',
45
+ 'reporting_person_is_director', 'reporting_person_is_officer', 'reporting_person_is_ten_percent_owner', 'reporting_person_is_other',
46
+ 'reporting_person_officer_title', 'reporting_person_other_text',
47
+ 'security_title', 'acquired_disposed', 'coding_code',
48
+ 'shares', 'share_price', 'total',
49
+ 'shares_owned_before_transaction', 'shares_owned_following_transaction',
50
+ 'accession_number',
51
+ ]);
52
+ printPaginationHint(data.next_url);
53
+ });
54
+ }));
55
+ }
56
+ //# sourceMappingURL=insider-trades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insider-trades.js","sourceRoot":"","sources":["../../../src/commands/insider-trades.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerIposCommands(program: Command): void;
@@ -0,0 +1,42 @@
1
+ import { apiGet } from '../client/api-client.js';
2
+ import { fetchAllPages } from '../client/pagination.js';
3
+ import { withErrorHandling } from '../shared/errors.js';
4
+ import { output } from '../shared/output.js';
5
+ import { formatTable, printPaginationHint } from '../formatters/table-formatter.js';
6
+ import { setJsonMode } from '../shared/spinner.js';
7
+ export function registerIposCommands(program) {
8
+ const ipos = program
9
+ .command('ipos')
10
+ .description('IPO listings');
11
+ ipos
12
+ .command('list')
13
+ .description('List IPOs')
14
+ .option('--start-date <date>', 'Start date (YYYY-MM-DD)')
15
+ .option('--end-date <date>', 'End date (YYYY-MM-DD)')
16
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
17
+ .option('-l, --limit <n>', 'Max results', '100')
18
+ .option('--offset <n>', 'Offset', '0')
19
+ .action(withErrorHandling(async (cmdOpts) => {
20
+ const opts = program.opts();
21
+ if (opts.json)
22
+ setJsonMode(true);
23
+ let data = await apiGet({
24
+ path: '/v1/ipos',
25
+ params: {
26
+ start_date: cmdOpts.startDate,
27
+ end_date: cmdOpts.endDate,
28
+ sort: cmdOpts.sort,
29
+ limit: cmdOpts.limit,
30
+ offset: cmdOpts.offset,
31
+ },
32
+ });
33
+ if (opts.all && data.next_url) {
34
+ data = await fetchAllPages(data, d => d.next_url, (acc, page) => ({ ...page, ipos: [...acc.ipos, ...page.ipos] }));
35
+ }
36
+ output(data, opts, () => {
37
+ formatTable(data.ipos);
38
+ printPaginationHint(data.next_url);
39
+ });
40
+ }));
41
+ }
42
+ //# sourceMappingURL=ipos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipos.js","sourceRoot":"","sources":["../../../src/commands/ipos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,cAAc,CAAC,CAAC;IAE/B,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;SACxD,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SACpD,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC;SACpD,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,KAAK,CAAC;SAC/C,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,CAAC;SACrC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,GAAG,MAAM,MAAM,CAAqC;YAC1D,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE;gBACN,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB;SACF,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EACf,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMarketCommands(program: Command): void;
@@ -0,0 +1,34 @@
1
+ import { apiGet } from '../client/api-client.js';
2
+ import { fetchAllPages } from '../client/pagination.js';
3
+ import { withErrorHandling } from '../shared/errors.js';
4
+ import { output } from '../shared/output.js';
5
+ import { formatTable, printPaginationHint } from '../formatters/table-formatter.js';
6
+ import { setJsonMode } from '../shared/spinner.js';
7
+ export function registerMarketCommands(program) {
8
+ const market = program
9
+ .command('market')
10
+ .description('Market data');
11
+ market
12
+ .command('holidays')
13
+ .description('Fetch market holidays')
14
+ .option('-s, --sort <dir>', 'Sort direction', 'asc')
15
+ .option('-l, --limit <n>', 'Max results', '100')
16
+ .option('--offset <n>', 'Offset', '0')
17
+ .action(withErrorHandling(async (cmdOpts) => {
18
+ const opts = program.opts();
19
+ if (opts.json)
20
+ setJsonMode(true);
21
+ let data = await apiGet({
22
+ path: '/v1/market/market-holidays',
23
+ params: { sort: cmdOpts.sort, limit: cmdOpts.limit, offset: cmdOpts.offset },
24
+ });
25
+ if (opts.all && data.next_url) {
26
+ data = await fetchAllPages(data, d => d.next_url, (acc, page) => ({ ...page, holidays: [...acc.holidays, ...page.holidays] }));
27
+ }
28
+ output(data, opts, () => {
29
+ formatTable(data.holidays, ['day', 'event_name', 'start_time', 'end_time']);
30
+ printPaginationHint(data.next_url);
31
+ });
32
+ }));
33
+ }
34
+ //# sourceMappingURL=market.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/commands/market.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,aAAa,CAAC,CAAC;IAE9B,MAAM;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,CAAC;SACnD,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,KAAK,CAAC;SAC/C,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,CAAC;SACrC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,GAAG,MAAM,MAAM,CAAyC;YAC9D,IAAI,EAAE,4BAA4B;YAClC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SAC7E,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EACf,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC5E,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;YAC5E,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMetadataCommands(program: Command): void;
@@ -0,0 +1,39 @@
1
+ import { apiGet } from '../client/api-client.js';
2
+ import { withErrorHandling } from '../shared/errors.js';
3
+ import { output } from '../shared/output.js';
4
+ import { formatTable } from '../formatters/table-formatter.js';
5
+ import { setJsonMode } from '../shared/spinner.js';
6
+ import chalk from 'chalk';
7
+ export function registerMetadataCommands(program) {
8
+ const metadata = program
9
+ .command('metadata')
10
+ .description('API metadata');
11
+ metadata
12
+ .command('metrics')
13
+ .description('List available standardized metrics')
14
+ .action(withErrorHandling(async () => {
15
+ const opts = program.opts();
16
+ if (opts.json)
17
+ setJsonMode(true);
18
+ const data = await apiGet({ path: '/v1/metadata/list-available-metrics' });
19
+ output(data, opts, () => {
20
+ formatTable(data.metrics, ['metric_id', 'name']);
21
+ });
22
+ }));
23
+ metadata
24
+ .command('section-ids')
25
+ .description('List available section IDs for SEC filings')
26
+ .action(withErrorHandling(async () => {
27
+ const opts = program.opts();
28
+ if (opts.json)
29
+ setJsonMode(true);
30
+ const data = await apiGet({ path: '/v1/metadata/list-available-section-ids' });
31
+ output(data, opts, () => {
32
+ for (const ft of data.form_types) {
33
+ console.log(chalk.bold(`\n${ft.form_type}:`));
34
+ formatTable(ft.sections, ['section_id', 'part', 'item_id', 'title']);
35
+ }
36
+ });
37
+ }));
38
+ }
39
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/commands/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,cAAc,CAAC,CAAC;IAE/B,QAAQ;SACL,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAqB,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;IAEN,QAAQ;SACL,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;QACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAwB,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC,CAAC;QACtG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAC9C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMetricsCommands(program: Command): void;
@@ -0,0 +1,158 @@
1
+ import { apiGet } from '../client/api-client.js';
2
+ import { fetchAllPages } from '../client/pagination.js';
3
+ import { withErrorHandling } from '../shared/errors.js';
4
+ import { output } from '../shared/output.js';
5
+ import { formatTable, printPaginationHint } from '../formatters/table-formatter.js';
6
+ import { setJsonMode } from '../shared/spinner.js';
7
+ import chalk from 'chalk';
8
+ export function registerMetricsCommands(program) {
9
+ const metrics = program
10
+ .command('metrics')
11
+ .description('Financial metrics, ratios, and growth');
12
+ // ratios
13
+ metrics
14
+ .command('ratios')
15
+ .description('Fetch financial ratios')
16
+ .requiredOption('-i, --identifier <ticker>', 'Ticker or CIK')
17
+ .requiredOption('-p, --period <type>', 'Fiscal period type')
18
+ .option('--category <cat>', 'Ratio category (valuation, profitability, liquidity, solvency)')
19
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
20
+ .option('-l, --limit <n>', 'Max results', '10')
21
+ .option('--offset <n>', 'Offset', '0')
22
+ .action(withErrorHandling(async (cmdOpts) => {
23
+ const opts = program.opts();
24
+ if (opts.json)
25
+ setJsonMode(true);
26
+ let data = await apiGet({
27
+ path: '/v1/financial-metrics/ratios',
28
+ params: {
29
+ identifier: cmdOpts.identifier,
30
+ fiscal_period_type: cmdOpts.period,
31
+ category: cmdOpts.category,
32
+ sort: cmdOpts.sort,
33
+ limit: cmdOpts.limit,
34
+ offset: cmdOpts.offset,
35
+ },
36
+ });
37
+ if (opts.all) {
38
+ data = await fetchAllPages(data, d => d.companies?.[0]?.next_url, (acc, page) => ({
39
+ companies: acc.companies.map((c, i) => ({
40
+ ...c,
41
+ periods: [...c.periods, ...(page.companies[i]?.periods || [])],
42
+ next_url: page.companies[i]?.next_url,
43
+ })),
44
+ }));
45
+ }
46
+ output(data, opts, () => {
47
+ for (const c of data.companies) {
48
+ console.log(chalk.bold(`\n${c.ticker} (${c.cik})`));
49
+ for (const period of c.periods) {
50
+ console.log(chalk.cyan(`\n ${period.fiscal_period_type} FY${period.fiscal_year} Q${period.fiscal_quarter} (CY${period.calendar_year} Q${period.calendar_quarter}, ending ${period.period_end})`));
51
+ for (const [category, metrics] of Object.entries(period.facts)) {
52
+ console.log(chalk.dim(` ${category}:`));
53
+ const rows = Object.entries(metrics).map(([k, v]) => ({ metric: k, value: v }));
54
+ formatTable(rows, ['metric', 'value']);
55
+ }
56
+ }
57
+ printPaginationHint(c.next_url);
58
+ }
59
+ });
60
+ }));
61
+ // cagr
62
+ metrics
63
+ .command('cagr')
64
+ .description('Fetch CAGR metrics')
65
+ .requiredOption('-i, --identifier <ticker>', 'Ticker or CIK')
66
+ .option('--period-years <years>', 'CAGR period (3, 5, 10)')
67
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
68
+ .option('-l, --limit <n>', 'Max results', '10')
69
+ .option('--offset <n>', 'Offset', '0')
70
+ .action(withErrorHandling(async (cmdOpts) => {
71
+ const opts = program.opts();
72
+ if (opts.json)
73
+ setJsonMode(true);
74
+ let data = await apiGet({
75
+ path: '/v1/financial-metrics/cagr',
76
+ params: {
77
+ identifier: cmdOpts.identifier,
78
+ period_years: cmdOpts.periodYears,
79
+ sort: cmdOpts.sort,
80
+ limit: cmdOpts.limit,
81
+ offset: cmdOpts.offset,
82
+ },
83
+ });
84
+ if (opts.all) {
85
+ data = await fetchAllPages(data, d => d.companies?.[0]?.next_url, (acc, page) => ({
86
+ companies: acc.companies.map((c, i) => ({
87
+ ...c,
88
+ periods: [...c.periods, ...(page.companies[i]?.periods || [])],
89
+ next_url: page.companies[i]?.next_url,
90
+ })),
91
+ }));
92
+ }
93
+ output(data, opts, () => {
94
+ for (const c of data.companies) {
95
+ console.log(chalk.bold(`\n${c.ticker} (${c.cik}) CAGR`));
96
+ for (const period of c.periods) {
97
+ console.log(chalk.cyan(`\n FY${period.fiscal_year} Q${period.fiscal_quarter} (CY${period.calendar_year} Q${period.calendar_quarter}, ending ${period.period_end})`));
98
+ for (const [years, metrics] of Object.entries(period.facts)) {
99
+ console.log(chalk.dim(` ${years}-year CAGR:`));
100
+ const rows = Object.entries(metrics).map(([k, v]) => ({ metric: k, value: v }));
101
+ formatTable(rows, ['metric', 'value']);
102
+ }
103
+ }
104
+ printPaginationHint(c.next_url);
105
+ }
106
+ });
107
+ }));
108
+ // growth
109
+ metrics
110
+ .command('growth')
111
+ .description('Fetch growth metrics')
112
+ .requiredOption('-i, --identifier <ticker>', 'Ticker or CIK')
113
+ .requiredOption('-p, --period <type>', 'Fiscal period type')
114
+ .option('--growth-type <type>', 'Growth type (year_over_year, quarter_over_quarter)')
115
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
116
+ .option('-l, --limit <n>', 'Max results', '10')
117
+ .option('--offset <n>', 'Offset', '0')
118
+ .action(withErrorHandling(async (cmdOpts) => {
119
+ const opts = program.opts();
120
+ if (opts.json)
121
+ setJsonMode(true);
122
+ let data = await apiGet({
123
+ path: '/v1/financial-metrics/growth',
124
+ params: {
125
+ identifier: cmdOpts.identifier,
126
+ fiscal_period_type: cmdOpts.period,
127
+ growth_type: cmdOpts.growthType,
128
+ sort: cmdOpts.sort,
129
+ limit: cmdOpts.limit,
130
+ offset: cmdOpts.offset,
131
+ },
132
+ });
133
+ if (opts.all) {
134
+ data = await fetchAllPages(data, d => d.companies?.[0]?.next_url, (acc, page) => ({
135
+ companies: acc.companies.map((c, i) => ({
136
+ ...c,
137
+ periods: [...c.periods, ...(page.companies[i]?.periods || [])],
138
+ next_url: page.companies[i]?.next_url,
139
+ })),
140
+ }));
141
+ }
142
+ output(data, opts, () => {
143
+ for (const c of data.companies) {
144
+ console.log(chalk.bold(`\n${c.ticker} (${c.cik}) Growth`));
145
+ for (const period of c.periods) {
146
+ console.log(chalk.cyan(`\n ${period.fiscal_period_type} FY${period.fiscal_year} Q${period.fiscal_quarter} (CY${period.calendar_year} Q${period.calendar_quarter}, ending ${period.period_end})`));
147
+ for (const [growthType, metrics] of Object.entries(period.facts)) {
148
+ console.log(chalk.dim(` ${growthType}:`));
149
+ const rows = Object.entries(metrics).map(([k, v]) => ({ metric: k, value: v }));
150
+ formatTable(rows, ['metric', 'value']);
151
+ }
152
+ }
153
+ printPaginationHint(c.next_url);
154
+ }
155
+ });
156
+ }));
157
+ }
158
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/commands/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerOwnershipCommands(program: Command): void;
@@ -0,0 +1,152 @@
1
+ import { apiGet } from '../client/api-client.js';
2
+ import { fetchAllPages } from '../client/pagination.js';
3
+ import { withErrorHandling } from '../shared/errors.js';
4
+ import { output } from '../shared/output.js';
5
+ import { formatTable, printPaginationHint } from '../formatters/table-formatter.js';
6
+ import { setJsonMode } from '../shared/spinner.js';
7
+ import chalk from 'chalk';
8
+ export function registerOwnershipCommands(program) {
9
+ const ownership = program
10
+ .command('ownership')
11
+ .description('Institutional ownership data');
12
+ ownership
13
+ .command('holdings-by-investor')
14
+ .description('Fetch holdings for an institutional investor')
15
+ .requiredOption('--cik <cik>', 'Institution CIK')
16
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
17
+ .option('-l, --limit <n>', 'Max results', '100')
18
+ .option('--offset <n>', 'Offset', '0')
19
+ .action(withErrorHandling(async (cmdOpts) => {
20
+ const opts = program.opts();
21
+ if (opts.json)
22
+ setJsonMode(true);
23
+ let data = await apiGet({
24
+ path: '/v1/institutional-ownership/holdings-by-investor',
25
+ params: { cik: cmdOpts.cik, sort: cmdOpts.sort, limit: cmdOpts.limit, offset: cmdOpts.offset },
26
+ });
27
+ if (opts.all && data.next_url) {
28
+ data = await fetchAllPages(data, d => d.next_url, (acc, page) => ({ ...page, holdings: [...acc.holdings, ...page.holdings] }));
29
+ }
30
+ output(data, opts, () => {
31
+ console.log(chalk.bold(`\nInstitution CIK: ${data.cik_institution}\n`));
32
+ formatTable(data.holdings, [
33
+ 'ticker_company', 'cik_company', 'name_company', 'cusip_company',
34
+ 'cik_institution', 'name_institution',
35
+ 'dollar_value', 'shares_or_principal_amount', 'shares_or_principal_amount_type',
36
+ 'investment_discretion', 'put_call',
37
+ 'voting_authority_sole', 'voting_authority_shared', 'voting_authority_none',
38
+ 'calendar_year', 'calendar_quarter', 'period_end', 'filing_date',
39
+ 'accession_number', 'link_to_filing_details',
40
+ ]);
41
+ printPaginationHint(data.next_url);
42
+ });
43
+ }));
44
+ ownership
45
+ .command('holdings-by-company')
46
+ .description('Fetch institutional holders of a company')
47
+ .requiredOption('-i, --identifier <ticker>', 'Ticker or CIK')
48
+ .option('--min-value <n>', 'Minimum dollar value')
49
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
50
+ .option('-l, --limit <n>', 'Max results', '100')
51
+ .option('--offset <n>', 'Offset', '0')
52
+ .action(withErrorHandling(async (cmdOpts) => {
53
+ const opts = program.opts();
54
+ if (opts.json)
55
+ setJsonMode(true);
56
+ let data = await apiGet({
57
+ path: '/v1/institutional-ownership/holdings-by-company',
58
+ params: { identifier: cmdOpts.identifier, min_value: cmdOpts.minValue, sort: cmdOpts.sort, limit: cmdOpts.limit, offset: cmdOpts.offset },
59
+ });
60
+ if (opts.all && data.next_url) {
61
+ data = await fetchAllPages(data, d => d.next_url, (acc, page) => ({ ...page, holdings: [...acc.holdings, ...page.holdings] }));
62
+ }
63
+ output(data, opts, () => {
64
+ console.log(chalk.bold(`\n${data.ticker} (${data.cik}) Institutional Holders\n`));
65
+ formatTable(data.holdings, [
66
+ 'name_institution', 'cik_institution',
67
+ 'ticker_company', 'cik_company', 'name_company', 'cusip_company',
68
+ 'dollar_value', 'shares_or_principal_amount', 'shares_or_principal_amount_type',
69
+ 'investment_discretion', 'put_call',
70
+ 'voting_authority_sole', 'voting_authority_shared', 'voting_authority_none',
71
+ 'calendar_year', 'calendar_quarter', 'period_end', 'filing_date',
72
+ 'accession_number', 'link_to_filing_details',
73
+ ]);
74
+ printPaginationHint(data.next_url);
75
+ });
76
+ }));
77
+ ownership
78
+ .command('transactions')
79
+ .description('Fetch institutional transactions')
80
+ .option('--cik <cik>', 'Institution CIK')
81
+ .option('-i, --identifier <ticker>', 'Company ticker or CIK')
82
+ .option('--start-date <date>', 'Start date')
83
+ .option('--end-date <date>', 'End date')
84
+ .option('--type <type>', 'Transaction type (new_buy, added, reduced, sold_out)')
85
+ .option('--calendar-year <year>', 'Calendar year')
86
+ .option('--calendar-quarter <q>', 'Calendar quarter')
87
+ .option('-s, --sort <dir>', 'Sort direction', 'desc')
88
+ .option('-l, --limit <n>', 'Max results', '100')
89
+ .option('--offset <n>', 'Offset', '0')
90
+ .action(withErrorHandling(async (cmdOpts) => {
91
+ const opts = program.opts();
92
+ if (opts.json)
93
+ setJsonMode(true);
94
+ let data = await apiGet({
95
+ path: '/v1/institutional-ownership/transactions',
96
+ params: {
97
+ cik: cmdOpts.cik,
98
+ identifier: cmdOpts.identifier,
99
+ start_date: cmdOpts.startDate,
100
+ end_date: cmdOpts.endDate,
101
+ type: cmdOpts.type,
102
+ calendar_year: cmdOpts.calendarYear,
103
+ calendar_quarter: cmdOpts.calendarQuarter,
104
+ sort: cmdOpts.sort,
105
+ limit: cmdOpts.limit,
106
+ offset: cmdOpts.offset,
107
+ },
108
+ });
109
+ if (opts.all && data.next_url) {
110
+ data = await fetchAllPages(data, d => d.next_url, (acc, page) => ({ ...page, transactions: [...acc.transactions, ...page.transactions] }));
111
+ }
112
+ output(data, opts, () => {
113
+ formatTable(data.transactions, [
114
+ 'cik_institution', 'name_institution',
115
+ 'ticker_company', 'cik_company', 'name_company', 'cusip_company',
116
+ 'type', 'change_dollar_value',
117
+ 'change_shares_or_principal_amount_absolute', 'change_shares_or_principal_amount_percent',
118
+ 'shares_or_principal_amount_new', 'shares_or_principal_amount_old',
119
+ 'dollar_value', 'shares_or_principal_amount_type',
120
+ 'investment_discretion', 'put_call',
121
+ 'voting_authority_sole', 'voting_authority_shared', 'voting_authority_none',
122
+ 'calendar_year', 'calendar_quarter', 'period_end', 'filing_date',
123
+ 'accession_number',
124
+ ]);
125
+ printPaginationHint(data.next_url);
126
+ });
127
+ }));
128
+ ownership
129
+ .command('institutions')
130
+ .description('List institutional investors')
131
+ .option('--ciks <ciks>', 'Comma-separated CIKs')
132
+ .option('-s, --sort <dir>', 'Sort direction', 'asc')
133
+ .option('-l, --limit <n>', 'Max results', '100')
134
+ .option('--offset <n>', 'Offset', '0')
135
+ .action(withErrorHandling(async (cmdOpts) => {
136
+ const opts = program.opts();
137
+ if (opts.json)
138
+ setJsonMode(true);
139
+ let data = await apiGet({
140
+ path: '/v1/institutional-ownership/institutions',
141
+ params: { ciks: cmdOpts.ciks, sort: cmdOpts.sort, limit: cmdOpts.limit, offset: cmdOpts.offset },
142
+ });
143
+ if (opts.all && data.next_url) {
144
+ data = await fetchAllPages(data, d => d.next_url, (acc, page) => ({ ...page, institutions: [...acc.institutions, ...page.institutions] }));
145
+ }
146
+ output(data, opts, () => {
147
+ formatTable(data.institutions, ['cik', 'name', 'street1', 'street2', 'city', 'state', 'zip_code', 'country']);
148
+ printPaginationHint(data.next_url);
149
+ });
150
+ }));
151
+ }
152
+ //# sourceMappingURL=ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership.js","sourceRoot":"","sources":["../../../src/commands/ownership.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerPluginCommands(program: Command): void;