zklighter-perps 1.0.281 → 1.0.282

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.
@@ -230,6 +230,67 @@ for defn in data["definitions"].values():
230
230
  if prop.get("type") == "array" and "enum" in prop:
231
231
  prop["items"]["enum"] = prop.pop("enum")
232
232
 
233
+ # goctl-swagger does not preserve Go pointer types. Restore nullability for
234
+ # stock-financial fields that are always present but may contain JSON null.
235
+ nullable_properties = {
236
+ "StockBalanceSheet": {
237
+ "cash_and_cash_equivalents",
238
+ "total_assets",
239
+ "total_liabilities",
240
+ "total_equity",
241
+ "total_debt",
242
+ "net_debt",
243
+ },
244
+ "StockCashFlowStatement": {
245
+ "operating_cash_flow",
246
+ "capital_expenditure",
247
+ "free_cash_flow",
248
+ },
249
+ "StockFinancialEarningsEvent": {
250
+ "eps_estimated",
251
+ "revenue_estimated",
252
+ },
253
+ "StockFinancialHistoricalEarning": {
254
+ "eps_estimated",
255
+ "eps_actual",
256
+ "revenue_estimated",
257
+ "revenue_actual",
258
+ },
259
+ "StockFinancialProfile": {"market_cap"},
260
+ "StockIncomeStatement": {
261
+ "revenue",
262
+ "gross_profit",
263
+ "operating_income",
264
+ "ebitda",
265
+ "net_income",
266
+ "eps",
267
+ "eps_diluted",
268
+ },
269
+ }
270
+
271
+ for definition_name, property_names in nullable_properties.items():
272
+ properties = (
273
+ data["definitions"].get(definition_name, {}).get("properties", {})
274
+ )
275
+ for property_name in property_names:
276
+ if property_name in properties:
277
+ properties[property_name]["x-nullable"] = True
278
+
279
+ # These fields use `omitempty` in server.api and are absent when FMP has no
280
+ # value. They are optional rather than nullable in the generated SDK.
281
+ optional_properties = {
282
+ "StockFinancialEarningsEvent": {"timing"},
283
+ "StockFinancialPeriod": {"reported_currency"},
284
+ "StockFinancialProfile": {
285
+ "currency",
286
+ "exchange",
287
+ "industry",
288
+ "sector",
289
+ "country",
290
+ },
291
+ "UpcomingEarning": {"timing"},
292
+ }
293
+
233
294
  for path in data["definitions"]:
234
295
  if not path.startswith("Req"):
235
296
  required_fields = list(data["definitions"][path]["properties"].keys())
@@ -282,6 +343,10 @@ for path in data["definitions"]:
282
343
  if "maker_fee" in required_fields:
283
344
  required_fields.remove("maker_fee")
284
345
 
346
+ for field in optional_properties.get(path, set()):
347
+ if field in required_fields:
348
+ required_fields.remove(field)
349
+
285
350
  if len(required_fields) > 0:
286
351
  data["definitions"][path]["required"] = required_fields
287
352
  else:
@@ -24,37 +24,37 @@ export interface StockBalanceSheet {
24
24
  * @type {number}
25
25
  * @memberof StockBalanceSheet
26
26
  */
27
- cash_and_cash_equivalents: number;
27
+ cash_and_cash_equivalents: number | null;
28
28
  /**
29
29
  *
30
30
  * @type {number}
31
31
  * @memberof StockBalanceSheet
32
32
  */
33
- total_assets: number;
33
+ total_assets: number | null;
34
34
  /**
35
35
  *
36
36
  * @type {number}
37
37
  * @memberof StockBalanceSheet
38
38
  */
39
- total_liabilities: number;
39
+ total_liabilities: number | null;
40
40
  /**
41
41
  *
42
42
  * @type {number}
43
43
  * @memberof StockBalanceSheet
44
44
  */
45
- total_equity: number;
45
+ total_equity: number | null;
46
46
  /**
47
47
  *
48
48
  * @type {number}
49
49
  * @memberof StockBalanceSheet
50
50
  */
51
- total_debt: number;
51
+ total_debt: number | null;
52
52
  /**
53
53
  *
54
54
  * @type {number}
55
55
  * @memberof StockBalanceSheet
56
56
  */
57
- net_debt: number;
57
+ net_debt: number | null;
58
58
  }
59
59
 
