zklighter-perps 1.0.281 → 1.0.283

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.
@@ -203,13 +203,15 @@ for path in data["paths"]:
203
203
  else:
204
204
  data["paths"][path][method]["operationId"] = "status"
205
205
 
206
- # Replace $ref to int16 types with inline equivalents across all definitions.
207
- # int16 and derived map types are not standard OpenAPI and cause the generator
208
- # to emit broken model references.
206
+ # Replace $ref to int16/float64 types with inline equivalents across all
207
+ # definitions. int16, float64 and derived map types are not standard OpenAPI
208
+ # and cause the generator to emit broken model references.
209
209
  def replace_int16_refs(obj):
210
210
  if isinstance(obj, dict):
211
211
  if obj.get("$ref") == "#/definitions/int16":
212
212
  return {"type": "integer", "format": "int64"}
213
+ if obj.get("$ref") == "#/definitions/float64":
214
+ return {"type": "number", "format": "double"}
213
215
  if obj.get("$ref") == "#/definitions/mapint16string":
214
216
  return {"type": "object", "additionalProperties": {"type": "string"}}
215
217
  if obj.get("$ref") == "#/definitions/mapstringfloat64":
@@ -230,6 +232,71 @@ for defn in data["definitions"].values():
230
232
  if prop.get("type") == "array" and "enum" in prop:
231
233
  prop["items"]["enum"] = prop.pop("enum")
232
234
 
235
+ # goctl-swagger does not preserve Go pointer types. Restore nullability for
236
+ # stock-financial fields that are always present but may contain JSON null.
237
+ nullable_properties = {
238
+ "StockBalanceSheet": {
239
+ "cash_and_cash_equivalents",
240
+ "total_assets",
241
+ "total_liabilities",
242
+ "total_equity",
243
+ "total_debt",
244
+ "net_debt",
245
+ },
246
+ "StockCashFlowStatement": {
247
+ "operating_cash_flow",
248
+ "capital_expenditure",
249
+ "free_cash_flow",
250
+ },
251
+ "StockFinancialEarningsEvent": {
252
+ "eps_estimated",
253
+ "revenue_estimated",
254
+ },
255
+ "StockFinancialHistoricalEarning": {
256
+ "eps_estimated",
257
+ "eps_actual",
258
+ "revenue_estimated",
259
+ "revenue_actual",
260
+ },
261
+ "StockFinancialProfile": {"market_cap"},
262
+ "StockIncomeStatement": {
263
+ "revenue",
264
+ "gross_profit",
265
+ "operating_income",
266
+ "ebitda",
267
+ "net_income",
268
+ "eps",
269
+ "eps_diluted",
270
+ },
271
+ "UpcomingEarning": {
272
+ "eps_estimated",
273
+ "revenue_estimated",
274
+ },
275
+ }
276
+
277
+ for definition_name, property_names in nullable_properties.items():
278
+ properties = (
279
+ data["definitions"].get(definition_name, {}).get("properties", {})
280
+ )
281
+ for property_name in property_names:
282
+ if property_name in properties:
283
+ properties[property_name]["x-nullable"] = True
284
+
285
+ # These fields use `omitempty` in server.api and are absent when FMP has no
286
+ # value. They are optional rather than nullable in the generated SDK.
287
+ optional_properties = {
288
+ "StockFinancialEarningsEvent": {"timing"},
289
+ "StockFinancialPeriod": {"reported_currency"},
290
+ "StockFinancialProfile": {
291
+ "currency",
292
+ "exchange",
293
+ "industry",
294
+ "sector",
295
+ "country",
296
+ },
297
+ "UpcomingEarning": {"currency", "timing"},
298
+ }
299
+
233
300
  for path in data["definitions"]:
234
301
  if not path.startswith("Req"):
235
302
  required_fields = list(data["definitions"][path]["properties"].keys())
@@ -282,6 +349,10 @@ for path in data["definitions"]:
282
349
  if "maker_fee" in required_fields:
283
350
  required_fields.remove("maker_fee")
284
351
 
352
+ for field in optional_properties.get(path, set()):
353
+ if field in required_fields:
354
+ required_fields.remove(field)
355
+
285
356
  if len(required_fields) > 0:
286
357
  data["definitions"][path]["required"] = required_fields
287
358
  else:
@@ -18,6 +18,7 @@ apis/RootApi.ts
18
18
  apis/StockfinancialsApi.ts
19
19
  apis/TokenlistApi.ts
