reportify-sdk 0.2.6 → 0.2.7

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/dist/index.d.mts CHANGED
@@ -793,6 +793,117 @@ declare class QuantModule {
793
793
  backtest(params: BacktestParams): Promise<BacktestResult>;
794
794
  }
795
795
 
796
+ /**
797
+ * Concepts Module
798
+ *
799
+ * Provides access to concept-related data and feeds.
800
+ */
801
+
802
+ /**
803
+ * Concept data structure
804
+ */
805
+ interface Concept {
806
+ concept_name: string;
807
+ concept_desc?: string;
808
+ concept_keywords?: string[];
809
+ concept_events?: string[];
810
+ concept_score?: number;
811
+ trending_score?: number;
812
+ published_at?: number;
813
+ stocks?: ConceptStock[];
814
+ docs?: ConceptDoc[];
815
+ [key: string]: unknown;
816
+ }
817
+ /**
818
+ * Concept stock data
819
+ */
820
+ interface ConceptStock {
821
+ symbol: string;
822
+ name: string;
823
+ market?: string;
824
+ [key: string]: unknown;
825
+ }
826
+ /**
827
+ * Concept document data
828
+ */
829
+ interface ConceptDoc {
830
+ id: string;
831
+ title: string;
832
+ summary?: string;
833
+ channel_name?: string;
834
+ publish_at?: number;
835
+ [key: string]: unknown;
836
+ }
837
+ /**
838
+ * Concept feed data structure
839
+ */
840
+ interface ConceptFeed {
841
+ concept_name: string;
842
+ concept_desc?: string;
843
+ concept_keywords?: string[];
844
+ gen_count?: number;
845
+ earliest_at?: number;
846
+ latest_at?: number;
847
+ stocks?: ConceptStock[];
848
+ docs?: ConceptDoc[];
849
+ events?: ConceptEvent[];
850
+ [key: string]: unknown;
851
+ }
852
+ /**
853
+ * Concept event data
854
+ */
855
+ interface ConceptEvent {
856
+ event: string;
857
+ timestamp?: number;
858
+ [key: string]: unknown;
859
+ }
860
+ /**
861
+ * Concepts module for accessing concept data and feeds
862
+ *
863
+ * This module provides methods to:
864
+ * - Get latest concepts
865
+ * - Get today's concept feeds
866
+ */
867
+ declare class ConceptsModule {
868
+ private client;
869
+ constructor(client: Reportify);
870
+ /**
871
+ * Get latest concepts
872
+ *
873
+ * @param options - Query options
874
+ * @param options.includeDocs - Whether to include related documents (default: true)
875
+ *
876
+ * @example
877
+ * ```typescript
878
+ * // Get latest concepts
879
+ * const concepts = await client.concepts.latest();
880
+ * for (const concept of concepts) {
881
+ * console.log(concept.concept_name);
882
+ * }
883
+ *
884
+ * // Get concepts without documents
885
+ * const concepts = await client.concepts.latest({ includeDocs: false });
886
+ * ```
887
+ */
888
+ latest(options?: {
889
+ includeDocs?: boolean;
890
+ }): Promise<Concept[]>;
891
+ /**
892
+ * Get today's concept feeds
893
+ *
894
+ * @example
895
+ * ```typescript
896
+ * // Get today's concept feeds
897
+ * const feeds = await client.concepts.today();
898
+ * for (const feed of feeds) {
899
+ * console.log(`${feed.concept_name}: ${feed.gen_count} generations`);
900
+ * console.log(`Time range: ${feed.earliest_at} - ${feed.latest_at}`);
901
+ * }
902
+ * ```
903
+ */
904
+ today(): Promise<ConceptFeed[]>;
905
+ }
906
+
796
907
  /**
797
908
  * Reportify Client
798
909
  *
@@ -822,6 +933,7 @@ declare class Reportify {
822
933
  readonly kb: KBModule;
823
934
  readonly docs: DocsModule;
824
935
  readonly quant: QuantModule;
936
+ readonly concepts: ConceptsModule;
825
937
  constructor(config: ReportifyConfig);
826
938
  /**
827
939
  * Make an HTTP request to the API
@@ -870,4 +982,4 @@ declare class Reportify {
870
982
  searchTranscripts(query: string, options?: SearchOptions): Promise<Document[]>;
871
983
  }
872
984
 
873
- export { APIError, AuthenticationError, type BacktestParams, type BacktestResult, type BatchOHLCVParams, type Chunk, type CompanyInfo, type CompanyOverview, DocsModule, type Document, type EarningsEvent, type FactorComputeParams, type FactorMeta, type FinancialStatement, type IPOEvent, type IPOStatus, type IndexConstituent, type IndexFund, type IndicatorComputeParams, type IndicatorData, type IndicatorMeta, type IndustryConstituent, type Interval, KBModule, type KBSearchOptions, type Market, NotFoundError, type OHLCVData, type OHLCVParams, type PaginatedResponse, type Period, type PriceAdjust, type PriceData, QuantModule, type Quote, RateLimitError, Reportify, type ReportifyConfig, ReportifyError, type ScreenParams, type ScreenedStock, type SearchOptions, type Shareholder, type StockInfo, type StockMarket, StockModule, TimelineModule, type TimelineOptions };
985
+ export { APIError, AuthenticationError, type BacktestParams, type BacktestResult, type BatchOHLCVParams, type Chunk, type CompanyInfo, type CompanyOverview, type Concept, type ConceptDoc, type ConceptEvent, type ConceptFeed, type ConceptStock, ConceptsModule, DocsModule, type Document, type EarningsEvent, type FactorComputeParams, type FactorMeta, type FinancialStatement, type IPOEvent, type IPOStatus, type IndexConstituent, type IndexFund, type IndicatorComputeParams, type IndicatorData, type IndicatorMeta, type IndustryConstituent, type Interval, KBModule, type KBSearchOptions, type Market, NotFoundError, type OHLCVData, type OHLCVParams, type PaginatedResponse, type Period, type PriceAdjust, type PriceData, QuantModule, type Quote, RateLimitError, Reportify, type ReportifyConfig, ReportifyError, type ScreenParams, type ScreenedStock, type SearchOptions, type Shareholder, type StockInfo, type StockMarket, StockModule, TimelineModule, type TimelineOptions };
package/dist/index.d.ts CHANGED
@@ -793,6 +793,117 @@ declare class QuantModule {
793
793
  backtest(params: BacktestParams): Promise<BacktestResult>;
794
794
  }
795
795
 
796
+ /**
797
+ * Concepts Module
798
+ *
799
+ * Provides access to concept-related data and feeds.
800
+ */
801
+
802
+ /**
803
+ * Concept data structure
804
+ */
805
+ interface Concept {
806
+ concept_name: string;
807
+ concept_desc?: string;
808
+ concept_keywords?: string[];
809
+ concept_events?: string[];
810
+ concept_score?: number;
811
+ trending_score?: number;
812
+ published_at?: number;
813
+ stocks?: ConceptStock[];
814
+ docs?: ConceptDoc[];
815
+ [key: string]: unknown;
816
+ }
817
+ /**
818
+ * Concept stock data
819
+ */
820
+ interface ConceptStock {
821
+ symbol: string;
822
+ name: string;
823
+ market?: string;
824
+ [key: string]: unknown;
825
+ }
826
+ /**
827
+ * Concept document data
828
+ */
829
+ interface ConceptDoc {
830
+ id: string;
831
+ title: string;
832
+ summary?: string;
833
+ channel_name?: string;
834
+ publish_at?: number;
835
+ [key: string]: unknown;
836
+ }
837
+ /**
838
+ * Concept feed data structure
839
+ */
840
+ interface ConceptFeed {
841
+ concept_name: string;
842
+ concept_desc?: string;
843
+ concept_keywords?: string[];
844
+ gen_count?: number;
845
+ earliest_at?: number;
846
+ latest_at?: number;
847
+ stocks?: ConceptStock[];
848
+ docs?: ConceptDoc[];
849
+ events?: ConceptEvent[];
850
+ [key: string]: unknown;
851
+ }
852
+ /**
853
+ * Concept event data
854
+ */
855
+ interface ConceptEvent {
856
+ event: string;
857
+ timestamp?: number;
858
+ [key: string]: unknown;
859
+ }
860
+ /**
861
+ * Concepts module for accessing concept data and feeds
862
+ *
863
+ * This module provides methods to:
864
+ * - Get latest concepts
865
+ * - Get today's concept feeds
866
+ */
867
+ declare class ConceptsModule {
868
+ private client;
869
+ constructor(client: Reportify);
870
+ /**
871
+ * Get latest concepts
872
+ *
873
+ * @param options - Query options
874
+ * @param options.includeDocs - Whether to include related documents (default: true)
875
+ *
876
+ * @example
877
+ * ```typescript
878
+ * // Get latest concepts
879
+ * const concepts = await client.concepts.latest();
880
+ * for (const concept of concepts) {
881
+ * console.log(concept.concept_name);
882
+ * }
883
+ *
884
+ * // Get concepts without documents
885
+ * const concepts = await client.concepts.latest({ includeDocs: false });
886
+ * ```
887
+ */
888
+ latest(options?: {
889
+ includeDocs?: boolean;
890
+ }): Promise<Concept[]>;
891
+ /**
892
+ * Get today's concept feeds
893
+ *
894
+ * @example
895
+ * ```typescript
896
+ * // Get today's concept feeds
897
+ * const feeds = await client.concepts.today();
898
+ * for (const feed of feeds) {
899
+ * console.log(`${feed.concept_name}: ${feed.gen_count} generations`);
900
+ * console.log(`Time range: ${feed.earliest_at} - ${feed.latest_at}`);
901
+ * }
902
+ * ```
903
+ */
904
+ today(): Promise<ConceptFeed[]>;
905
+ }
906
+
796
907
  /**
797
908
  * Reportify Client
798
909
  *
@@ -822,6 +933,7 @@ declare class Reportify {
822
933
  readonly kb: KBModule;
823
934
  readonly docs: DocsModule;
824
935
  readonly quant: QuantModule;
936
+ readonly concepts: ConceptsModule;
825
937
  constructor(config: ReportifyConfig);
826
938
  /**
827
939
  * Make an HTTP request to the API
@@ -870,4 +982,4 @@ declare class Reportify {
870
982
  searchTranscripts(query: string, options?: SearchOptions): Promise<Document[]>;
871
983
  }
872
984
 
873
- export { APIError, AuthenticationError, type BacktestParams, type BacktestResult, type BatchOHLCVParams, type Chunk, type CompanyInfo, type CompanyOverview, DocsModule, type Document, type EarningsEvent, type FactorComputeParams, type FactorMeta, type FinancialStatement, type IPOEvent, type IPOStatus, type IndexConstituent, type IndexFund, type IndicatorComputeParams, type IndicatorData, type IndicatorMeta, type IndustryConstituent, type Interval, KBModule, type KBSearchOptions, type Market, NotFoundError, type OHLCVData, type OHLCVParams, type PaginatedResponse, type Period, type PriceAdjust, type PriceData, QuantModule, type Quote, RateLimitError, Reportify, type ReportifyConfig, ReportifyError, type ScreenParams, type ScreenedStock, type SearchOptions, type Shareholder, type StockInfo, type StockMarket, StockModule, TimelineModule, type TimelineOptions };
985
+ export { APIError, AuthenticationError, type BacktestParams, type BacktestResult, type BatchOHLCVParams, type Chunk, type CompanyInfo, type CompanyOverview, type Concept, type ConceptDoc, type ConceptEvent, type ConceptFeed, type ConceptStock, ConceptsModule, DocsModule, type Document, type EarningsEvent, type FactorComputeParams, type FactorMeta, type FinancialStatement, type IPOEvent, type IPOStatus, type IndexConstituent, type IndexFund, type IndicatorComputeParams, type IndicatorData, type IndicatorMeta, type IndustryConstituent, type Interval, KBModule, type KBSearchOptions, type Market, NotFoundError, type OHLCVData, type OHLCVParams, type PaginatedResponse, type Period, type PriceAdjust, type PriceData, QuantModule, type Quote, RateLimitError, Reportify, type ReportifyConfig, ReportifyError, type ScreenParams, type ScreenedStock, type SearchOptions, type Shareholder, type StockInfo, type StockMarket, StockModule, TimelineModule, type TimelineOptions };
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  APIError: () => APIError,
24
24
  AuthenticationError: () => AuthenticationError,
25
+ ConceptsModule: () => ConceptsModule,
25
26
  DocsModule: () => DocsModule,
26
27
  KBModule: () => KBModule,
27
28
  NotFoundError: () => NotFoundError,
@@ -774,6 +775,56 @@ var QuantModule = class {
774
775
  }
775
776
  };
776
777
 
778
+ // src/concepts.ts
779
+ var ConceptsModule = class {
780
+ constructor(client) {
781
+ this.client = client;
782
+ }
783
+ /**
784
+ * Get latest concepts
785
+ *
786
+ * @param options - Query options
787
+ * @param options.includeDocs - Whether to include related documents (default: true)
788
+ *
789
+ * @example
790
+ * ```typescript
791
+ * // Get latest concepts
792
+ * const concepts = await client.concepts.latest();
793
+ * for (const concept of concepts) {
794
+ * console.log(concept.concept_name);
795
+ * }
796
+ *
797
+ * // Get concepts without documents
798
+ * const concepts = await client.concepts.latest({ includeDocs: false });
799
+ * ```
800
+ */
801
+ async latest(options = {}) {
802
+ const params = new URLSearchParams();
803
+ if (options.includeDocs !== void 0) {
804
+ params.append("include_docs", String(options.includeDocs));
805
+ }
806
+ const queryString = params.toString();
807
+ const url = `/v1/concepts/latest${queryString ? `?${queryString}` : ""}`;
808
+ return this.client.get(url);
809
+ }
810
+ /**
811
+ * Get today's concept feeds
812
+ *
813
+ * @example
814
+ * ```typescript
815
+ * // Get today's concept feeds
816
+ * const feeds = await client.concepts.today();
817
+ * for (const feed of feeds) {
818
+ * console.log(`${feed.concept_name}: ${feed.gen_count} generations`);
819
+ * console.log(`Time range: ${feed.earliest_at} - ${feed.latest_at}`);
820
+ * }
821
+ * ```
822
+ */
823
+ async today() {
824
+ return this.client.get("/v1/concepts/today");
825
+ }
826
+ };
827
+
777
828
  // src/types.ts