60
60
  /**
@@ -24,19 +24,19 @@ export interface StockCashFlowStatement {
24
24
  * @type {number}
25
25
  * @memberof StockCashFlowStatement
26
26
  */
27
- operating_cash_flow: number;
27
+ operating_cash_flow: number | null;
28
28
  /**
29
29
  *
30
30
  * @type {number}
31
31
  * @memberof StockCashFlowStatement
32
32
  */
33
- capital_expenditure: number;
33
+ capital_expenditure: number | null;
34
34
  /**
35
35
  *
36
36
  * @type {number}
37
37
  * @memberof StockCashFlowStatement
38
38
  */
39
- free_cash_flow: number;
39
+ free_cash_flow: number | null;
40
40
  }
41
41
 
42
42
  /**
@@ -30,19 +30,19 @@ export interface StockFinancialEarningsEvent {
30
30
  * @type {string}
31
31
  * @memberof StockFinancialEarningsEvent
32
32
  */
33
- timing: StockFinancialEarningsEventTimingEnum;
33
+ timing?: StockFinancialEarningsEventTimingEnum;
34
34
  /**
35
35
  *
36
36
  * @type {number}
37
37
  * @memberof StockFinancialEarningsEvent
38
38
  */
39
- eps_estimated: number;
39
+ eps_estimated: number | null;
40
40
  /**
41
41
  *
42
42
  * @type {number}
43
43
  * @memberof StockFinancialEarningsEvent
44
44
  */
45
- revenue_estimated: number;
45
+ revenue_estimated: number | null;
46
46
  }
47
47
 
48
48
 
@@ -61,7 +61,6 @@ export type StockFinancialEarningsEventTimingEnum = typeof StockFinancialEarning
61
61
  */
