oilpriceapi 0.5.3 → 0.7.0
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 +395 -110
- package/dist/client.d.ts +83 -3
- package/dist/client.js +118 -38
- package/dist/index.d.ts +31 -6
- package/dist/index.js +17 -3
- package/dist/resources/alerts.d.ts +52 -15
- package/dist/resources/alerts.js +143 -85
- package/dist/resources/analytics.d.ts +325 -0
- package/dist/resources/analytics.js +221 -0
- package/dist/resources/bunker-fuels.d.ts +270 -0
- package/dist/resources/bunker-fuels.js +191 -0
- package/dist/resources/commodities.d.ts +148 -0
- package/dist/resources/commodities.js +110 -0
- package/dist/resources/data-quality.d.ts +229 -0
- package/dist/resources/data-quality.js +139 -0
- package/dist/resources/data-sources.d.ts +365 -0
- package/dist/resources/data-sources.js +349 -0
- package/dist/resources/drilling.d.ts +403 -0
- package/dist/resources/drilling.js +264 -0
- package/dist/resources/ei/drilling-productivity.d.ts +173 -0
- package/dist/resources/ei/drilling-productivity.js +103 -0
- package/dist/resources/ei/forecasts.d.ts +177 -0
- package/dist/resources/ei/forecasts.js +101 -0
- package/dist/resources/ei/frac-focus.d.ts +212 -0
- package/dist/resources/ei/frac-focus.js +150 -0
- package/dist/resources/ei/index.d.ts +140 -0
- package/dist/resources/ei/index.js +87 -0
- package/dist/resources/ei/oil-inventories.d.ts +155 -0
- package/dist/resources/ei/oil-inventories.js +92 -0
- package/dist/resources/ei/opec-production.d.ts +146 -0
- package/dist/resources/ei/opec-production.js +92 -0
- package/dist/resources/ei/rig-counts.d.ts +131 -0
- package/dist/resources/ei/rig-counts.js +88 -0
- package/dist/resources/ei/well-permits.d.ts +178 -0
- package/dist/resources/ei/well-permits.js +119 -0
- package/dist/resources/forecasts.d.ts +200 -0
- package/dist/resources/forecasts.js +157 -0
- package/dist/resources/futures.d.ts +322 -0
- package/dist/resources/futures.js +228 -0
- package/dist/resources/rig-counts.d.ts +221 -0
- package/dist/resources/rig-counts.js +157 -0
- package/dist/resources/storage.d.ts +182 -0
- package/dist/resources/storage.js +161 -0
- package/dist/resources/webhooks.d.ts +290 -0
- package/dist/resources/webhooks.js +297 -0
- package/dist/types.d.ts +106 -6
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Energy Intelligence - FracFocus Resource
|
|
3
|
+
*
|
|
4
|
+
* Access hydraulic fracturing disclosure data including chemicals, operators,
|
|
5
|
+
* and well-level information from the FracFocus registry.
|
|
6
|
+
*/
|
|
7
|
+
import type { OilPriceAPI } from "../../client.js";
|
|
8
|
+
/**
|
|
9
|
+
* FracFocus disclosure record
|
|
10
|
+
*/
|
|
11
|
+
export interface FracFocusRecord {
|
|
12
|
+
/** Record ID */
|
|
13
|
+
id: string;
|
|
14
|
+
/** API well number */
|
|
15
|
+
api_number: string;
|
|
16
|
+
/** State */
|
|
17
|
+
state: string;
|
|
18
|
+
/** County */
|
|
19
|
+
county?: string;
|
|
20
|
+
/** Operator name */
|
|
21
|
+
operator?: string;
|
|
22
|
+
/** Well name */
|
|
23
|
+
well_name?: string;
|
|
24
|
+
/** Job start date */
|
|
25
|
+
job_start_date?: string;
|
|
26
|
+
/** Job end date */
|
|
27
|
+
job_end_date?: string;
|
|
28
|
+
/** Total base water volume (gallons) */
|
|
29
|
+
total_base_water_volume?: number;
|
|
30
|
+
/** Total base non-water volume (gallons) */
|
|
31
|
+
total_base_non_water_volume?: number;
|
|
32
|
+
/** ISO timestamp */
|
|
33
|
+
timestamp: string;
|
|
34
|
+
/** Additional metadata */
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* FracFocus summary
|
|
39
|
+
*/
|
|
40
|
+
export interface FracFocusSummary {
|
|
41
|
+
/** Total disclosures */
|
|
42
|
+
total_disclosures: number;
|
|
43
|
+
/** Disclosures by state */
|
|
44
|
+
by_state?: Record<string, number>;
|
|
45
|
+
/** Disclosures by operator */
|
|
46
|
+
by_operator?: Record<string, number>;
|
|
47
|
+
/** As of date */
|
|
48
|
+
as_of_date: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Disclosures by state
|
|
52
|
+
*/
|
|
53
|
+
export interface DisclosuresByState {
|
|
54
|
+
/** State name */
|
|
55
|
+
state: string;
|
|
56
|
+
/** Disclosure count */
|
|
57
|
+
disclosure_count: number;
|
|
58
|
+
/** Date */
|
|
59
|
+
date: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Disclosures by operator
|
|
63
|
+
*/
|
|
64
|
+
export interface DisclosuresByOperator {
|
|
65
|
+
/** Operator name */
|
|
66
|
+
operator: string;
|
|
67
|
+
/** Disclosure count */
|
|
68
|
+
disclosure_count: number;
|
|
69
|
+
/** Percentage of total */
|
|
70
|
+
percentage?: number;
|
|
71
|
+
/** Date */
|
|
72
|
+
date: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Chemical usage data
|
|
76
|
+
*/
|
|
77
|
+
export interface ChemicalUsage {
|
|
78
|
+
/** Chemical name */
|
|
79
|
+
chemical_name: string;
|
|
80
|
+
/** CAS number */
|
|
81
|
+
cas_number?: string;
|
|
82
|
+
/** Usage count */
|
|
83
|
+
usage_count: number;
|
|
84
|
+
/** Percentage of total */
|
|
85
|
+
percentage?: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Chemical detail for a specific well
|
|
89
|
+
*/
|
|
90
|
+
export interface WellChemical {
|
|
91
|
+
/** Chemical name */
|
|
92
|
+
chemical_name: string;
|
|
93
|
+
/** CAS number */
|
|
94
|
+
cas_number?: string;
|
|
95
|
+
/** Purpose */
|
|
96
|
+
purpose?: string;
|
|
97
|
+
/** Ingredient concentration (%) */
|
|
98
|
+
concentration_percent?: number;
|
|
99
|
+
/** Mass used (lbs) */
|
|
100
|
+
mass_lbs?: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* FracFocus search query
|
|
104
|
+
*/
|
|
105
|
+
export interface FracFocusSearchQuery {
|
|
106
|
+
/** State filter */
|
|
107
|
+
state?: string;
|
|
108
|
+
/** Operator filter */
|
|
109
|
+
operator?: string;
|
|
110
|
+
/** Chemical filter */
|
|
111
|
+
chemical?: string;
|
|
112
|
+
/** Start date */
|
|
113
|
+
start_date?: string;
|
|
114
|
+
/** End date */
|
|
115
|
+
end_date?: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* EI FracFocus Resource
|
|
119
|
+
*
|
|
120
|
+
* Access hydraulic fracturing disclosure data from the FracFocus registry.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* const client = new OilPriceAPI({ apiKey: 'your_key' });
|
|
125
|
+
*
|
|
126
|
+
* // Get latest disclosure
|
|
127
|
+
* const latest = await client.ei.fracFocus.latest();
|
|
128
|
+
* console.log(`Well: ${latest.well_name} (API: ${latest.api_number})`);
|
|
129
|
+
*
|
|
130
|
+
* // Get disclosures by state
|
|
131
|
+
* const states = await client.ei.fracFocus.byState();
|
|
132
|
+
* states.forEach(s => console.log(`${s.state}: ${s.disclosure_count} disclosures`));
|
|
133
|
+
*
|
|
134
|
+
* // Get chemicals for a specific well
|
|
135
|
+
* const chemicals = await client.ei.fracFocus.chemicals('42-123-12345');
|
|
136
|
+
* chemicals.forEach(c => console.log(`${c.chemical_name}: ${c.concentration_percent}%`));
|
|
137
|
+
*
|
|
138
|
+
* // Search disclosures
|
|
139
|
+
* const results = await client.ei.fracFocus.search({
|
|
140
|
+
* state: 'Texas',
|
|
141
|
+
* operator: 'EOG Resources'
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare class EIFracFocusResource {
|
|
146
|
+
private client;
|
|
147
|
+
constructor(client: OilPriceAPI);
|
|
148
|
+
/**
|
|
149
|
+
* List all FracFocus disclosure records
|
|
150
|
+
*
|
|
151
|
+
* @returns Array of disclosure records
|
|
152
|
+
*/
|
|
153
|
+
list(): Promise<FracFocusRecord[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Get a specific FracFocus disclosure record
|
|
156
|
+
*
|
|
157
|
+
* @param id - Record ID
|
|
158
|
+
* @returns Disclosure record
|
|
159
|
+
*/
|
|
160
|
+
get(id: string): Promise<FracFocusRecord>;
|
|
161
|
+
/**
|
|
162
|
+
* Get latest FracFocus disclosure
|
|
163
|
+
*
|
|
164
|
+
* @returns Latest disclosure record
|
|
165
|
+
*/
|
|
166
|
+
latest(): Promise<FracFocusRecord>;
|
|
167
|
+
/**
|
|
168
|
+
* Get FracFocus summary
|
|
169
|
+
*
|
|
170
|
+
* @returns Disclosure summary statistics
|
|
171
|
+
*/
|
|
172
|
+
summary(): Promise<FracFocusSummary>;
|
|
173
|
+
/**
|
|
174
|
+
* Get disclosures by state
|
|
175
|
+
*
|
|
176
|
+
* @returns Array of disclosures grouped by state
|
|
177
|
+
*/
|
|
178
|
+
byState(): Promise<DisclosuresByState[]>;
|
|
179
|
+
/**
|
|
180
|
+
* Get disclosures by operator
|
|
181
|
+
*
|
|
182
|
+
* @returns Array of disclosures grouped by operator
|
|
183
|
+
*/
|
|
184
|
+
byOperator(): Promise<DisclosuresByOperator[]>;
|
|
185
|
+
/**
|
|
186
|
+
* Get chemical usage statistics
|
|
187
|
+
*
|
|
188
|
+
* @returns Array of chemicals used in fracturing
|
|
189
|
+
*/
|
|
190
|
+
byChemical(): Promise<ChemicalUsage[]>;
|
|
191
|
+
/**
|
|
192
|
+
* Search FracFocus disclosures
|
|
193
|
+
*
|
|
194
|
+
* @param query - Search query parameters
|
|
195
|
+
* @returns Array of matching disclosure records
|
|
196
|
+
*/
|
|
197
|
+
search(query: FracFocusSearchQuery): Promise<FracFocusRecord[]>;
|
|
198
|
+
/**
|
|
199
|
+
* Get chemicals used in a specific well
|
|
200
|
+
*
|
|
201
|
+
* @param id - Disclosure record ID
|
|
202
|
+
* @returns Array of chemicals used in the well
|
|
203
|
+
*/
|
|
204
|
+
chemicals(id: string): Promise<WellChemical[]>;
|
|
205
|
+
/**
|
|
206
|
+
* Get FracFocus disclosures for a specific well by API number
|
|
207
|
+
*
|
|
208
|
+
* @param apiNumber - API well number (e.g., "42-123-12345")
|
|
209
|
+
* @returns Array of disclosure records for the well
|
|
210
|
+
*/
|
|
211
|
+
forWell(apiNumber: string): Promise<FracFocusRecord[]>;
|
|
212
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Energy Intelligence - FracFocus Resource
|
|
3
|
+
*
|
|
4
|
+
* Access hydraulic fracturing disclosure data including chemicals, operators,
|
|
5
|
+
* and well-level information from the FracFocus registry.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* EI FracFocus Resource
|
|
9
|
+
*
|
|
10
|
+
* Access hydraulic fracturing disclosure data from the FracFocus registry.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const client = new OilPriceAPI({ apiKey: 'your_key' });
|
|
15
|
+
*
|
|
16
|
+
* // Get latest disclosure
|
|
17
|
+
* const latest = await client.ei.fracFocus.latest();
|
|
18
|
+
* console.log(`Well: ${latest.well_name} (API: ${latest.api_number})`);
|
|
19
|
+
*
|
|
20
|
+
* // Get disclosures by state
|
|
21
|
+
* const states = await client.ei.fracFocus.byState();
|
|
22
|
+
* states.forEach(s => console.log(`${s.state}: ${s.disclosure_count} disclosures`));
|
|
23
|
+
*
|
|
24
|
+
* // Get chemicals for a specific well
|
|
25
|
+
* const chemicals = await client.ei.fracFocus.chemicals('42-123-12345');
|
|
26
|
+
* chemicals.forEach(c => console.log(`${c.chemical_name}: ${c.concentration_percent}%`));
|
|
27
|
+
*
|
|
28
|
+
* // Search disclosures
|
|
29
|
+
* const results = await client.ei.fracFocus.search({
|
|
30
|
+
* state: 'Texas',
|
|
31
|
+
* operator: 'EOG Resources'
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export class EIFracFocusResource {
|
|
36
|
+
constructor(client) {
|
|
37
|
+
this.client = client;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* List all FracFocus disclosure records
|
|
41
|
+
*
|
|
42
|
+
* @returns Array of disclosure records
|
|
43
|
+
*/
|
|
44
|
+
async list() {
|
|
45
|
+
const response = await this.client["request"]("/v1/ei/frac-focus", {});
|
|
46
|
+
return Array.isArray(response) ? response : response.data;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get a specific FracFocus disclosure record
|
|
50
|
+
*
|
|
51
|
+
* @param id - Record ID
|
|
52
|
+
* @returns Disclosure record
|
|
53
|
+
*/
|
|
54
|
+
async get(id) {
|
|
55
|
+
if (!id || typeof id !== "string") {
|
|
56
|
+
throw new Error("Record ID must be a non-empty string");
|
|
57
|
+
}
|
|
58
|
+
return this.client["request"](`/v1/ei/frac-focus/${id}`, {});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get latest FracFocus disclosure
|
|
62
|
+
*
|
|
63
|
+
* @returns Latest disclosure record
|
|
64
|
+
*/
|
|
65
|
+
async latest() {
|
|
66
|
+
return this.client["request"]("/v1/ei/frac-focus/latest", {});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get FracFocus summary
|
|
70
|
+
*
|
|
71
|
+
* @returns Disclosure summary statistics
|
|
72
|
+
*/
|
|
73
|
+
async summary() {
|
|
74
|
+
return this.client["request"]("/v1/ei/frac-focus/summary", {});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get disclosures by state
|
|
78
|
+
*
|
|
79
|
+
* @returns Array of disclosures grouped by state
|
|
80
|
+
*/
|
|
81
|
+
async byState() {
|
|
82
|
+
const response = await this.client["request"]("/v1/ei/frac-focus/by-state", {});
|
|
83
|
+
return Array.isArray(response) ? response : response.data;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get disclosures by operator
|
|
87
|
+
*
|
|
88
|
+
* @returns Array of disclosures grouped by operator
|
|
89
|
+
*/
|
|
90
|
+
async byOperator() {
|
|
91
|
+
const response = await this.client["request"]("/v1/ei/frac-focus/by-operator", {});
|
|
92
|
+
return Array.isArray(response) ? response : response.data;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get chemical usage statistics
|
|
96
|
+
*
|
|
97
|
+
* @returns Array of chemicals used in fracturing
|
|
98
|
+
*/
|
|
99
|
+
async byChemical() {
|
|
100
|
+
const response = await this.client["request"]("/v1/ei/frac-focus/by-chemical", {});
|
|
101
|
+
return Array.isArray(response) ? response : response.data;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Search FracFocus disclosures
|
|
105
|
+
*
|
|
106
|
+
* @param query - Search query parameters
|
|
107
|
+
* @returns Array of matching disclosure records
|
|
108
|
+
*/
|
|
109
|
+
async search(query) {
|
|
110
|
+
const params = {};
|
|
111
|
+
if (query.state)
|
|
112
|
+
params.state = query.state;
|
|
113
|
+
if (query.operator)
|
|
114
|
+
params.operator = query.operator;
|
|
115
|
+
if (query.chemical)
|
|
116
|
+
params.chemical = query.chemical;
|
|
117
|
+
if (query.start_date)
|
|
118
|
+
params.start_date = query.start_date;
|
|
119
|
+
if (query.end_date)
|
|
120
|
+
params.end_date = query.end_date;
|
|
121
|
+
const response = await this.client["request"]("/v1/ei/frac-focus/search", params);
|
|
122
|
+
return Array.isArray(response) ? response : response.data;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get chemicals used in a specific well
|
|
126
|
+
*
|
|
127
|
+
* @param id - Disclosure record ID
|
|
128
|
+
* @returns Array of chemicals used in the well
|
|
129
|
+
*/
|
|
130
|
+
async chemicals(id) {
|
|
131
|
+
if (!id || typeof id !== "string") {
|
|
132
|
+
throw new Error("Disclosure ID must be a non-empty string");
|
|
133
|
+
}
|
|
134
|
+
const response = await this.client["request"](`/v1/ei/frac-focus/${id}/chemicals`, {});
|
|
135
|
+
return Array.isArray(response) ? response : response.chemicals;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get FracFocus disclosures for a specific well by API number
|
|
139
|
+
*
|
|
140
|
+
* @param apiNumber - API well number (e.g., "42-123-12345")
|
|
141
|
+
* @returns Array of disclosure records for the well
|
|
142
|
+
*/
|
|
143
|
+
async forWell(apiNumber) {
|
|
144
|
+
if (!apiNumber || typeof apiNumber !== "string") {
|
|
145
|
+
throw new Error("API number must be a non-empty string");
|
|
146
|
+
}
|
|
147
|
+
const response = await this.client["request"](`/v1/ei/frac-focus/for-well/${apiNumber}`, {});
|
|
148
|
+
return Array.isArray(response) ? response : response.data;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Energy Intelligence Resource
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive energy market intelligence including rig counts, inventories,
|
|
5
|
+
* OPEC production, drilling productivity, forecasts, well permits, and FracFocus data.
|
|
6
|
+
*/
|
|
7
|
+
import type { OilPriceAPI } from "../../client.js";
|
|
8
|
+
import { EIRigCountsResource } from "./rig-counts.js";
|
|
9
|
+
import { EIOilInventoriesResource } from "./oil-inventories.js";
|
|
10
|
+
import { EIOPECProductionResource } from "./opec-production.js";
|
|
11
|
+
import { EIDrillingProductivityResource } from "./drilling-productivity.js";
|
|
12
|
+
import { EIForecastsResource } from "./forecasts.js";
|
|
13
|
+
import { EIWellPermitsResource } from "./well-permits.js";
|
|
14
|
+
import { EIFracFocusResource } from "./frac-focus.js";
|
|
15
|
+
/**
|
|
16
|
+
* Well timeline event
|
|
17
|
+
*/
|
|
18
|
+
export interface WellTimelineEvent {
|
|
19
|
+
/** Event type */
|
|
20
|
+
event_type: string;
|
|
21
|
+
/** Event date */
|
|
22
|
+
date: string;
|
|
23
|
+
/** Event description */
|
|
24
|
+
description?: string;
|
|
25
|
+
/** Source of data */
|
|
26
|
+
source?: string;
|
|
27
|
+
/** Additional metadata */
|
|
28
|
+
metadata?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Well timeline data
|
|
32
|
+
*/
|
|
33
|
+
export interface WellTimeline {
|
|
34
|
+
/** API well number */
|
|
35
|
+
api_number: string;
|
|
36
|
+
/** Well name */
|
|
37
|
+
well_name?: string;
|
|
38
|
+
/** Operator */
|
|
39
|
+
operator?: string;
|
|
40
|
+
/** State */
|
|
41
|
+
state?: string;
|
|
42
|
+
/** Timeline events */
|
|
43
|
+
events: WellTimelineEvent[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Energy Intelligence Resource
|
|
47
|
+
*
|
|
48
|
+
* Access comprehensive energy market intelligence from EIA, Baker Hughes,
|
|
49
|
+
* FracFocus, and other authoritative sources.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* import { OilPriceAPI } from 'oilpriceapi';
|
|
54
|
+
*
|
|
55
|
+
* const client = new OilPriceAPI({ apiKey: 'your_key' });
|
|
56
|
+
*
|
|
57
|
+
* // Rig counts
|
|
58
|
+
* const rigCounts = await client.ei.rigCounts.latest();
|
|
59
|
+
* console.log(`Total rigs: ${rigCounts.total_rigs}`);
|
|
60
|
+
*
|
|
61
|
+
* // Oil inventories
|
|
62
|
+
* const inventories = await client.ei.oilInventories.latest();
|
|
63
|
+
* console.log(`Crude stocks: ${inventories.level} ${inventories.unit}`);
|
|
64
|
+
*
|
|
65
|
+
* // OPEC production
|
|
66
|
+
* const opec = await client.ei.opecProduction.total();
|
|
67
|
+
* console.log(`OPEC production: ${opec.total_production_bpd} bpd`);
|
|
68
|
+
*
|
|
69
|
+
* // Well timeline
|
|
70
|
+
* const timeline = await client.ei.wellTimeline('42-123-12345');
|
|
71
|
+
* timeline.events.forEach(e => {
|
|
72
|
+
* console.log(`${e.date}: ${e.event_type}`);
|
|
73
|
+
* });
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare class EnergyIntelligenceResource {
|
|
77
|
+
private client;
|
|
78
|
+
/**
|
|
79
|
+
* Baker Hughes rig count data
|
|
80
|
+
*/
|
|
81
|
+
readonly rigCounts: EIRigCountsResource;
|
|
82
|
+
/**
|
|
83
|
+
* EIA crude oil inventory data
|
|
84
|
+
*/
|
|
85
|
+
readonly oilInventories: EIOilInventoriesResource;
|
|
86
|
+
/**
|
|
87
|
+
* OPEC production data
|
|
88
|
+
*/
|
|
89
|
+
readonly opecProduction: EIOPECProductionResource;
|
|
90
|
+
/**
|
|
91
|
+
* EIA drilling productivity report data
|
|
92
|
+
*/
|
|
93
|
+
readonly drillingProductivity: EIDrillingProductivityResource;
|
|
94
|
+
/**
|
|
95
|
+
* EIA and IEA forecast data
|
|
96
|
+
*/
|
|
97
|
+
readonly forecasts: EIForecastsResource;
|
|
98
|
+
/**
|
|
99
|
+
* Well permit data
|
|
100
|
+
*/
|
|
101
|
+
readonly wellPermits: EIWellPermitsResource;
|
|
102
|
+
/**
|
|
103
|
+
* FracFocus disclosure data
|
|
104
|
+
*/
|
|
105
|
+
readonly fracFocus: EIFracFocusResource;
|
|
106
|
+
constructor(client: OilPriceAPI);
|
|
107
|
+
/**
|
|
108
|
+
* Get well timeline by API number
|
|
109
|
+
*
|
|
110
|
+
* Returns chronological timeline of events for a specific well including
|
|
111
|
+
* permits, drilling, completion, production, and FracFocus disclosures.
|
|
112
|
+
*
|
|
113
|
+
* @param apiNumber - API well number (e.g., "42-123-12345")
|
|
114
|
+
* @returns Well timeline with events
|
|
115
|
+
*
|
|
116
|
+
* @throws {NotFoundError} If well not found
|
|
117
|
+
* @throws {OilPriceAPIError} If API request fails
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const timeline = await client.ei.wellTimeline('42-123-12345');
|
|
122
|
+
* console.log(`Well: ${timeline.well_name}`);
|
|
123
|
+
* console.log(`Operator: ${timeline.operator}`);
|
|
124
|
+
* console.log(`Events: ${timeline.events.length}`);
|
|
125
|
+
*
|
|
126
|
+
* timeline.events.forEach(event => {
|
|
127
|
+
* console.log(`${event.date}: ${event.event_type} - ${event.description}`);
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
wellTimeline(apiNumber: string): Promise<WellTimeline>;
|
|
132
|
+
}
|
|
133
|
+
export type { RigCountRecord, RigCountByBasin, RigCountByState, HistoricalRigCount, } from "./rig-counts.js";
|
|
134
|
+
export type { OilInventoryRecord, OilInventorySummary, InventoryByProduct, HistoricalInventory, CushingInventory, } from "./oil-inventories.js";
|
|
135
|
+
export type { OPECProductionRecord, TotalOPECProduction, ProductionByCountry, HistoricalProduction, TopProducer, } from "./opec-production.js";
|
|
136
|
+
export type { DrillingProductivityRecord, DrillingProductivitySummary, DUCWellInventory, ProductivityByBasin, HistoricalProductivity, ProductivityTrend, } from "./drilling-productivity.js";
|
|
137
|
+
export type { ForecastRecord, ForecastSummary, PriceForecast, ProductionForecast, HistoricalForecast, ForecastComparison, } from "./forecasts.js";
|
|
138
|
+
export type { WellPermitRecord, WellPermitSummary, PermitsByState, PermitsByOperator, PermitsByFormation, WellPermitSearchQuery, } from "./well-permits.js";
|
|
139
|
+
export type { FracFocusRecord, FracFocusSummary, DisclosuresByState, DisclosuresByOperator, ChemicalUsage, WellChemical, FracFocusSearchQuery, } from "./frac-focus.js";
|
|
140
|
+
export { EIRigCountsResource, EIOilInventoriesResource, EIOPECProductionResource, EIDrillingProductivityResource, EIForecastsResource, EIWellPermitsResource, EIFracFocusResource, };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Energy Intelligence Resource
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive energy market intelligence including rig counts, inventories,
|
|
5
|
+
* OPEC production, drilling productivity, forecasts, well permits, and FracFocus data.
|
|
6
|
+
*/
|
|
7
|
+
import { EIRigCountsResource } from "./rig-counts.js";
|
|
8
|
+
import { EIOilInventoriesResource } from "./oil-inventories.js";
|
|
9
|
+
import { EIOPECProductionResource } from "./opec-production.js";
|
|
10
|
+
import { EIDrillingProductivityResource } from "./drilling-productivity.js";
|
|
11
|
+
import { EIForecastsResource } from "./forecasts.js";
|
|
12
|
+
import { EIWellPermitsResource } from "./well-permits.js";
|
|
13
|
+
import { EIFracFocusResource } from "./frac-focus.js";
|
|
14
|
+
/**
|
|
15
|
+
* Energy Intelligence Resource
|
|
16
|
+
*
|
|
17
|
+
* Access comprehensive energy market intelligence from EIA, Baker Hughes,
|
|
18
|
+
* FracFocus, and other authoritative sources.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import { OilPriceAPI } from 'oilpriceapi';
|
|
23
|
+
*
|
|
24
|
+
* const client = new OilPriceAPI({ apiKey: 'your_key' });
|
|
25
|
+
*
|
|
26
|
+
* // Rig counts
|
|
27
|
+
* const rigCounts = await client.ei.rigCounts.latest();
|
|
28
|
+
* console.log(`Total rigs: ${rigCounts.total_rigs}`);
|
|
29
|
+
*
|
|
30
|
+
* // Oil inventories
|
|
31
|
+
* const inventories = await client.ei.oilInventories.latest();
|
|
32
|
+
* console.log(`Crude stocks: ${inventories.level} ${inventories.unit}`);
|
|
33
|
+
*
|
|
34
|
+
* // OPEC production
|
|
35
|
+
* const opec = await client.ei.opecProduction.total();
|
|
36
|
+
* console.log(`OPEC production: ${opec.total_production_bpd} bpd`);
|
|
37
|
+
*
|
|
38
|
+
* // Well timeline
|
|
39
|
+
* const timeline = await client.ei.wellTimeline('42-123-12345');
|
|
40
|
+
* timeline.events.forEach(e => {
|
|
41
|
+
* console.log(`${e.date}: ${e.event_type}`);
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class EnergyIntelligenceResource {
|
|
46
|
+
constructor(client) {
|
|
47
|
+
this.client = client;
|
|
48
|
+
this.rigCounts = new EIRigCountsResource(client);
|
|
49
|
+
this.oilInventories = new EIOilInventoriesResource(client);
|
|
50
|
+
this.opecProduction = new EIOPECProductionResource(client);
|
|
51
|
+
this.drillingProductivity = new EIDrillingProductivityResource(client);
|
|
52
|
+
this.forecasts = new EIForecastsResource(client);
|
|
53
|
+
this.wellPermits = new EIWellPermitsResource(client);
|
|
54
|
+
this.fracFocus = new EIFracFocusResource(client);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get well timeline by API number
|
|
58
|
+
*
|
|
59
|
+
* Returns chronological timeline of events for a specific well including
|
|
60
|
+
* permits, drilling, completion, production, and FracFocus disclosures.
|
|
61
|
+
*
|
|
62
|
+
* @param apiNumber - API well number (e.g., "42-123-12345")
|
|
63
|
+
* @returns Well timeline with events
|
|
64
|
+
*
|
|
65
|
+
* @throws {NotFoundError} If well not found
|
|
66
|
+
* @throws {OilPriceAPIError} If API request fails
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const timeline = await client.ei.wellTimeline('42-123-12345');
|
|
71
|
+
* console.log(`Well: ${timeline.well_name}`);
|
|
72
|
+
* console.log(`Operator: ${timeline.operator}`);
|
|
73
|
+
* console.log(`Events: ${timeline.events.length}`);
|
|
74
|
+
*
|
|
75
|
+
* timeline.events.forEach(event => {
|
|
76
|
+
* console.log(`${event.date}: ${event.event_type} - ${event.description}`);
|
|
77
|
+
* });
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
async wellTimeline(apiNumber) {
|
|
81
|
+
if (!apiNumber || typeof apiNumber !== "string") {
|
|
82
|
+
throw new Error("API number must be a non-empty string");
|
|
83
|
+
}
|
|
84
|
+
return this.client["request"](`/v1/ei/wells/${apiNumber}/timeline`, {});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export { EIRigCountsResource, EIOilInventoriesResource, EIOPECProductionResource, EIDrillingProductivityResource, EIForecastsResource, EIWellPermitsResource, EIFracFocusResource, };
|