20
20
  apis/TransactionApi.ts
21
+ apis/TvApi.ts
21
22
  apis/index.ts
22
23
  index.ts
23
24
  models/Account.ts
@@ -200,6 +201,8 @@ models/ReqIsWhitelisted.ts
200
201
  models/ReqListAtomicOrders.ts
201
202
  models/ReqListMarketNews.ts
202
203
  models/ReqListRFQs.ts
204
+ models/ReqTvHistory.ts
205
+ models/ReqTvSymbolInfo.ts
203
206
  models/RespAtomicOrder.ts
204
207
  models/RespAtomicOrderList.ts
205
208
  models/RespChangeAccountTier.ts
@@ -267,6 +270,15 @@ models/Trades.ts
267
270
  models/TransferFeeInfo.ts
268
271
  models/TransferHistory.ts
269
272
  models/TransferHistoryItem.ts
273
+ models/TvError.ts
274
+ models/TvGroup.ts
275
+ models/TvGroups.ts
276
+ models/TvGroupsData.ts
277
+ models/TvHistory.ts
278
+ models/TvStreamHeartbeat.ts
279
+ models/TvStreamQuote.ts
280
+ models/TvStreamTrade.ts
281
+ models/TvSymbolInfo.ts
270
282
  models/Tx.ts
271
283
  models/TxHash.ts
272
284
  models/TxHashes.ts
package/README.md CHANGED
@@ -58,9 +58,9 @@ Why each transform exists:
58
58
  7. **Remove placeholder `"-"` enum/array values** that aren't real values.
59
59
  8. **Derive stable, path-based `operationId`/`summary`** (e.g.
60
60
  `/api/v1/account` → `account`) so generated method names are predictable.
61
- 9. **Inline non-standard `int16`/map `$ref`s** (`int16`, `mapint16string`,
62
- `mapstringfloat64`) — these are not standard OpenAPI and make the generator
63
- emit broken model references.
61
+ 9. **Inline non-standard `int16`/`float64`/map `$ref`s** (`int16`, `float64`,
62
+ `mapint16string`, `mapstringfloat64`) — these are not standard OpenAPI and
63
+ make the generator emit broken model references.
64
64
  10. **Move array-level `enum` into `items`** — correct placement for array
65
65
  schemas.
66
66
  11. **Make the `transfer/history` `type` param an array** of enum strings.