62
62
  export function instanceOfStockFinancialEarningsEvent(value: object): value is StockFinancialEarningsEvent {
63
63
  if (!('date' in value) || value['date'] === undefined) return false;
64
- if (!('timing' in value) || value['timing'] === undefined) return false;
65
64
  if (!('eps_estimated' in value) || value['eps_estimated'] === undefined) return false;
66
65
  if (!('revenue_estimated' in value) || value['revenue_estimated'] === undefined) return false;
67
66
  return true;
@@ -78,7 +77,7 @@ export function StockFinancialEarningsEventFromJSONTyped(json: any, ignoreDiscri
78
77
  return {
79
78
 
80
79
  'date': json['date'],
81
- 'timing': json['timing'],
80
+ 'timing': json['timing'] == null ? undefined : json['timing'],
82
81
  'eps_estimated': json['eps_estimated'],
83
82
  'revenue_estimated': json['revenue_estimated'],
84
83
  };
@@ -30,25 +30,25 @@ export interface StockFinancialHistoricalEarning {
30
30
  * @type {number}
31
31
  * @memberof StockFinancialHistoricalEarning
32
32
  */
33
- eps_estimated: number;
33
+ eps_estimated: number | null;
34
34
  /**
35
35
  *
36
36
  * @type {number}
37
37
  * @memberof StockFinancialHistoricalEarning
38
38
  */
39
- eps_actual: number;
39
+ eps_actual: number | null;
40
40
  /**
41
41
  *
42
42
  * @type {number}
43
43
  * @memberof StockFinancialHistoricalEarning
44
44
  */
45
- revenue_estimated: number;
45
+ revenue_estimated: number | null;
46
46
  /**
47
47
  *
48
48
  * @type {number}
49
49
  * @memberof StockFinancialHistoricalEarning
50
50
  */
51
- revenue_actual: number;
51
+ revenue_actual: number | null;
52
52
  }
53
53
 
54
54
  /**
@@ -61,7 +61,7 @@ export interface StockFinancialPeriod {
61
61
  * @type {string}
62
62
  * @memberof StockFinancialPeriod
63
63
  */
64
- reported_currency: string;
64
+ reported_currency?: string;
65
65
  /**
66
66
  *
67
67
  * @type {StockIncomeStatement}
@@ -89,7 +89,6 @@ export function instanceOfStockFinancialPeriod(value: object): value is StockFin
89
89
  if (!('date' in value) || value['date'] === undefined) return false;
90
90
  if (!('fiscal_year' in value) || value['fiscal_year'] === undefined) return false;
91
91
  if (!('period' in value) || value['period'] === undefined) return false;
92
- if (!('reported_currency' in value) || value['reported_currency'] === undefined) return false;
93
92
  if (!('income' in value) || value['income'] === undefined) return false;
94
93
  if (!('balance_sheet' in value) || value['balance_sheet'] === undefined) return false;
95
94
  if (!('cash_flow' in value) || value['cash_flow'] === undefined) return false;
@@ -109,7 +108,7 @@ export function StockFinancialPeriodFromJSONTyped(json: any, ignoreDiscriminator
109
108
  'date': json['date'],
110
109
  'fiscal_year': json['fiscal_year'],
111
110
  'period': json['period'],
112
- 'reported_currency': json['reported_currency'],
111
+ 'reported_currency': json['reported_currency'] == null ? undefined : json['reported_currency'],
113
112
  'income': StockIncomeStatementFromJSON(json['income']),
114
113
  'balance_sheet': StockBalanceSheetFromJSON(json['balance_sheet']),
115
114
  'cash_flow': StockCashFlowStatementFromJSON(json['cash_flow']),
@@ -24,48 +24,43 @@ export interface StockFinancialProfile {
24
24
  * @type {string}
25
25
  * @memberof StockFinancialProfile
26
26
  */
27
- currency: string;
27
+ currency?: string;
28
28
  /**
29
29
  *
30
30
  * @type {string}
31
31
  * @memberof StockFinancialProfile
32
32
  */
33
- exchange: string;
33
+ exchange?: string;
34
34
  /**
35
35
  *
36
36
  * @type {string}
37
37
  * @memberof StockFinancialProfile
38
38
  */
39
- industry: string;
39
+ industry?: string;
40
40
  /**
41
41
  *
42
42
  * @type {string}
43
43
  * @memberof StockFinancialProfile
44
44
  */
45
- sector: string;
45
+ sector?: string;
46
46
  /**
47
47
  *
48
48
  * @type {string}
49
49
  * @memberof StockFinancialProfile
50
50
  */
51
- country: string;
51
+ country?: string;
52
52
  /**
53
53
  *
54
54
  * @type {number}
55
55
  * @memberof StockFinancialProfile
56
56
  */
57
- market_cap: number;
57
+ market_cap: number | null;
58
58
  }
59
59
 
60
60
  /**
61
61
  * Check if a given object implements the StockFinancialProfile interface.
62
62
  */
63
63
  export function instanceOfStockFinancialProfile(value: object): value is StockFinancialProfile {
64
- if (!('currency' in value) || value['currency'] === undefined) return false;
65
- if (!('exchange' in value) || value['exchange'] === undefined) return false;
66
- if (!('industry' in value) || value['industry'] === undefined) return false;
67
- if (!('sector' in value) || value['sector'] === undefined) return false;
68
- if (!('country' in value) || value['country'] === undefined) return false;
69
64
  if (!('market_cap' in value) || value['market_cap'] === undefined) return false;
70
65
  return true;
71
66
  }
@@ -80,11 +75,11 @@ export function StockFinancialProfileFromJSONTyped(json: any, ignoreDiscriminato
80
75
  }
81
76
  return {
82
77
 
83
- 'currency': json['currency'],
84
- 'exchange': json['exchange'],
85
- 'industry': json['industry'],
86
- 'sector': json['sector'],
87
- 'country': json['country'],
78
+ 'currency': json['currency'] == null ? undefined : json['currency'],
79
+ 'exchange': json['exchange'] == null ? undefined : json['exchange'],
80
+ 'industry': json['industry'] == null ? undefined : json['industry'],
81
+ 'sector': json['sector'] == null ? undefined : json['sector'],
82
+ 'country': json['country'] == null ? undefined : json['country'],
88
83
  'market_cap': json['market_cap'],
89
84
  };
90
85
  }
