@welldot/core 0.1.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/LICENSE +179 -0
- package/README.md +179 -0
- package/dist/index.cjs +310 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +747 -0
- package/dist/index.d.ts +747 -0
- package/dist/index.js +269 -0
- package/dist/index.js.map +1 -0
- package/package.json +72 -0
- package/well-specifications.md +374 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,747 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
/** A drilled interval of the borehole. Multiple entries describe a telescoping borehole. */
|
|
4
|
+
type BoreHole = {
|
|
5
|
+
/** Start depth in meters from ground level (0 = surface). */
|
|
6
|
+
from: number;
|
|
7
|
+
/** End depth in meters from ground level. */
|
|
8
|
+
to: number;
|
|
9
|
+
/** Borehole diameter in millimeters. */
|
|
10
|
+
diameter: number;
|
|
11
|
+
/** Free text description of the drilling method used (e.g. `rotary`, `percussion`, `cable_tool`). */
|
|
12
|
+
drilling_method?: string;
|
|
13
|
+
};
|
|
14
|
+
/** Steel or plastic casing installed inside the borehole. */
|
|
15
|
+
type WellCase = {
|
|
16
|
+
/** Start depth in meters from ground level. */
|
|
17
|
+
from: number;
|
|
18
|
+
/** End depth in meters from ground level. */
|
|
19
|
+
to: number;
|
|
20
|
+
/** Casing material. Recommended: `steel`, `pvc`, `hdpe`, `fiberglass`. Can be free-text. */
|
|
21
|
+
type: string;
|
|
22
|
+
/** Casing outer diameter in millimeters. */
|
|
23
|
+
diameter: number;
|
|
24
|
+
};
|
|
25
|
+
/** Transition piece connecting two casing or screen sections of different diameters. */
|
|
26
|
+
type Reduction = {
|
|
27
|
+
/** Start depth in meters from ground level. */
|
|
28
|
+
from: number;
|
|
29
|
+
/** End depth in meters from ground level. */
|
|
30
|
+
to: number;
|
|
31
|
+
/** Diameter at the top of the reducer in millimeters. */
|
|
32
|
+
diam_from: number;
|
|
33
|
+
/** Diameter at the bottom of the reducer in millimeters. */
|
|
34
|
+
diam_to: number;
|
|
35
|
+
/** Reducer shape (e.g. `conical`, `stepped`). Can be free-text. */
|
|
36
|
+
type: string;
|
|
37
|
+
};
|
|
38
|
+
/** Slotted or wire-wound screen section that allows water to enter the well. */
|
|
39
|
+
type WellScreen = {
|
|
40
|
+
/** Start depth in meters from ground level. */
|
|
41
|
+
from: number;
|
|
42
|
+
/** End depth in meters from ground level. */
|
|
43
|
+
to: number;
|
|
44
|
+
/** Screen type. Recommended: `wire_wound`, `bridge_slot`, `louvered`, `pvc_slotted`. Can be free-text. */
|
|
45
|
+
type: string;
|
|
46
|
+
/** Screen outer diameter in millimeters. */
|
|
47
|
+
diameter: number;
|
|
48
|
+
/** Slot opening size in millimeters. */
|
|
49
|
+
screen_slot_mm: number;
|
|
50
|
+
};
|
|
51
|
+
/** Material placed in the annular space between the casing and the borehole wall. */
|
|
52
|
+
type HoleFill = {
|
|
53
|
+
/** Start depth in meters from ground level. */
|
|
54
|
+
from: number;
|
|
55
|
+
/** End depth in meters from ground level. */
|
|
56
|
+
to: number;
|
|
57
|
+
/** Fill category: `gravel_pack` for filter gravel, `seal` for cement or bentonite. */
|
|
58
|
+
type: 'gravel_pack' | 'seal';
|
|
59
|
+
/** Outer diameter of the filled annulus in millimeters. */
|
|
60
|
+
diameter: number;
|
|
61
|
+
/** Material description (e.g. grain size, material name). */
|
|
62
|
+
description: string;
|
|
63
|
+
};
|
|
64
|
+
/** Outer protective casing installed near the surface to prevent contamination. */
|
|
65
|
+
type SurfaceCase = {
|
|
66
|
+
/** Start depth in meters from ground level. */
|
|
67
|
+
from: number;
|
|
68
|
+
/** End depth in meters from ground level. */
|
|
69
|
+
to: number;
|
|
70
|
+
/** Casing outer diameter in millimeters. */
|
|
71
|
+
diameter: number;
|
|
72
|
+
};
|
|
73
|
+
/** Concrete pad installed at ground level (depth 0) around the wellhead. All dimensions in **meters**. */
|
|
74
|
+
type CementPad = {
|
|
75
|
+
/** Pad shape (e.g. `square`, `rectangular`, `circular`). */
|
|
76
|
+
type: string;
|
|
77
|
+
/** Width in meters. */
|
|
78
|
+
width: number;
|
|
79
|
+
/** Thickness in meters. */
|
|
80
|
+
thickness: number;
|
|
81
|
+
/** Length in meters. */
|
|
82
|
+
length: number;
|
|
83
|
+
};
|
|
84
|
+
/** Geological description of a depth interval. */
|
|
85
|
+
type Lithology = {
|
|
86
|
+
/** Start depth in meters from ground level. */
|
|
87
|
+
from: number;
|
|
88
|
+
/** End depth in meters from ground level. */
|
|
89
|
+
to: number;
|
|
90
|
+
/** Free-text geological description. */
|
|
91
|
+
description: string;
|
|
92
|
+
/** Representative color as a CSS hex value (e.g. `#f5deb3`). */
|
|
93
|
+
color: string;
|
|
94
|
+
/** Texture code per the FGDC Digital Cartographic Standard for Geologic Map Symbolization. */
|
|
95
|
+
fgdc_texture: string;
|
|
96
|
+
/** Name of the stratigraphic or geologic unit. */
|
|
97
|
+
geologic_unit: string;
|
|
98
|
+
/** Aquifer unit name (e.g. `Pirabas Aquifer`). */
|
|
99
|
+
aquifer_unit: string;
|
|
100
|
+
};
|
|
101
|
+
/** A discrete fracture or fracture zone intersected by the borehole. */
|
|
102
|
+
type Fracture = {
|
|
103
|
+
/** Depth of the fracture in meters from ground level. */
|
|
104
|
+
depth: number;
|
|
105
|
+
/** Whether the fracture produces water. */
|
|
106
|
+
water_intake: boolean;
|
|
107
|
+
/** Free-text description. */
|
|
108
|
+
description: string;
|
|
109
|
+
/** Whether this fracture belongs to a swarm (closely spaced set of fractures). */
|
|
110
|
+
swarm: boolean;
|
|
111
|
+
/** Azimuth in degrees from geographic north (0–360). */
|
|
112
|
+
azimuth: number;
|
|
113
|
+
/** Dip angle in degrees from horizontal (0–90). */
|
|
114
|
+
dip: number;
|
|
115
|
+
};
|
|
116
|
+
/** A cavity or void zone intersected by the borehole. */
|
|
117
|
+
type Cave = {
|
|
118
|
+
/** Start depth in meters from ground level. */
|
|
119
|
+
from: number;
|
|
120
|
+
/** End depth in meters from ground level. */
|
|
121
|
+
to: number;
|
|
122
|
+
/** Whether the cave produces water. */
|
|
123
|
+
water_intake: boolean;
|
|
124
|
+
/** Free-text description. */
|
|
125
|
+
description: string;
|
|
126
|
+
};
|
|
127
|
+
/** Complete static record of a water well. All depths in meters, all diameters in millimeters. */
|
|
128
|
+
type Well = {
|
|
129
|
+
/** Classification of the well (e.g. `tubular`, `artesian`, `hand_dug`). */
|
|
130
|
+
well_type?: string;
|
|
131
|
+
/** Well name or local identifier. */
|
|
132
|
+
name?: string;
|
|
133
|
+
/** Name of the drilling company or individual. */
|
|
134
|
+
well_driller?: string;
|
|
135
|
+
/** ISO 8601 date of well completion (YYYY-MM-DD). */
|
|
136
|
+
construction_date?: string;
|
|
137
|
+
/** Latitude in decimal degrees (WGS84). */
|
|
138
|
+
lat?: number;
|
|
139
|
+
/** Longitude in decimal degrees (WGS84). */
|
|
140
|
+
lng?: number;
|
|
141
|
+
/** Ground elevation above sea level in meters. */
|
|
142
|
+
elevation?: number;
|
|
143
|
+
/** Free-text observations about the well. */
|
|
144
|
+
obs?: string;
|
|
145
|
+
bore_hole: BoreHole[];
|
|
146
|
+
well_case: WellCase[];
|
|
147
|
+
reduction: Reduction[];
|
|
148
|
+
well_screen: WellScreen[];
|
|
149
|
+
surface_case: SurfaceCase[];
|
|
150
|
+
hole_fill: HoleFill[];
|
|
151
|
+
cement_pad: CementPad;
|
|
152
|
+
lithology: Lithology[];
|
|
153
|
+
fractures: Fracture[];
|
|
154
|
+
caves: Cave[];
|
|
155
|
+
};
|
|
156
|
+
/** Geologic section of a well (lithology, fractures, caves). */
|
|
157
|
+
type Geologic = {
|
|
158
|
+
lithology: Lithology[];
|
|
159
|
+
fractures: Fracture[];
|
|
160
|
+
caves: Cave[];
|
|
161
|
+
};
|
|
162
|
+
/** Constructive section of a well (borehole geometry, casings, screens, fills). */
|
|
163
|
+
type Constructive = {
|
|
164
|
+
bore_hole: BoreHole[];
|
|
165
|
+
well_case: WellCase[];
|
|
166
|
+
reduction: Reduction[];
|
|
167
|
+
well_screen: WellScreen[];
|
|
168
|
+
surface_case: SurfaceCase[];
|
|
169
|
+
hole_fill: HoleFill[];
|
|
170
|
+
cement_pad: CementPad;
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
type UnitsTypes = 'metric' | 'imperial';
|
|
174
|
+
type LengthUnits = 'm' | 'ft';
|
|
175
|
+
type DiameterUnits = 'mm' | 'inches';
|
|
176
|
+
type Units = {
|
|
177
|
+
length: LengthUnits;
|
|
178
|
+
diameter: DiameterUnits;
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
declare const BoreHoleSchema: z.ZodObject<{
|
|
182
|
+
from: z.ZodNumber;
|
|
183
|
+
to: z.ZodNumber;
|
|
184
|
+
diameter: z.ZodNumber;
|
|
185
|
+
drilling_method: z.ZodOptional<z.ZodString>;
|
|
186
|
+
}, "strip", z.ZodTypeAny, {
|
|
187
|
+
from: number;
|
|
188
|
+
to: number;
|
|
189
|
+
diameter: number;
|
|
190
|
+
drilling_method?: string | undefined;
|
|
191
|
+
}, {
|
|
192
|
+
from: number;
|
|
193
|
+
to: number;
|
|
194
|
+
diameter: number;
|
|
195
|
+
drilling_method?: string | undefined;
|
|
196
|
+
}>;
|
|
197
|
+
declare const WellCaseSchema: z.ZodObject<{
|
|
198
|
+
from: z.ZodNumber;
|
|
199
|
+
to: z.ZodNumber;
|
|
200
|
+
type: z.ZodString;
|
|
201
|
+
diameter: z.ZodNumber;
|
|
202
|
+
}, "strip", z.ZodTypeAny, {
|
|
203
|
+
from: number;
|
|
204
|
+
to: number;
|
|
205
|
+
diameter: number;
|
|
206
|
+
type: string;
|
|
207
|
+
}, {
|
|
208
|
+
from: number;
|
|
209
|
+
to: number;
|
|
210
|
+
diameter: number;
|
|
211
|
+
type: string;
|
|
212
|
+
}>;
|
|
213
|
+
declare const ReductionSchema: z.ZodObject<{
|
|
214
|
+
from: z.ZodNumber;
|
|
215
|
+
to: z.ZodNumber;
|
|
216
|
+
diam_from: z.ZodNumber;
|
|
217
|
+
diam_to: z.ZodNumber;
|
|
218
|
+
type: z.ZodString;
|
|
219
|
+
}, "strip", z.ZodTypeAny, {
|
|
220
|
+
from: number;
|
|
221
|
+
to: number;
|
|
222
|
+
type: string;
|
|
223
|
+
diam_from: number;
|
|
224
|
+
diam_to: number;
|
|
225
|
+
}, {
|
|
226
|
+
from: number;
|
|
227
|
+
to: number;
|
|
228
|
+
type: string;
|
|
229
|
+
diam_from: number;
|
|
230
|
+
diam_to: number;
|
|
231
|
+
}>;
|
|
232
|
+
declare const WellScreenSchema: z.ZodObject<{
|
|
233
|
+
from: z.ZodNumber;
|
|
234
|
+
to: z.ZodNumber;
|
|
235
|
+
type: z.ZodString;
|
|
236
|
+
diameter: z.ZodNumber;
|
|
237
|
+
screen_slot_mm: z.ZodNumber;
|
|
238
|
+
}, "strip", z.ZodTypeAny, {
|
|
239
|
+
from: number;
|
|
240
|
+
to: number;
|
|
241
|
+
diameter: number;
|
|
242
|
+
type: string;
|
|
243
|
+
screen_slot_mm: number;
|
|
244
|
+
}, {
|
|
245
|
+
from: number;
|
|
246
|
+
to: number;
|
|
247
|
+
diameter: number;
|
|
248
|
+
type: string;
|
|
249
|
+
screen_slot_mm: number;
|
|
250
|
+
}>;
|
|
251
|
+
declare const HoleFillSchema: z.ZodObject<{
|
|
252
|
+
from: z.ZodNumber;
|
|
253
|
+
to: z.ZodNumber;
|
|
254
|
+
type: z.ZodEnum<["gravel_pack", "seal"]>;
|
|
255
|
+
diameter: z.ZodNumber;
|
|
256
|
+
description: z.ZodString;
|
|
257
|
+
}, "strip", z.ZodTypeAny, {
|
|
258
|
+
from: number;
|
|
259
|
+
to: number;
|
|
260
|
+
diameter: number;
|
|
261
|
+
type: "gravel_pack" | "seal";
|
|
262
|
+
description: string;
|
|
263
|
+
}, {
|
|
264
|
+
from: number;
|
|
265
|
+
to: number;
|
|
266
|
+
diameter: number;
|
|
267
|
+
type: "gravel_pack" | "seal";
|
|
268
|
+
description: string;
|
|
269
|
+
}>;
|
|
270
|
+
declare const SurfaceCaseSchema: z.ZodObject<{
|
|
271
|
+
from: z.ZodNumber;
|
|
272
|
+
to: z.ZodNumber;
|
|
273
|
+
diameter: z.ZodNumber;
|
|
274
|
+
}, "strip", z.ZodTypeAny, {
|
|
275
|
+
from: number;
|
|
276
|
+
to: number;
|
|
277
|
+
diameter: number;
|
|
278
|
+
}, {
|
|
279
|
+
from: number;
|
|
280
|
+
to: number;
|
|
281
|
+
diameter: number;
|
|
282
|
+
}>;
|
|
283
|
+
declare const CementPadSchema: z.ZodObject<{
|
|
284
|
+
type: z.ZodString;
|
|
285
|
+
width: z.ZodNumber;
|
|
286
|
+
thickness: z.ZodNumber;
|
|
287
|
+
length: z.ZodNumber;
|
|
288
|
+
}, "strip", z.ZodTypeAny, {
|
|
289
|
+
type: string;
|
|
290
|
+
length: number;
|
|
291
|
+
width: number;
|
|
292
|
+
thickness: number;
|
|
293
|
+
}, {
|
|
294
|
+
type: string;
|
|
295
|
+
length: number;
|
|
296
|
+
width: number;
|
|
297
|
+
thickness: number;
|
|
298
|
+
}>;
|
|
299
|
+
declare const LithologySchema: z.ZodObject<{
|
|
300
|
+
from: z.ZodNumber;
|
|
301
|
+
to: z.ZodNumber;
|
|
302
|
+
description: z.ZodString;
|
|
303
|
+
color: z.ZodString;
|
|
304
|
+
fgdc_texture: z.ZodString;
|
|
305
|
+
geologic_unit: z.ZodString;
|
|
306
|
+
aquifer_unit: z.ZodString;
|
|
307
|
+
}, "strip", z.ZodTypeAny, {
|
|
308
|
+
from: number;
|
|
309
|
+
to: number;
|
|
310
|
+
description: string;
|
|
311
|
+
color: string;
|
|
312
|
+
fgdc_texture: string;
|
|
313
|
+
geologic_unit: string;
|
|
314
|
+
aquifer_unit: string;
|
|
315
|
+
}, {
|
|
316
|
+
from: number;
|
|
317
|
+
to: number;
|
|
318
|
+
description: string;
|
|
319
|
+
color: string;
|
|
320
|
+
fgdc_texture: string;
|
|
321
|
+
geologic_unit: string;
|
|
322
|
+
aquifer_unit: string;
|
|
323
|
+
}>;
|
|
324
|
+
declare const FractureSchema: z.ZodObject<{
|
|
325
|
+
depth: z.ZodNumber;
|
|
326
|
+
water_intake: z.ZodBoolean;
|
|
327
|
+
description: z.ZodString;
|
|
328
|
+
swarm: z.ZodBoolean;
|
|
329
|
+
azimuth: z.ZodNumber;
|
|
330
|
+
dip: z.ZodNumber;
|
|
331
|
+
}, "strip", z.ZodTypeAny, {
|
|
332
|
+
description: string;
|
|
333
|
+
depth: number;
|
|
334
|
+
water_intake: boolean;
|
|
335
|
+
swarm: boolean;
|
|
336
|
+
azimuth: number;
|
|
337
|
+
dip: number;
|
|
338
|
+
}, {
|
|
339
|
+
description: string;
|
|
340
|
+
depth: number;
|
|
341
|
+
water_intake: boolean;
|
|
342
|
+
swarm: boolean;
|
|
343
|
+
azimuth: number;
|
|
344
|
+
dip: number;
|
|
345
|
+
}>;
|
|
346
|
+
declare const CaveSchema: z.ZodObject<{
|
|
347
|
+
from: z.ZodNumber;
|
|
348
|
+
to: z.ZodNumber;
|
|
349
|
+
water_intake: z.ZodBoolean;
|
|
350
|
+
description: z.ZodString;
|
|
351
|
+
}, "strip", z.ZodTypeAny, {
|
|
352
|
+
from: number;
|
|
353
|
+
to: number;
|
|
354
|
+
description: string;
|
|
355
|
+
water_intake: boolean;
|
|
356
|
+
}, {
|
|
357
|
+
from: number;
|
|
358
|
+
to: number;
|
|
359
|
+
description: string;
|
|
360
|
+
water_intake: boolean;
|
|
361
|
+
}>;
|
|
362
|
+
declare const WellSchema: z.ZodObject<{
|
|
363
|
+
well_type: z.ZodOptional<z.ZodString>;
|
|
364
|
+
name: z.ZodOptional<z.ZodString>;
|
|
365
|
+
well_driller: z.ZodOptional<z.ZodString>;
|
|
366
|
+
construction_date: z.ZodOptional<z.ZodString>;
|
|
367
|
+
lat: z.ZodOptional<z.ZodNumber>;
|
|
368
|
+
lng: z.ZodOptional<z.ZodNumber>;
|
|
369
|
+
elevation: z.ZodOptional<z.ZodNumber>;
|
|
370
|
+
obs: z.ZodOptional<z.ZodString>;
|
|
371
|
+
bore_hole: z.ZodArray<z.ZodObject<{
|
|
372
|
+
from: z.ZodNumber;
|
|
373
|
+
to: z.ZodNumber;
|
|
374
|
+
diameter: z.ZodNumber;
|
|
375
|
+
drilling_method: z.ZodOptional<z.ZodString>;
|
|
376
|
+
}, "strip", z.ZodTypeAny, {
|
|
377
|
+
from: number;
|
|
378
|
+
to: number;
|
|
379
|
+
diameter: number;
|
|
380
|
+
drilling_method?: string | undefined;
|
|
381
|
+
}, {
|
|
382
|
+
from: number;
|
|
383
|
+
to: number;
|
|
384
|
+
diameter: number;
|
|
385
|
+
drilling_method?: string | undefined;
|
|
386
|
+
}>, "many">;
|
|
387
|
+
well_case: z.ZodArray<z.ZodObject<{
|
|
388
|
+
from: z.ZodNumber;
|
|
389
|
+
to: z.ZodNumber;
|
|
390
|
+
type: z.ZodString;
|
|
391
|
+
diameter: z.ZodNumber;
|
|
392
|
+
}, "strip", z.ZodTypeAny, {
|
|
393
|
+
from: number;
|
|
394
|
+
to: number;
|
|
395
|
+
diameter: number;
|
|
396
|
+
type: string;
|
|
397
|
+
}, {
|
|
398
|
+
from: number;
|
|
399
|
+
to: number;
|
|
400
|
+
diameter: number;
|
|
401
|
+
type: string;
|
|
402
|
+
}>, "many">;
|
|
403
|
+
reduction: z.ZodArray<z.ZodObject<{
|
|
404
|
+
from: z.ZodNumber;
|
|
405
|
+
to: z.ZodNumber;
|
|
406
|
+
diam_from: z.ZodNumber;
|
|
407
|
+
diam_to: z.ZodNumber;
|
|
408
|
+
type: z.ZodString;
|
|
409
|
+
}, "strip", z.ZodTypeAny, {
|
|
410
|
+
from: number;
|
|
411
|
+
to: number;
|
|
412
|
+
type: string;
|
|
413
|
+
diam_from: number;
|
|
414
|
+
diam_to: number;
|
|
415
|
+
}, {
|
|
416
|
+
from: number;
|
|
417
|
+
to: number;
|
|
418
|
+
type: string;
|
|
419
|
+
diam_from: number;
|
|
420
|
+
diam_to: number;
|
|
421
|
+
}>, "many">;
|
|
422
|
+
well_screen: z.ZodArray<z.ZodObject<{
|
|
423
|
+
from: z.ZodNumber;
|
|
424
|
+
to: z.ZodNumber;
|
|
425
|
+
type: z.ZodString;
|
|
426
|
+
diameter: z.ZodNumber;
|
|
427
|
+
screen_slot_mm: z.ZodNumber;
|
|
428
|
+
}, "strip", z.ZodTypeAny, {
|
|
429
|
+
from: number;
|
|
430
|
+
to: number;
|
|
431
|
+
diameter: number;
|
|
432
|
+
type: string;
|
|
433
|
+
screen_slot_mm: number;
|
|
434
|
+
}, {
|
|
435
|
+
from: number;
|
|
436
|
+
to: number;
|
|
437
|
+
diameter: number;
|
|
438
|
+
type: string;
|
|
439
|
+
screen_slot_mm: number;
|
|
440
|
+
}>, "many">;
|
|
441
|
+
surface_case: z.ZodArray<z.ZodObject<{
|
|
442
|
+
from: z.ZodNumber;
|
|
443
|
+
to: z.ZodNumber;
|
|
444
|
+
diameter: z.ZodNumber;
|
|
445
|
+
}, "strip", z.ZodTypeAny, {
|
|
446
|
+
from: number;
|
|
447
|
+
to: number;
|
|
448
|
+
diameter: number;
|
|
449
|
+
}, {
|
|
450
|
+
from: number;
|
|
451
|
+
to: number;
|
|
452
|
+
diameter: number;
|
|
453
|
+
}>, "many">;
|
|
454
|
+
hole_fill: z.ZodArray<z.ZodObject<{
|
|
455
|
+
from: z.ZodNumber;
|
|
456
|
+
to: z.ZodNumber;
|
|
457
|
+
type: z.ZodEnum<["gravel_pack", "seal"]>;
|
|
458
|
+
diameter: z.ZodNumber;
|
|
459
|
+
description: z.ZodString;
|
|
460
|
+
}, "strip", z.ZodTypeAny, {
|
|
461
|
+
from: number;
|
|
462
|
+
to: number;
|
|
463
|
+
diameter: number;
|
|
464
|
+
type: "gravel_pack" | "seal";
|
|
465
|
+
description: string;
|
|
466
|
+
}, {
|
|
467
|
+
from: number;
|
|
468
|
+
to: number;
|
|
469
|
+
diameter: number;
|
|
470
|
+
type: "gravel_pack" | "seal";
|
|
471
|
+
description: string;
|
|
472
|
+
}>, "many">;
|
|
473
|
+
cement_pad: z.ZodObject<{
|
|
474
|
+
type: z.ZodString;
|
|
475
|
+
width: z.ZodNumber;
|
|
476
|
+
thickness: z.ZodNumber;
|
|
477
|
+
length: z.ZodNumber;
|
|
478
|
+
}, "strip", z.ZodTypeAny, {
|
|
479
|
+
type: string;
|
|
480
|
+
length: number;
|
|
481
|
+
width: number;
|
|
482
|
+
thickness: number;
|
|
483
|
+
}, {
|
|
484
|
+
type: string;
|
|
485
|
+
length: number;
|
|
486
|
+
width: number;
|
|
487
|
+
thickness: number;
|
|
488
|
+
}>;
|
|
489
|
+
lithology: z.ZodArray<z.ZodObject<{
|
|
490
|
+
from: z.ZodNumber;
|
|
491
|
+
to: z.ZodNumber;
|
|
492
|
+
description: z.ZodString;
|
|
493
|
+
color: z.ZodString;
|
|
494
|
+
fgdc_texture: z.ZodString;
|
|
495
|
+
geologic_unit: z.ZodString;
|
|
496
|
+
aquifer_unit: z.ZodString;
|
|
497
|
+
}, "strip", z.ZodTypeAny, {
|
|
498
|
+
from: number;
|
|
499
|
+
to: number;
|
|
500
|
+
description: string;
|
|
501
|
+
color: string;
|
|
502
|
+
fgdc_texture: string;
|
|
503
|
+
geologic_unit: string;
|
|
504
|
+
aquifer_unit: string;
|
|
505
|
+
}, {
|
|
506
|
+
from: number;
|
|
507
|
+
to: number;
|
|
508
|
+
description: string;
|
|
509
|
+
color: string;
|
|
510
|
+
fgdc_texture: string;
|
|
511
|
+
geologic_unit: string;
|
|
512
|
+
aquifer_unit: string;
|
|
513
|
+
}>, "many">;
|
|
514
|
+
fractures: z.ZodArray<z.ZodObject<{
|
|
515
|
+
depth: z.ZodNumber;
|
|
516
|
+
water_intake: z.ZodBoolean;
|
|
517
|
+
description: z.ZodString;
|
|
518
|
+
swarm: z.ZodBoolean;
|
|
519
|
+
azimuth: z.ZodNumber;
|
|
520
|
+
dip: z.ZodNumber;
|
|
521
|
+
}, "strip", z.ZodTypeAny, {
|
|
522
|
+
description: string;
|
|
523
|
+
depth: number;
|
|
524
|
+
water_intake: boolean;
|
|
525
|
+
swarm: boolean;
|
|
526
|
+
azimuth: number;
|
|
527
|
+
dip: number;
|
|
528
|
+
}, {
|
|
529
|
+
description: string;
|
|
530
|
+
depth: number;
|
|
531
|
+
water_intake: boolean;
|
|
532
|
+
swarm: boolean;
|
|
533
|
+
azimuth: number;
|
|
534
|
+
dip: number;
|
|
535
|
+
}>, "many">;
|
|
536
|
+
caves: z.ZodArray<z.ZodObject<{
|
|
537
|
+
from: z.ZodNumber;
|
|
538
|
+
to: z.ZodNumber;
|
|
539
|
+
water_intake: z.ZodBoolean;
|
|
540
|
+
description: z.ZodString;
|
|
541
|
+
}, "strip", z.ZodTypeAny, {
|
|
542
|
+
from: number;
|
|
543
|
+
to: number;
|
|
544
|
+
description: string;
|
|
545
|
+
water_intake: boolean;
|
|
546
|
+
}, {
|
|
547
|
+
from: number;
|
|
548
|
+
to: number;
|
|
549
|
+
description: string;
|
|
550
|
+
water_intake: boolean;
|
|
551
|
+
}>, "many">;
|
|
552
|
+
}, "strip", z.ZodTypeAny, {
|
|
553
|
+
bore_hole: {
|
|
554
|
+
from: number;
|
|
555
|
+
to: number;
|
|
556
|
+
diameter: number;
|
|
557
|
+
drilling_method?: string | undefined;
|
|
558
|
+
}[];
|
|
559
|
+
well_case: {
|
|
560
|
+
from: number;
|
|
561
|
+
to: number;
|
|
562
|
+
diameter: number;
|
|
563
|
+
type: string;
|
|
564
|
+
}[];
|
|
565
|
+
reduction: {
|
|
566
|
+
from: number;
|
|
567
|
+
to: number;
|
|
568
|
+
type: string;
|
|
569
|
+
diam_from: number;
|
|
570
|
+
diam_to: number;
|
|
571
|
+
}[];
|
|
572
|
+
well_screen: {
|
|
573
|
+
from: number;
|
|
574
|
+
to: number;
|
|
575
|
+
diameter: number;
|
|
576
|
+
type: string;
|
|
577
|
+
screen_slot_mm: number;
|
|
578
|
+
}[];
|
|
579
|
+
surface_case: {
|
|
580
|
+
from: number;
|
|
581
|
+
to: number;
|
|
582
|
+
diameter: number;
|
|
583
|
+
}[];
|
|
584
|
+
hole_fill: {
|
|
585
|
+
from: number;
|
|
586
|
+
to: number;
|
|
587
|
+
diameter: number;
|
|
588
|
+
type: "gravel_pack" | "seal";
|
|
589
|
+
description: string;
|
|
590
|
+
}[];
|
|
591
|
+
cement_pad: {
|
|
592
|
+
type: string;
|
|
593
|
+
length: number;
|
|
594
|
+
width: number;
|
|
595
|
+
thickness: number;
|
|
596
|
+
};
|
|
597
|
+
lithology: {
|
|
598
|
+
from: number;
|
|
599
|
+
to: number;
|
|
600
|
+
description: string;
|
|
601
|
+
color: string;
|
|
602
|
+
fgdc_texture: string;
|
|
603
|
+
geologic_unit: string;
|
|
604
|
+
aquifer_unit: string;
|
|
605
|
+
}[];
|
|
606
|
+
fractures: {
|
|
607
|
+
description: string;
|
|
608
|
+
depth: number;
|
|
609
|
+
water_intake: boolean;
|
|
610
|
+
swarm: boolean;
|
|
611
|
+
azimuth: number;
|
|
612
|
+
dip: number;
|
|
613
|
+
}[];
|
|
614
|
+
caves: {
|
|
615
|
+
from: number;
|
|
616
|
+
to: number;
|
|
617
|
+
description: string;
|
|
618
|
+
water_intake: boolean;
|
|
619
|
+
}[];
|
|
620
|
+
well_type?: string | undefined;
|
|
621
|
+
name?: string | undefined;
|
|
622
|
+
well_driller?: string | undefined;
|
|
623
|
+
construction_date?: string | undefined;
|
|
624
|
+
lat?: number | undefined;
|
|
625
|
+
lng?: number | undefined;
|
|
626
|
+
elevation?: number | undefined;
|
|
627
|
+
obs?: string | undefined;
|
|
628
|
+
}, {
|
|
629
|
+
bore_hole: {
|
|
630
|
+
from: number;
|
|
631
|
+
to: number;
|
|
632
|
+
diameter: number;
|
|
633
|
+
drilling_method?: string | undefined;
|
|
634
|
+
}[];
|
|
635
|
+
well_case: {
|
|
636
|
+
from: number;
|
|
637
|
+
to: number;
|
|
638
|
+
diameter: number;
|
|
639
|
+
type: string;
|
|
640
|
+
}[];
|
|
641
|
+
reduction: {
|
|
642
|
+
from: number;
|
|
643
|
+
to: number;
|
|
644
|
+
type: string;
|
|
645
|
+
diam_from: number;
|
|
646
|
+
diam_to: number;
|
|
647
|
+
}[];
|
|
648
|
+
well_screen: {
|
|
649
|
+
from: number;
|
|
650
|
+
to: number;
|
|
651
|
+
diameter: number;
|
|
652
|
+
type: string;
|
|
653
|
+
screen_slot_mm: number;
|
|
654
|
+
}[];
|
|
655
|
+
surface_case: {
|
|
656
|
+
from: number;
|
|
657
|
+
to: number;
|
|
658
|
+
diameter: number;
|
|
659
|
+
}[];
|
|
660
|
+
hole_fill: {
|
|
661
|
+
from: number;
|
|
662
|
+
to: number;
|
|
663
|
+
diameter: number;
|
|
664
|
+
type: "gravel_pack" | "seal";
|
|
665
|
+
description: string;
|
|
666
|
+
}[];
|
|
667
|
+
cement_pad: {
|
|
668
|
+
type: string;
|
|
669
|
+
length: number;
|
|
670
|
+
width: number;
|
|
671
|
+
thickness: number;
|
|
672
|
+
};
|
|
673
|
+
lithology: {
|
|
674
|
+
from: number;
|
|
675
|
+
to: number;
|
|
676
|
+
description: string;
|
|
677
|
+
color: string;
|
|
678
|
+
fgdc_texture: string;
|
|
679
|
+
geologic_unit: string;
|
|
680
|
+
aquifer_unit: string;
|
|
681
|
+
}[];
|
|
682
|
+
fractures: {
|
|
683
|
+
description: string;
|
|
684
|
+
depth: number;
|
|
685
|
+
water_intake: boolean;
|
|
686
|
+
swarm: boolean;
|
|
687
|
+
azimuth: number;
|
|
688
|
+
dip: number;
|
|
689
|
+
}[];
|
|
690
|
+
caves: {
|
|
691
|
+
from: number;
|
|
692
|
+
to: number;
|
|
693
|
+
description: string;
|
|
694
|
+
water_intake: boolean;
|
|
695
|
+
}[];
|
|
696
|
+
well_type?: string | undefined;
|
|
697
|
+
name?: string | undefined;
|
|
698
|
+
well_driller?: string | undefined;
|
|
699
|
+
construction_date?: string | undefined;
|
|
700
|
+
lat?: number | undefined;
|
|
701
|
+
lng?: number | undefined;
|
|
702
|
+
elevation?: number | undefined;
|
|
703
|
+
obs?: string | undefined;
|
|
704
|
+
}>;
|
|
705
|
+
declare function parseWell(json: string): Well;
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* Serializes a {@link Well} object into a versioned JSON string suitable for
|
|
709
|
+
* storage or transmission.
|
|
710
|
+
*
|
|
711
|
+
* @param well - The well profile to serialize.
|
|
712
|
+
* @returns A JSON string containing the versioned well payload.
|
|
713
|
+
*/
|
|
714
|
+
declare function serializeWell(well: Well): string;
|
|
715
|
+
/**
|
|
716
|
+
* Returns `true` when the well has no meaningful data — all constructive and
|
|
717
|
+
* geologic arrays are empty and no legacy nested structure is present.
|
|
718
|
+
*
|
|
719
|
+
* @param well - The well profile to check. Accepts `null` / `undefined`
|
|
720
|
+
* (both treated as empty).
|
|
721
|
+
* @returns `true` if the well is considered empty, `false` otherwise.
|
|
722
|
+
*/
|
|
723
|
+
declare function isWellEmpty(well: Well | null | undefined): boolean;
|
|
724
|
+
/**
|
|
725
|
+
* Parses a JSON string produced by {@link serializeWell} (or older legacy
|
|
726
|
+
* formats) and returns a normalized {@link Well} object.
|
|
727
|
+
*
|
|
728
|
+
* Handles:
|
|
729
|
+
* - Versioned format (v1)
|
|
730
|
+
* - Legacy format with `constructive` / `geologic` sub-objects
|
|
731
|
+
* - Legacy `diam_pol` inch diameters → `diameter` mm conversion
|
|
732
|
+
* - Typo `bole_hole` → `bore_hole` compatibility
|
|
733
|
+
*
|
|
734
|
+
* @param jsonString - Raw JSON string to parse.
|
|
735
|
+
* @returns A normalized {@link Well}, or `null` if the parsed data is empty.
|
|
736
|
+
* @throws {Error} If `jsonString` is not valid JSON.
|
|
737
|
+
* @throws {Error} If the `version` field is present but not supported.
|
|
738
|
+
*/
|
|
739
|
+
declare function deserializeWell(jsonString: string): Well | null;
|
|
740
|
+
/** @deprecated Use {@link serializeWell} */
|
|
741
|
+
declare const profileToWell: typeof serializeWell;
|
|
742
|
+
/** @deprecated Use {@link isWellEmpty} */
|
|
743
|
+
declare const checkIfProfileIsEmpty: typeof isWellEmpty;
|
|
744
|
+
/** @deprecated Use {@link deserializeWell} */
|
|
745
|
+
declare const convertProfileFromJSON: typeof deserializeWell;
|
|
746
|
+
|
|
747
|
+
export { type BoreHole, BoreHoleSchema, type Cave, CaveSchema, type CementPad, CementPadSchema, type Constructive, type DiameterUnits, type Fracture, FractureSchema, type Geologic, type HoleFill, HoleFillSchema, type LengthUnits, type Lithology, LithologySchema, type Well as Profile, type Reduction, ReductionSchema, type SurfaceCase, SurfaceCaseSchema, type Units, type UnitsTypes, type Well, type WellCase, WellCaseSchema, WellSchema, type WellScreen, WellScreenSchema, checkIfProfileIsEmpty, convertProfileFromJSON, parseWell, profileToWell };
|