package/apis/TvApi.ts ADDED
@@ -0,0 +1,210 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+
16
+ import * as runtime from '../runtime';
17
+ import type {
18
+ ResultCode,
19
+ TvGroups,
20
+ TvHistory,
21
+ TvSymbolInfo,
22
+ } from '../models/index';
23
+ import {
24
+ ResultCodeFromJSON,
25
+ ResultCodeToJSON,
26
+ TvGroupsFromJSON,
27
+ TvGroupsToJSON,
28
+ TvHistoryFromJSON,
29
+ TvHistoryToJSON,
30
+ TvSymbolInfoFromJSON,
31
+ TvSymbolInfoToJSON,
32
+ } from '../models/index';
33
+
34
+ export interface TvHistoryRequest {
35
+ symbol: string;
36
+ resolution: string;
37
+ from: number;
38
+ to: number;
39
+ }
40
+
41
+ export interface TvSymbolInfoRequest {
42
+ group?: string;
43
+ }
44
+
45
+ /**
46
+ *
47
+ */
48
+ export class TvApi extends runtime.BaseAPI {
49
+
50
+ /**
51
+ * TradingView symbol groups (GroupsResponse)
52
+ * tv_groups
53
+ */
54
+ async tvGroupsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TvGroups>> {
55
+ const queryParameters: any = {};
56
+
57
+ const headerParameters: runtime.HTTPHeaders = {};
58
+
59
+ const response = await this.request({
60
+ path: `/api/v1/tv/groups`,
61
+ method: 'GET',
62
+ headers: headerParameters,
63
+ query: queryParameters,
64
+ }, initOverrides);
65
+
66
+ return new runtime.JSONApiResponse(response, (jsonValue) => TvGroupsFromJSON(jsonValue));
67
+ }
68
+
69
+ /**
70
+ * TradingView symbol groups (GroupsResponse)
71
+ * tv_groups
72
+ */
73
+ async tvGroups(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TvGroups> {
74
+ const response = await this.tvGroupsRaw(initOverrides);
75
+ return await response.value();
76
+ }
77
+
78
+ /**
79
+ * TradingView history bars (HistorySuccessResponse, UDF column format)
80
+ * tv_history
81
+ */
82
+ async tvHistoryRaw(requestParameters: TvHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TvHistory>> {
83
+ if (requestParameters['symbol'] == null) {
84
+ throw new runtime.RequiredError(
85
+ 'symbol',
86
+ 'Required parameter "symbol" was null or undefined when calling tvHistory().'
87
+ );
88
+ }
89
+
90
+ if (requestParameters['resolution'] == null) {
91
+ throw new runtime.RequiredError(
92
+ 'resolution',
93
+ 'Required parameter "resolution" was null or undefined when calling tvHistory().'
94
+ );
95
+ }
96
+
97
+ if (requestParameters['from'] == null) {
98
+ throw new runtime.RequiredError(
99
+ 'from',
100
+ 'Required parameter "from" was null or undefined when calling tvHistory().'
101
+ );
102
+ }
103
+
104
+ if (requestParameters['to'] == null) {
105
+ throw new runtime.RequiredError(
106
+ 'to',
107
+ 'Required parameter "to" was null or undefined when calling tvHistory().'
108
+ );
109
+ }
110
+
111
+ const queryParameters: any = {};
112
+
113
+ if (requestParameters['symbol'] != null) {
114
+ queryParameters['symbol'] = requestParameters['symbol'];
115
+ }
116
+
117
+ if (requestParameters['resolution'] != null) {
118
+ queryParameters['resolution'] = requestParameters['resolution'];
119
+ }
120
+
121
+ if (requestParameters['from'] != null) {
122
+ queryParameters['from'] = requestParameters['from'];
123
+ }
124
+
125
+ if (requestParameters['to'] != null) {
126
+ queryParameters['to'] = requestParameters['to'];
127
+ }
128
+
129
+ const headerParameters: runtime.HTTPHeaders = {};
130
+
131
+ const response = await this.request({
132
+ path: `/api/v1/tv/history`,
133
+ method: 'GET',
134
+ headers: headerParameters,
135
+ query: queryParameters,
136
+ }, initOverrides);
137
+
138
+ return new runtime.JSONApiResponse(response, (jsonValue) => TvHistoryFromJSON(jsonValue));
139
+ }
140
+
141
+ /**
142
+ * TradingView history bars (HistorySuccessResponse, UDF column format)
143
+ * tv_history
144
+ */
145
+ async tvHistory(requestParameters: TvHistoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TvHistory> {
146
+ const response = await this.tvHistoryRaw(requestParameters, initOverrides);
147
+ return await response.value();
148
+ }
149
+
150
+ /**
151
+ * TradingView realtime price stream (trades, quotes, heartbeats)
152
+ * tv_streaming
153
+ */
154
+ async tvStreamingRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ResultCode>> {
155
+ const queryParameters: any = {};
156
+
157
+ const headerParameters: runtime.HTTPHeaders = {};
158
+
159
+ const response = await this.request({
160
+ path: `/api/v1/tv/streaming`,
161
+ method: 'GET',
162
+ headers: headerParameters,
163
+ query: queryParameters,
164
+ }, initOverrides);
165
+
166
+ return new runtime.JSONApiResponse(response, (jsonValue) => ResultCodeFromJSON(jsonValue));
167
+ }
168
+
169
+ /**
170
+ * TradingView realtime price stream (trades, quotes, heartbeats)
171
+ * tv_streaming
172
+ */
173
+ async tvStreaming(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ResultCode> {
174
+ const response = await this.tvStreamingRaw(initOverrides);
175
+ return await response.value();
176
+ }
177
+
178
+ /**
179
+ * TradingView symbol catalog (SymbolInfoResponse, parallel arrays)
180
+ * tv_symbol_info
181
+ */
182
+ async tvSymbolInfoRaw(requestParameters: TvSymbolInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<TvSymbolInfo>> {
183
+ const queryParameters: any = {};
184
+
185
+ if (requestParameters['group'] != null) {
186
+ queryParameters['group'] = requestParameters['group'];
187
+ }
188
+
189
+ const headerParameters: runtime.HTTPHeaders = {};
190
+
191
+ const response = await this.request({
192
+ path: `/api/v1/tv/symbol_info`,
193
+ method: 'GET',
194
+ headers: headerParameters,
195
+ query: queryParameters,
196
+ }, initOverrides);
197
+
198
+ return new runtime.JSONApiResponse(response, (jsonValue) => TvSymbolInfoFromJSON(jsonValue));
199
+ }
200
+
201
+ /**
202
+ * TradingView symbol catalog (SymbolInfoResponse, parallel arrays)
203
+ * tv_symbol_info
204
+ */
205
+ async tvSymbolInfo(requestParameters: TvSymbolInfoRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<TvSymbolInfo> {
206
+ const response = await this.tvSymbolInfoRaw(requestParameters, initOverrides);
207
+ return await response.value();
208
+ }
209
+
210
+ }
package/apis/index.ts CHANGED
@@ -20,3 +20,4 @@ export * from './RootApi';
20
20
  export * from './StockfinancialsApi';
21
21
  export * from './TokenlistApi';
22
22
  export * from './TransactionApi';
23
+ export * from './TvApi';
@@ -0,0 +1,88 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface ReqTvHistory
20
+ */
21
+ export interface ReqTvHistory {
22
+ /**
23
+ *
24
+ * @type {string}
25
+ * @memberof ReqTvHistory
26
+ */
27
+ symbol: string;
28
+ /**
29
+ *
30
+ * @type {string}
31
+ * @memberof ReqTvHistory
32
+ */
33
+ resolution: string;
34
+ /**
35
+ *
36
+ * @type {number}
37
+ * @memberof ReqTvHistory
38
+ */
39
+ from: number;
40
+ /**
41
+ *
42
+ * @type {number}
43
+ * @memberof ReqTvHistory
44
+ */
45
+ to: number;
46
+ }
47
+
48
+ /**
49
+ * Check if a given object implements the ReqTvHistory interface.
50
+ */
51
+ export function instanceOfReqTvHistory(value: object): value is ReqTvHistory {
52
+ if (!('symbol' in value) || value['symbol'] === undefined) return false;
53
+ if (!('resolution' in value) || value['resolution'] === undefined) return false;
54
+ if (!('from' in value) || value['from'] === undefined) return false;
55
+ if (!('to' in value) || value['to'] === undefined) return false;
56
+ return true;
57
+ }
58
+
59
+ export function ReqTvHistoryFromJSON(json: any): ReqTvHistory {
60
+ return ReqTvHistoryFromJSONTyped(json, false);
61
+ }
62
+
63
+ export function ReqTvHistoryFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReqTvHistory {
64
+ if (json == null) {
65
+ return json;
66
+ }
67
+ return {
68
+
69
+ 'symbol': json['symbol'],
70
+ 'resolution': json['resolution'],
71
+ 'from': json['from'],
72
+ 'to': json['to'],
73
+ };
74
+ }
75
+
76
+ export function ReqTvHistoryToJSON(value?: ReqTvHistory | null): any {
77
+ if (value == null) {
78
+ return value;
79
+ }
80
+ return {
81
+
82
+ 'symbol': value['symbol'],
83
+ 'resolution': value['resolution'],
84
+ 'from': value['from'],
85
+ 'to': value['to'],
86
+ };
87
+ }
88
+
@@ -0,0 +1,60 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ *
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document:
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface ReqTvSymbolInfo
20
+ */
21
+ export interface ReqTvSymbolInfo {
22
+ /**
23
+ *
24
+ * @type {string}
25
+ * @memberof ReqTvSymbolInfo
26
+ */
27
+ group?: string;
28
+ }
29
+
30
+ /**
31
+ * Check if a given object implements the ReqTvSymbolInfo interface.
32
+ */
33
+ export function instanceOfReqTvSymbolInfo(value: object): value is ReqTvSymbolInfo {
34
+ return true;
35
+ }
36
+
37
+ export function ReqTvSymbolInfoFromJSON(json: any): ReqTvSymbolInfo {
38
+ return ReqTvSymbolInfoFromJSONTyped(json, false);
39
+ }
40
+
41
+ export function ReqTvSymbolInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): ReqTvSymbolInfo {
42
+ if (json == null) {
43
+ return json;
44
+ }
45
+ return {
46
+
47
+ 'group': json['group'] == null ? undefined : json['group'],
48
+ };
49
+ }
50
+
51
+ export function ReqTvSymbolInfoToJSON(value?: ReqTvSymbolInfo | null): any {
52
+ if (value == null) {
53
+ return value;
54
+ }
55
+ return {
56
+
57
+ 'group': value['group'],
58
+ };
59
+ }
60
+
@@ -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']),