@@ -24,43 +24,43 @@ export interface StockIncomeStatement {
24
24
  * @type {number}
25
25
  * @memberof StockIncomeStatement
26
26
  */
27
- revenue: number;
27
+ revenue: number | null;
28
28
  /**
29
29
  *
30
30
  * @type {number}
31
31
  * @memberof StockIncomeStatement
32
32
  */
33
- gross_profit: number;
33
+ gross_profit: number | null;
34
34
  /**
35
35
  *
36
36
  * @type {number}
37
37
  * @memberof StockIncomeStatement
38
38
  */
39
- operating_income: number;
39
+ operating_income: number | null;
40
40
  /**
41
41
  *
42
42
  * @type {number}
43
43
  * @memberof StockIncomeStatement
44
44
  */
45
- ebitda: number;
45
+ ebitda: number | null;
46
46
  /**
47
47
  *
48
48
  * @type {number}
49
49
  * @memberof StockIncomeStatement
50
50
  */
51
- net_income: number;
51
+ net_income: number | null;
52
52
  /**
53
53
  *
54
54
  * @type {number}
55
55
  * @memberof StockIncomeStatement
56
56
  */
57
- eps: number;
57
+ eps: number | null;
58
58
  /**
59
59
  *
60
60
  * @type {number}
61
61
  * @memberof StockIncomeStatement
62
62
  */
63
- eps_diluted: number;
63
+ eps_diluted: number | null;
64
64
  }
65
65
 
66
66
  /**
@@ -36,7 +36,7 @@ export interface UpcomingEarning {
36
36
  * @type {string}
37
37
  * @memberof UpcomingEarning
38
38
  */
39
- timing: UpcomingEarningTimingEnum;
39
+ timing?: UpcomingEarningTimingEnum;
40
40
  }
41
41
 
42
42
 
@@ -56,7 +56,6 @@ export type UpcomingEarningTimingEnum = typeof UpcomingEarningTimingEnum[keyof t
56
56
  export function instanceOfUpcomingEarning(value: object): value is UpcomingEarning {
57
57
  if (!('market_id' in value) || value['market_id'] === undefined) return false;
58
58
  if (!('date' in value) || value['date'] === undefined) return false;
59
- if (!('timing' in value) || value['timing'] === undefined) return false;
60
59
  return true;
61
60
  }
62
61
 
@@ -72,7 +71,7 @@ export function UpcomingEarningFromJSONTyped(json: any, ignoreDiscriminator: boo
72
71
 
73
72
  'market_id': json['market_id'],
74
73
  'date': json['date'],
75
- 'timing': json['timing'],
74
+ 'timing': json['timing'] == null ? undefined : json['timing'],
76
75
  };
77
76
  }
78
77
 
package/openapi.json CHANGED
@@ -14678,27 +14678,33 @@
14678
14678
  "properties": {
14679
14679
  "cash_and_cash_equivalents": {
14680
14680
  "type": "number",
14681
- "format": "double"
14681
+ "format": "double",
14682
+ "x-nullable": true
14682
14683
  },
14683
14684
  "total_assets": {
14684
14685
  "type": "number",
14685
- "format": "double"
14686
+ "format": "double",
14687
+ "x-nullable": true
14686
14688
  },
14687
14689
  "total_liabilities": {
14688
14690
  "type": "number",
14689
- "format": "double"
14691
+ "format": "double",
14692
+ "x-nullable": true
14690
14693
  },
14691
14694
  "total_equity": {
14692
14695
  "type": "number",
14693
- "format": "double"
14696
+ "format": "double",
14697
+ "x-nullable": true
14694
14698
  },
14695
14699
  "total_debt": {
14696
14700
  "type": "number",
14697
- "format": "double"
14701
+ "format": "double",
14702
+ "x-nullable": true
14698
14703
  },
14699
14704
  "net_debt": {
14700
14705
  "type": "number",
14701
- "format": "double"
14706
+ "format": "double",
14707
+ "x-nullable": true
14702
14708
  }
14703
14709
  },
14704
14710
  "title": "StockBalanceSheet",
@@ -14716,15 +14722,18 @@
14716
14722
  "properties": {
14717
14723
  "operating_cash_flow": {
14718
14724
  "type": "number",
14719
- "format": "double"
14725
+ "format": "double",
14726
+ "x-nullable": true
14720
14727
  },
14721
14728
  "capital_expenditure": {
14722
14729
  "type": "number",
14723
- "format": "double"
14730
+ "format": "double",
14731
+ "x-nullable": true
14724
14732
  },
14725
14733
  "free_cash_flow": {
14726
14734
  "type": "number",
14727
- "format": "double"
14735
+ "format": "double",
14736
+ "x-nullable": true
14728
14737
  }
14729
14738
  },
14730
14739
  "title": "StockCashFlowStatement",
@@ -14792,17 +14801,18 @@
14792
14801
  },