778
829
  var ReportifyError = class extends Error {
779
830
  statusCode;
@@ -821,6 +872,7 @@ var Reportify = class {
821
872
  kb;
822
873
  docs;
823
874
  quant;
875
+ concepts;
824
876
  constructor(config) {
825
877
  if (!config.apiKey) {
826
878
  throw new AuthenticationError("API key is required");
@@ -833,6 +885,7 @@ var Reportify = class {
833
885
  this.kb = new KBModule(this);
834
886
  this.docs = new DocsModule(this);
835
887
  this.quant = new QuantModule(this);
888
+ this.concepts = new ConceptsModule(this);
836
889
  }
837
890
  /**
838
891
  * Make an HTTP request to the API
@@ -854,7 +907,7 @@ var Reportify = class {
854
907
  headers: {
855
908
  Authorization: `Bearer ${this.apiKey}`,
856
909
  "Content-Type": "application/json",
857
- "User-Agent": "reportify-sdk-js/0.1.0"
910
+ "User-Agent": "reportify-sdk-js/0.2.7"
858
911
  },
859
912
  body: options.body ? JSON.stringify(options.body) : void 0,
860
913
  signal: controller.signal
@@ -983,6 +1036,7 @@ var Reportify = class {
983
1036
  0 && (module.exports = {
984
1037
  APIError,
985
1038
  AuthenticationError,
1039
+ ConceptsModule,
986
1040
  DocsModule,
987
1041
  KBModule,
988
1042
  NotFoundError,
package/dist/index.mjs CHANGED
@@ -738,6 +738,56 @@ var QuantModule = class {
738
738
  }
739
739
  };
740
740
 
741
+ // src/concepts.ts
742
+ var ConceptsModule = class {
743
+ constructor(client) {
744
+ this.client = client;
745
+ }
746
+ /**
747
+ * Get latest concepts
748
+ *
749
+ * @param options - Query options
750
+ * @param options.includeDocs - Whether to include related documents (default: true)
751
+ *
752
+ * @example
753
+ * ```typescript
754
+ * // Get latest concepts
755
+ * const concepts = await client.concepts.latest();
756
+ * for (const concept of concepts) {
757
+ * console.log(concept.concept_name);
758
+ * }
759
+ *
760
+ * // Get concepts without documents
761
+ * const concepts = await client.concepts.latest({ includeDocs: false });
762
+ * ```
763
+ */
764
+ async latest(options = {}) {
765
+ const params = new URLSearchParams();
766
+ if (options.includeDocs !== void 0) {
767
+ params.append("include_docs", String(options.includeDocs));
768
+ }
769
+ const queryString = params.toString();
770
+ const url = `/v1/concepts/latest${queryString ? `?${queryString}` : ""}`;
771
+ return this.client.get(url);
772
+ }
773
+ /**
774
+ * Get today's concept feeds
775
+ *
776
+ * @example
777
+ * ```typescript
778
+ * // Get today's concept feeds
779
+ * const feeds = await client.concepts.today();
780
+ * for (const feed of feeds) {
781
+ * console.log(`${feed.concept_name}: ${feed.gen_count} generations`);
782
+ * console.log(`Time range: ${feed.earliest_at} - ${feed.latest_at}`);
783
+ * }
784
+ * ```
785
+ */
786
+ async today() {
787
+ return this.client.get("/v1/concepts/today");
788
+ }
789
+ };
790
+
741
791
  // src/types.ts
742
792
  var ReportifyError = class extends Error {
743
793
  statusCode;
@@ -785,6 +835,7 @@ var Reportify = class {
785
835
  kb;
786
836
  docs;
787
837
  quant;
838
+ concepts;
788
839
  constructor(config) {
789
840
  if (!config.apiKey) {
790
841
  throw new AuthenticationError("API key is required");
@@ -797,6 +848,7 @@ var Reportify = class {
797
848
  this.kb = new KBModule(this);
798
849
  this.docs = new DocsModule(this);
799
850
  this.quant = new QuantModule(this);
851
+ this.concepts = new ConceptsModule(this);
800
852
  }
801
853
  /**
802
854
  * Make an HTTP request to the API
@@ -818,7 +870,7 @@ var Reportify = class {
818
870
  headers: {
819
871
  Authorization: `Bearer ${this.apiKey}`,
820
872
  "Content-Type": "application/json",
821
- "User-Agent": "reportify-sdk-js/0.1.0"
873
+ "User-Agent": "reportify-sdk-js/0.2.7"
822
874
  },
823
875
  body: options.body ? JSON.stringify(options.body) : void 0,
824
876
  signal: controller.signal
@@ -946,6 +998,7 @@ var Reportify = class {
946
998
  export {
947
999
  APIError,
948
1000
  AuthenticationError,
1001
+ ConceptsModule,
949
1002
  DocsModule,
950
1003
  KBModule,
951
1004
  NotFoundError,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reportify-sdk",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "TypeScript SDK for Reportify API - Financial data and document search",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",