14793
14802
  "eps_estimated": {
14794
14803
  "type": "number",
14795
- "format": "double"
14804
+ "format": "double",
14805
+ "x-nullable": true
14796
14806
  },
14797
14807
  "revenue_estimated": {
14798
14808
  "type": "number",
14799
- "format": "double"
14809
+ "format": "double",
14810
+ "x-nullable": true
14800
14811
  }
14801
14812
  },
14802
14813
  "title": "StockFinancialEarningsEvent",
14803
14814
  "required": [
14804
14815
  "date",
14805
- "timing",
14806
14816
  "eps_estimated",
14807
14817
  "revenue_estimated"
14808
14818
  ]
@@ -14815,19 +14825,23 @@
14815
14825
  },
14816
14826
  "eps_estimated": {
14817
14827
  "type": "number",
14818
- "format": "double"
14828
+ "format": "double",
14829
+ "x-nullable": true
14819
14830
  },
14820
14831
  "eps_actual": {
14821
14832
  "type": "number",
14822
- "format": "double"
14833
+ "format": "double",
14834
+ "x-nullable": true
14823
14835
  },
14824
14836
  "revenue_estimated": {
14825
14837
  "type": "number",
14826
- "format": "double"
14838
+ "format": "double",
14839
+ "x-nullable": true
14827
14840
  },
14828
14841
  "revenue_actual": {
14829
14842
  "type": "number",
14830
- "format": "double"
14843
+ "format": "double",
14844
+ "x-nullable": true
14831
14845
  }
14832
14846
  },
14833
14847
  "title": "StockFinancialHistoricalEarning",
@@ -14870,7 +14884,6 @@
14870
14884
  "date",
14871
14885
  "fiscal_year",
14872
14886
  "period",
14873
- "reported_currency",
14874
14887
  "income",
14875
14888
  "balance_sheet",
14876
14889
  "cash_flow"
@@ -14896,16 +14909,12 @@
14896
14909
  },
14897
14910
  "market_cap": {
14898
14911
  "type": "number",
14899
- "format": "double"
14912
+ "format": "double",
14913
+ "x-nullable": true
14900
14914
  }
14901
14915
  },
14902
14916
  "title": "StockFinancialProfile",
14903
14917
  "required": [
14904
- "currency",
14905
- "exchange",
14906
- "industry",
14907
- "sector",
14908
- "country",
14909
14918
  "market_cap"
14910
14919
  ]
14911
14920
  },
@@ -14936,31 +14945,38 @@
14936
14945
  "properties": {
14937
14946
  "revenue": {
14938
14947
  "type": "number",
14939
- "format": "double"
14948
+ "format": "double",
14949
+ "x-nullable": true
14940
14950
  },
14941
14951
  "gross_profit": {
14942
14952
  "type": "number",
14943
- "format": "double"
14953
+ "format": "double",
14954
+ "x-nullable": true
14944
14955
  },
14945
14956
  "operating_income": {
14946
14957
  "type": "number",
14947
- "format": "double"
14958
+ "format": "double",
14959
+ "x-nullable": true
14948
14960
  },
14949
14961
  "ebitda": {
14950
14962
  "type": "number",
14951
- "format": "double"
14963
+ "format": "double",
14964
+ "x-nullable": true
14952
14965
  },
14953
14966
  "net_income": {
14954
14967
  "type": "number",
14955
- "format": "double"
14968
+ "format": "double",
14969
+ "x-nullable": true
14956
14970
  },
14957
14971
  "eps": {
14958
14972
  "type": "number",
14959
- "format": "double"
14973
+ "format": "double",
14974
+ "x-nullable": true
14960
14975
  },
14961
14976
  "eps_diluted": {
14962
14977
  "type": "number",
14963
- "format": "double"
14978
+ "format": "double",
14979
+ "x-nullable": true
14964
14980
  }
14965
14981
  },
14966
14982
  "title": "StockIncomeStatement",
@@ -15937,8 +15953,7 @@
15937
15953
  "title": "UpcomingEarning",
15938
15954
  "required": [
15939
15955
  "market_id",
15940
- "date",
15941
- "timing"
15956
+ "date"
15942
15957
  ]
15943
15958
  },
15944
15959
  "UpcomingEarnings": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zklighter-perps",
3
- "version": "1.0.281",
3
+ "version": "1.0.282",
4
4
  "description": "Lighter Perps SDK",
5
5
  "main": "index.ts",
6
6
  "directories": {