@railtownai/railengine-ingest 0.0.2 → 0.0.4
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 +41 -516
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/client.d.ts +7 -0
- package/dist/types/client.d.ts.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,516 +1,41 @@
|
|
|
1
|
-
# @railtownai/railengine-ingest
|
|
2
|
-
|
|
3
|
-
JavaScript/TypeScript SDK for Railtown AI Rail Engine - Ingestion package. This package provides a simple interface for publishing data to Rail Engine and handling webhook events.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @railtownai/railengine-ingest
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Requirements
|
|
12
|
-
|
|
13
|
-
- Node.js 20+
|
|
14
|
-
- TypeScript 5.0+ (optional, but recommended)
|
|
15
|
-
|
|
16
|
-
## Quick Start
|
|
17
|
-
|
|
18
|
-
### Basic Usage
|
|
19
|
-
|
|
20
|
-
```typescript
|
|
21
|
-
import { RailEngineIngest } from "@railtownai/railengine-ingest";
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// Send data
|
|
36
|
-
await client.upsert(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Using Environment Variables
|
|
46
|
-
|
|
47
|
-
```typescript
|
|
48
|
-
import { RailEngineIngest } from "@railtownai/railengine-ingest";
|
|
49
|
-
|
|
50
|
-
// ENGINE_TOKEN is read from environment variable automatically
|
|
51
|
-
const client = new RailEngineIngest();
|
|
52
|
-
|
|
53
|
-
await client.upsert({
|
|
54
|
-
EventId: "guid",
|
|
55
|
-
EngineId: client.engineId,
|
|
56
|
-
ProjectId: "project-id",
|
|
57
|
-
Body: JSON.stringify({ title: "My Document" })
|
|
58
|
-
});
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## ENGINE_TOKEN Configuration
|
|
62
|
-
|
|
63
|
-
The `ENGINE_TOKEN` is a base64-encoded JSON string containing your ingestion configuration. You can create it like this:
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
import { Buffer } from "buffer";
|
|
67
|
-
|
|
68
|
-
const tokenData = {
|
|
69
|
-
IngestionUrl: "https://eng123.railtownlogs.com",
|
|
70
|
-
IngestionApiToken: "your-auth-token-here",
|
|
71
|
-
EngineId: "your-engine-guid-here"
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const engineToken = Buffer.from(JSON.stringify(tokenData)).toString("base64");
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Setting Environment Variables
|
|
78
|
-
|
|
79
|
-
#### Windows (PowerShell)
|
|
80
|
-
|
|
81
|
-
```powershell
|
|
82
|
-
$env:ENGINE_TOKEN="<base64-encoded-token>"
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
#### Windows (Command Prompt)
|
|
86
|
-
|
|
87
|
-
```cmd
|
|
88
|
-
set ENGINE_TOKEN=<base64-encoded-token>
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
#### macOS/Linux
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
export ENGINE_TOKEN="<base64-encoded-token>"
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
#### .env file
|
|
98
|
-
|
|
99
|
-
Create a `.env` file in your project root:
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
ENGINE_TOKEN=<base64-encoded-token>
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Then use a package like `dotenv` to load it:
|
|
106
|
-
|
|
107
|
-
```typescript
|
|
108
|
-
import "dotenv/config";
|
|
109
|
-
import { RailEngineIngest } from "@railtownai/railengine-ingest";
|
|
110
|
-
|
|
111
|
-
const client = new RailEngineIngest(); // Reads from process.env.ENGINE_TOKEN
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
## Zod Schema Support
|
|
115
|
-
|
|
116
|
-
You can provide a Zod schema during client initialization to automatically validate ingested data:
|
|
117
|
-
|
|
118
|
-
```typescript
|
|
119
|
-
import { z } from "zod";
|
|
120
|
-
import { RailEngineIngest } from "@railtownai/railengine-ingest";
|
|
121
|
-
import { Buffer } from "buffer";
|
|
122
|
-
|
|
123
|
-
const FoodDiaryItemSchema = z.object({
|
|
124
|
-
food_name: z.string(),
|
|
125
|
-
calories: z.number(),
|
|
126
|
-
carbs: z.number(),
|
|
127
|
-
proteins: z.number(),
|
|
128
|
-
fats: z.number()
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
type FoodDiaryItem = z.infer<typeof FoodDiaryItemSchema>;
|
|
132
|
-
|
|
133
|
-
// Initialize with schema
|
|
134
|
-
const token = Buffer.from(
|
|
135
|
-
JSON.stringify({
|
|
136
|
-
IngestionUrl: "https://eng123.railtownlogs.com",
|
|
137
|
-
IngestionApiToken: "your-auth-token",
|
|
138
|
-
EngineId: "your-engine-id"
|
|
139
|
-
})
|
|
140
|
-
).toString("base64");
|
|
141
|
-
|
|
142
|
-
const client = new RailEngineIngest({
|
|
143
|
-
engineToken: token,
|
|
144
|
-
schema: FoodDiaryItemSchema
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
// Ingest using validated object
|
|
148
|
-
const item: FoodDiaryItem = {
|
|
149
|
-
food_name: "Apple",
|
|
150
|
-
calories: 95,
|
|
151
|
-
carbs: 25.0,
|
|
152
|
-
proteins: 0.5,
|
|
153
|
-
fats: 0.3
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
await client.upsert(item); // Automatically validates and serializes
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
## Webhook Handling
|
|
160
|
-
|
|
161
|
-
The ingestion package provides webhook handling capabilities for receiving and processing webhook events from Rail Engine's Publishing cylinder.
|
|
162
|
-
|
|
163
|
-
### Basic Webhook Handler
|
|
164
|
-
|
|
165
|
-
```typescript
|
|
166
|
-
import { z } from "zod";
|
|
167
|
-
import { WebhookHandler } from "@railtownai/railengine-ingest";
|
|
168
|
-
|
|
169
|
-
const FoodDiaryItemSchema = z.object({
|
|
170
|
-
food_name: z.string(),
|
|
171
|
-
calories: z.number()
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
// Create handler with schema
|
|
175
|
-
const handler = new WebhookHandler({ schema: FoodDiaryItemSchema });
|
|
176
|
-
|
|
177
|
-
// Parse webhook payload (list of events)
|
|
178
|
-
const events = handler.parse(await request.json());
|
|
179
|
-
|
|
180
|
-
// Process each event
|
|
181
|
-
for (const event of events) {
|
|
182
|
-
console.log(`Event ID: ${event.eventId}`);
|
|
183
|
-
console.log(`Engine ID: ${event.engineId}`);
|
|
184
|
-
console.log(`Project ID: ${event.projectId}`);
|
|
185
|
-
|
|
186
|
-
// Access deserialized body (FoodDiaryItem)
|
|
187
|
-
const item = event.body;
|
|
188
|
-
console.log(`Food: ${item.food_name}, Calories: ${item.calories}`);
|
|
189
|
-
}
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
### Using Client's Webhook Handler
|
|
193
|
-
|
|
194
|
-
If your client was initialized with a schema, you can get a pre-configured webhook handler:
|
|
195
|
-
|
|
196
|
-
```typescript
|
|
197
|
-
import { z } from "zod";
|
|
198
|
-
import { RailEngineIngest } from "@railtownai/railengine-ingest";
|
|
199
|
-
import { Buffer } from "buffer";
|
|
200
|
-
|
|
201
|
-
const FoodDiaryItemSchema = z.object({
|
|
202
|
-
food_name: z.string(),
|
|
203
|
-
calories: z.number()
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
const token = Buffer.from(
|
|
207
|
-
JSON.stringify({
|
|
208
|
-
IngestionUrl: "https://eng123.railtownlogs.com",
|
|
209
|
-
IngestionApiToken: "your-auth-token",
|
|
210
|
-
EngineId: "your-engine-id"
|
|
211
|
-
})
|
|
212
|
-
).toString("base64");
|
|
213
|
-
|
|
214
|
-
// Initialize client with schema
|
|
215
|
-
const client = new RailEngineIngest({
|
|
216
|
-
engineToken: token,
|
|
217
|
-
schema: FoodDiaryItemSchema
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
// Get handler (automatically uses FoodDiaryItemSchema)
|
|
221
|
-
const handler = client.getWebhookHandler();
|
|
222
|
-
|
|
223
|
-
// Parse webhook payload
|
|
224
|
-
const events = handler.parse(await request.json());
|
|
225
|
-
|
|
226
|
-
// events[0].body is a FoodDiaryItem
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### Express.js Integration Example
|
|
230
|
-
|
|
231
|
-
```typescript
|
|
232
|
-
import express from "express";
|
|
233
|
-
import { z } from "zod";
|
|
234
|
-
import { RailEngineIngest } from "@railtownai/railengine-ingest";
|
|
235
|
-
import { Buffer } from "buffer";
|
|
236
|
-
|
|
237
|
-
const app = express();
|
|
238
|
-
|
|
239
|
-
const FoodDiaryItemSchema = z.object({
|
|
240
|
-
food_name: z.string(),
|
|
241
|
-
calories: z.number(),
|
|
242
|
-
carbs: z.number(),
|
|
243
|
-
proteins: z.number(),
|
|
244
|
-
fats: z.number()
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
const token = Buffer.from(
|
|
248
|
-
JSON.stringify({
|
|
249
|
-
IngestionUrl: "https://eng123.railtownlogs.com",
|
|
250
|
-
IngestionApiToken: "your-auth-token",
|
|
251
|
-
EngineId: "your-engine-id"
|
|
252
|
-
})
|
|
253
|
-
).toString("base64");
|
|
254
|
-
|
|
255
|
-
const client = new RailEngineIngest({
|
|
256
|
-
engineToken: token,
|
|
257
|
-
schema: FoodDiaryItemSchema
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
const handler = client.getWebhookHandler();
|
|
261
|
-
|
|
262
|
-
app.post("/webhook", express.json(), async (req, res) => {
|
|
263
|
-
try {
|
|
264
|
-
// Parse webhook payload (list of events)
|
|
265
|
-
const events = handler.parse(req.body);
|
|
266
|
-
|
|
267
|
-
// Process each event
|
|
268
|
-
for (const event of events) {
|
|
269
|
-
// Access metadata
|
|
270
|
-
console.log(`Event ID: ${event.eventId}`);
|
|
271
|
-
console.log(`Engine ID: ${event.engineId}`);
|
|
272
|
-
console.log(`Project ID: ${event.projectId}`);
|
|
273
|
-
|
|
274
|
-
// Access deserialized body (FoodDiaryItem)
|
|
275
|
-
const item = event.body;
|
|
276
|
-
console.log(`Food: ${item.food_name}, Calories: ${item.calories}`);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
res.json({ status: "ok" });
|
|
280
|
-
} catch (error) {
|
|
281
|
-
console.error("Webhook processing error:", error);
|
|
282
|
-
res.status(400).json({ error: "Invalid webhook payload" });
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
app.listen(3000);
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### Manual Deserialization
|
|
290
|
-
|
|
291
|
-
You can also deserialize webhook payloads manually:
|
|
292
|
-
|
|
293
|
-
```typescript
|
|
294
|
-
import { WebhookPublishingPayload, WebhookPublishingPayloadHelper } from "@railtownai/railengine-ingest";
|
|
295
|
-
import { z } from "zod";
|
|
296
|
-
|
|
297
|
-
const FoodDiaryItemSchema = z.object({
|
|
298
|
-
food_name: z.string(),
|
|
299
|
-
calories: z.number()
|
|
300
|
-
});
|
|
301
|
-
|
|
302
|
-
// Parse raw payload
|
|
303
|
-
const payload = req.body[0] as WebhookPublishingPayload; // First event
|
|
304
|
-
|
|
305
|
-
// Deserialize body manually
|
|
306
|
-
const item = WebhookPublishingPayloadHelper.getBodyAs(payload, FoodDiaryItemSchema);
|
|
307
|
-
console.log(`Food: ${item.food_name}, Calories: ${item.calories}`);
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
## API Reference
|
|
311
|
-
|
|
312
|
-
### RailEngineIngest
|
|
313
|
-
|
|
314
|
-
Main client class for ingesting data to Rail Engine.
|
|
315
|
-
|
|
316
|
-
#### Constructor
|
|
317
|
-
|
|
318
|
-
```typescript
|
|
319
|
-
new RailEngineIngest(options?: RailEngineIngestOptions<T>)
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
**Options:**
|
|
323
|
-
|
|
324
|
-
- `engineToken?: string` - Base64-encoded ENGINE_TOKEN. If not provided, reads from `ENGINE_TOKEN` environment variable.
|
|
325
|
-
- `schema?: z.ZodSchema<T>` - Optional Zod schema for validating ingested data and deserializing webhook bodies.
|
|
326
|
-
- `timeout?: number` - Request timeout in milliseconds. Defaults to 30000 (30 seconds).
|
|
327
|
-
|
|
328
|
-
**Example:**
|
|
329
|
-
|
|
330
|
-
```typescript
|
|
331
|
-
const client = new RailEngineIngest({
|
|
332
|
-
engineToken: token,
|
|
333
|
-
schema: MySchema,
|
|
334
|
-
timeout: 60000
|
|
335
|
-
});
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
#### Properties
|
|
339
|
-
|
|
340
|
-
- `ingestionUrl: string` - Logic App ingestion URL from decoded ENGINE_TOKEN
|
|
341
|
-
- `ingestionApiToken: string` - Authentication token for x-rail-auth header
|
|
342
|
-
- `engineId: string` - Engine identifier from decoded ENGINE_TOKEN
|
|
343
|
-
|
|
344
|
-
#### Methods
|
|
345
|
-
|
|
346
|
-
##### upsert(data)
|
|
347
|
-
|
|
348
|
-
Send data to Rail Engine ingestion endpoint.
|
|
349
|
-
|
|
350
|
-
```typescript
|
|
351
|
-
await client.upsert(data: T | string | Record<string, unknown>): Promise<Response>
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**Parameters:**
|
|
355
|
-
|
|
356
|
-
- `data` - Data to ingest. Can be an object, JSON string, or Zod-validated object (if schema provided).
|
|
357
|
-
|
|
358
|
-
**Returns:**
|
|
359
|
-
|
|
360
|
-
- `Promise<Response>` - HTTP response from the ingestion endpoint
|
|
361
|
-
|
|
362
|
-
**Throws:**
|
|
363
|
-
|
|
364
|
-
- `RailtownError` - If the request fails
|
|
365
|
-
- `z.ZodError` - If schema validation fails
|
|
366
|
-
|
|
367
|
-
**Example:**
|
|
368
|
-
|
|
369
|
-
```typescript
|
|
370
|
-
await client.upsert({ name: "test", value: 123 });
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
##### getWebhookHandler()
|
|
374
|
-
|
|
375
|
-
Get a webhook handler configured with this client's schema.
|
|
376
|
-
|
|
377
|
-
```typescript
|
|
378
|
-
client.getWebhookHandler(): WebhookHandler<T>
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
**Returns:**
|
|
382
|
-
|
|
383
|
-
- `WebhookHandler<T>` - Webhook handler instance configured with the client's schema (if provided)
|
|
384
|
-
|
|
385
|
-
**Example:**
|
|
386
|
-
|
|
387
|
-
```typescript
|
|
388
|
-
const handler = client.getWebhookHandler();
|
|
389
|
-
const events = handler.parse(webhookPayload);
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
### WebhookHandler
|
|
393
|
-
|
|
394
|
-
Generic handler class for parsing webhook events.
|
|
395
|
-
|
|
396
|
-
#### Constructor
|
|
397
|
-
|
|
398
|
-
```typescript
|
|
399
|
-
new WebhookHandler<T>(options?: { schema?: z.ZodSchema<T> })
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
**Options:**
|
|
403
|
-
|
|
404
|
-
- `schema?: z.ZodSchema<T>` - Optional Zod schema for deserializing webhook bodies.
|
|
405
|
-
|
|
406
|
-
#### Methods
|
|
407
|
-
|
|
408
|
-
##### parse(payload)
|
|
409
|
-
|
|
410
|
-
Parse webhook payload into list of WebhookEvent objects.
|
|
411
|
-
|
|
412
|
-
```typescript
|
|
413
|
-
handler.parse(payload: WebhookPublishingPayload[] | WebhookPublishingPayload): WebhookEvent<T>[]
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
**Parameters:**
|
|
417
|
-
|
|
418
|
-
- `payload` - Either a list of webhook payload objects or a single object
|
|
419
|
-
|
|
420
|
-
**Returns:**
|
|
421
|
-
|
|
422
|
-
- `WebhookEvent<T>[]` - List of WebhookEvent objects
|
|
423
|
-
|
|
424
|
-
**Throws:**
|
|
425
|
-
|
|
426
|
-
- `Error` - If no schema is provided
|
|
427
|
-
- `z.ZodError` - If body JSON doesn't match the schema
|
|
428
|
-
|
|
429
|
-
### WebhookEvent
|
|
430
|
-
|
|
431
|
-
Generic wrapper class that combines webhook payload metadata with deserialized body.
|
|
432
|
-
|
|
433
|
-
#### Properties
|
|
434
|
-
|
|
435
|
-
- `eventId: string` - Event identifier from payload
|
|
436
|
-
- `engineId: string` - Engine identifier from payload
|
|
437
|
-
- `projectId: string` - Project identifier from payload
|
|
438
|
-
- `customerKey?: string` - Customer key from payload (if present)
|
|
439
|
-
- `body: T` - Deserialized body as validated object
|
|
440
|
-
|
|
441
|
-
### WebhookPublishingPayload
|
|
442
|
-
|
|
443
|
-
TypeScript interface representing the webhook payload structure.
|
|
444
|
-
|
|
445
|
-
```typescript
|
|
446
|
-
interface WebhookPublishingPayload {
|
|
447
|
-
EventId: string;
|
|
448
|
-
EngineId: string;
|
|
449
|
-
ProjectId: string;
|
|
450
|
-
CustomerKey?: string;
|
|
451
|
-
Body: string; // JSON stringified document
|
|
452
|
-
}
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
### WebhookPublishingPayloadHelper
|
|
456
|
-
|
|
457
|
-
Helper class for working with WebhookPublishingPayload.
|
|
458
|
-
|
|
459
|
-
#### Methods
|
|
460
|
-
|
|
461
|
-
##### getBodyAs(payload, schema)
|
|
462
|
-
|
|
463
|
-
Deserializes the Body field (JSON string) into a Zod-validated object.
|
|
464
|
-
|
|
465
|
-
```typescript
|
|
466
|
-
WebhookPublishingPayloadHelper.getBodyAs<T>(
|
|
467
|
-
payload: WebhookPublishingPayload,
|
|
468
|
-
schema: z.ZodSchema<T>
|
|
469
|
-
): T
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
**Parameters:**
|
|
473
|
-
|
|
474
|
-
- `payload` - The webhook payload
|
|
475
|
-
- `schema` - Zod schema to validate the Body against
|
|
476
|
-
|
|
477
|
-
**Returns:**
|
|
478
|
-
|
|
479
|
-
- `T` - Validated object
|
|
480
|
-
|
|
481
|
-
**Throws:**
|
|
482
|
-
|
|
483
|
-
- `z.ZodError` - If the JSON doesn't match the schema
|
|
484
|
-
|
|
485
|
-
## Error Handling
|
|
486
|
-
|
|
487
|
-
The SDK uses custom exception classes for different error scenarios:
|
|
488
|
-
|
|
489
|
-
- `RailtownError` - Base error class
|
|
490
|
-
- `RailtownUnauthorizedError` - Authentication failed (401)
|
|
491
|
-
- `RailtownNotFoundError` - Resource not found (404)
|
|
492
|
-
- `RailtownBadRequestError` - Bad request (400)
|
|
493
|
-
- `RailtownConflictError` - Conflict (409)
|
|
494
|
-
- `RailtownServerError` - Server error (500+)
|
|
495
|
-
|
|
496
|
-
**Example:**
|
|
497
|
-
|
|
498
|
-
```typescript
|
|
499
|
-
import { RailEngineIngest, RailtownUnauthorizedError, RailtownBadRequestError } from "@railtownai/railengine-ingest";
|
|
500
|
-
|
|
501
|
-
try {
|
|
502
|
-
await client.upsert(data);
|
|
503
|
-
} catch (error) {
|
|
504
|
-
if (error instanceof RailtownUnauthorizedError) {
|
|
505
|
-
console.error("Authentication failed:", error.message);
|
|
506
|
-
} else if (error instanceof RailtownBadRequestError) {
|
|
507
|
-
console.error("Invalid request:", error.message);
|
|
508
|
-
} else {
|
|
509
|
-
console.error("Unexpected error:", error);
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
```
|
|
513
|
-
|
|
514
|
-
## License
|
|
515
|
-
|
|
516
|
-
See [LICENSE](../../LICENSE) file for details.
|
|
1
|
+
# @railtownai/railengine-ingest
|
|
2
|
+
|
|
3
|
+
JavaScript/TypeScript SDK for [Railtown AI Rail Engine](https://railengine.ai/) - Ingestion package. This package provides a simple interface for publishing data to Rail Engine and handling webhook events.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @railtownai/railengine-ingest
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Requirements
|
|
12
|
+
|
|
13
|
+
- Node.js 20+
|
|
14
|
+
- TypeScript 5.0+ (optional, but recommended)
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
### Basic Usage
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { RailEngineIngest } from "@railtownai/railengine-ingest";
|
|
22
|
+
import { v4 as uuidv4 } from "uuid";
|
|
23
|
+
|
|
24
|
+
// Initialize client
|
|
25
|
+
// ENGINE_TOKEN is read from environment variable automatically
|
|
26
|
+
const client = new RailEngineIngest();
|
|
27
|
+
|
|
28
|
+
const blogPost = {
|
|
29
|
+
id: uuidv4(),
|
|
30
|
+
title: "My blog post",
|
|
31
|
+
content: "This is my blog post",
|
|
32
|
+
date: new Date().toISOString()
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// Send data
|
|
36
|
+
await client.upsert(blogPost);
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## License
|
|
40
|
+
|
|
41
|
+
MIT.
|
package/dist/cjs/index.js
CHANGED
|
@@ -361,6 +361,13 @@ class RailEngineIngest {
|
|
|
361
361
|
* @param data - Data to ingest. Can be an object, JSON string, or Zod-validated object (if schema provided).
|
|
362
362
|
* @param charset - Character encoding for the request. Defaults to "utf-8".
|
|
363
363
|
* @returns HTTP response from the ingestion endpoint
|
|
364
|
+
*
|
|
365
|
+
* @example
|
|
366
|
+
* ```typescript
|
|
367
|
+
* const client = new RailEngineIngest();
|
|
368
|
+
* const response = await client.upsert({ name: "test", value: 123 });
|
|
369
|
+
* console.log(response);
|
|
370
|
+
* ```
|
|
364
371
|
* @throws {RailtownError} If the request fails
|
|
365
372
|
* @throws {z.ZodError} If schema validation fails
|
|
366
373
|
*/
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../shared/dist/esm/index.js","../../src/auth.ts","../../src/models.ts","../../src/webhook.ts","../../src/client.ts"],"sourcesContent":["/**\n * Base error class for all Railtown API errors.\n */\nclass RailtownError extends Error {\n constructor(message, statusCode, responseBody) {\n super(message);\n this.statusCode = statusCode;\n this.responseBody = responseBody;\n this.name = \"RailtownError\";\n Object.setPrototypeOf(this, RailtownError.prototype);\n }\n}\n/**\n * Error thrown when authentication fails (401).\n */\nclass RailtownUnauthorizedError extends RailtownError {\n constructor(message = \"Authentication failed\", responseBody) {\n super(message, 401, responseBody);\n this.name = \"RailtownUnauthorizedError\";\n Object.setPrototypeOf(this, RailtownUnauthorizedError.prototype);\n }\n}\n/**\n * Error thrown when a resource is not found (404).\n */\nclass RailtownNotFoundError extends RailtownError {\n constructor(message = \"Resource not found\", responseBody) {\n super(message, 404, responseBody);\n this.name = \"RailtownNotFoundError\";\n Object.setPrototypeOf(this, RailtownNotFoundError.prototype);\n }\n}\n/**\n * Error thrown when a bad request is made (400).\n */\nclass RailtownBadRequestError extends RailtownError {\n constructor(message = \"Bad request\", responseBody) {\n super(message, 400, responseBody);\n this.name = \"RailtownBadRequestError\";\n Object.setPrototypeOf(this, RailtownBadRequestError.prototype);\n }\n}\n/**\n * Error thrown when a conflict occurs (409).\n */\nclass RailtownConflictError extends RailtownError {\n constructor(message = \"Conflict\", responseBody) {\n super(message, 409, responseBody);\n this.name = \"RailtownConflictError\";\n Object.setPrototypeOf(this, RailtownConflictError.prototype);\n }\n}\n/**\n * Error thrown when a server error occurs (500+).\n */\nclass RailtownServerError extends RailtownError {\n constructor(message = \"Server error\", statusCode = 500, responseBody) {\n super(message, statusCode, responseBody);\n this.name = \"RailtownServerError\";\n Object.setPrototypeOf(this, RailtownServerError.prototype);\n }\n}\n/**\n * Maps HTTP status codes to appropriate Railtown error classes.\n */\nfunction createRailtownError(statusCode, message, responseBody) {\n switch (statusCode) {\n case 401:\n return new RailtownUnauthorizedError(message, responseBody);\n case 404:\n return new RailtownNotFoundError(message, responseBody);\n case 400:\n return new RailtownBadRequestError(message, responseBody);\n case 409:\n return new RailtownConflictError(message, responseBody);\n default:\n if (statusCode >= 500) {\n return new RailtownServerError(message, statusCode, responseBody);\n }\n return new RailtownError(message || `HTTP ${statusCode}`, statusCode, responseBody);\n }\n}\n\n/**\n * Normalizes a URL by ensuring it has a protocol and proper path.\n *\n * @param url - The URL to normalize\n * @param defaultPath - Optional default path to append if no path is present\n * @returns Normalized URL string\n */\nfunction normalizeUrl(url, defaultPath) {\n let normalized = url.trim();\n // Add protocol if missing\n if (!normalized.match(/^https?:\\/\\//)) {\n normalized = `https://${normalized}`;\n }\n // Remove trailing slash\n normalized = normalized.replace(/\\/$/, \"\");\n // Append default path if provided and no path exists\n if (defaultPath && !normalized.match(/\\/[^/]/)) {\n const path = defaultPath.startsWith(\"/\") ? defaultPath : `/${defaultPath}`;\n normalized = `${normalized}${path}`;\n }\n return normalized;\n}\n/**\n * Strips the /api suffix from a URL if present.\n *\n * @param url - The URL to process\n * @returns URL without /api suffix\n */\nfunction stripApiSuffix(url) {\n return url.replace(/\\/api\\/?$/, \"\");\n}\n/**\n * Safely parses a JSON string with error handling.\n *\n * @param jsonString - JSON string to parse\n * @param errorMessage - Optional custom error message prefix\n * @returns Parsed JSON object\n * @throws {Error} If JSON parsing fails\n */\nfunction safeJsonParse(jsonString, errorMessage) {\n try {\n return JSON.parse(jsonString);\n }\n catch (error) {\n const message = errorMessage || \"Failed to parse JSON\";\n throw new Error(`${message}: ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n\n/**\n * Makes an HTTP request with timeout support.\n *\n * @param url - Request URL\n * @param options - Request options\n * @returns Response object\n * @throws {Error} If request fails or times out\n */\nasync function makeHttpRequest(url, options = {}) {\n const { timeout = 30000, signal, ...fetchOptions } = options;\n const controller = new AbortController();\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null;\n try {\n const response = await fetch(url, {\n ...fetchOptions,\n signal: signal || controller.signal\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n return response;\n }\n catch (error) {\n if (timeoutId)\n clearTimeout(timeoutId);\n throw error;\n }\n}\n/**\n * Handles HTTP response errors by creating appropriate RailtownError.\n *\n * @param response - HTTP response object\n * @param defaultMessage - Default error message\n * @returns Never (always throws)\n * @throws {RailtownError} Appropriate error based on status code\n */\nasync function handleHttpError(response, defaultMessage) {\n const responseBody = await getResponseBody(response);\n throw createRailtownError(response.status, defaultMessage, responseBody);\n}\n/**\n * Safely extracts response body as text, returning empty string on error.\n *\n * @param response - HTTP response object\n * @returns Response body as string (empty string if extraction fails)\n */\nasync function getResponseBody(response) {\n return await response.text().catch(() => \"\");\n}\n/**\n * Handles request errors (timeout, network, etc.) with consistent error messages.\n *\n * @param error - Caught error\n * @param timeout - Request timeout in milliseconds\n * @param context - Context description for error message\n * @returns Never (always throws)\n * @throws {RailtownError} If error is a RailtownError\n * @throws {Error} For timeout or other errors\n */\nfunction handleRequestError(error, timeout, context) {\n if (error instanceof RailtownError) {\n throw error;\n }\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(`Request timeout after ${timeout}ms`);\n }\n throw new Error(`${context}: ${error instanceof Error ? error.message : String(error)}`);\n}\n\nexport { RailtownBadRequestError, RailtownConflictError, RailtownError, RailtownNotFoundError, RailtownServerError, RailtownUnauthorizedError, createRailtownError, getResponseBody, handleHttpError, handleRequestError, makeHttpRequest, normalizeUrl, safeJsonParse, stripApiSuffix };\n//# sourceMappingURL=index.js.map\n",null,null,null,null],"names":["z"],"mappings":";;;;AAAA;AACA;AACA;AACA,MAAM,aAAa,SAAS,KAAK,CAAC;AAClC,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE;AACnD,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,QAAQ,IAAI,CAAC,IAAI,GAAG,eAAe;AACnC,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC;AAC5D,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,yBAAyB,SAAS,aAAa,CAAC;AACtD,IAAI,WAAW,CAAC,OAAO,GAAG,uBAAuB,EAAE,YAAY,EAAE;AACjE,QAAQ,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,2BAA2B;AAC/C,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,yBAAyB,CAAC,SAAS,CAAC;AACxE,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,qBAAqB,SAAS,aAAa,CAAC;AAClD,IAAI,WAAW,CAAC,OAAO,GAAG,oBAAoB,EAAE,YAAY,EAAE;AAC9D,QAAQ,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,uBAAuB;AAC3C,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC;AACpE,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,uBAAuB,SAAS,aAAa,CAAC;AACpD,IAAI,WAAW,CAAC,OAAO,GAAG,aAAa,EAAE,YAAY,EAAE;AACvD,QAAQ,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,yBAAyB;AAC7C,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC;AACtE,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,qBAAqB,SAAS,aAAa,CAAC;AAClD,IAAI,WAAW,CAAC,OAAO,GAAG,UAAU,EAAE,YAAY,EAAE;AACpD,QAAQ,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,uBAAuB;AAC3C,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC;AACpE,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,mBAAmB,SAAS,aAAa,CAAC;AAChD,IAAI,WAAW,CAAC,OAAO,GAAG,cAAc,EAAE,UAAU,GAAG,GAAG,EAAE,YAAY,EAAE;AAC1E,QAAQ,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;AAChD,QAAQ,IAAI,CAAC,IAAI,GAAG,qBAAqB;AACzC,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE;AAChE,IAAI,QAAQ,UAAU;AACtB,QAAQ,KAAK,GAAG;AAChB,YAAY,OAAO,IAAI,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC;AACvE,QAAQ,KAAK,GAAG;AAChB,YAAY,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC;AACnE,QAAQ,KAAK,GAAG;AAChB,YAAY,OAAO,IAAI,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC;AACrE,QAAQ,KAAK,GAAG;AAChB,YAAY,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC;AACnE,QAAQ;AACR,YAAY,IAAI,UAAU,IAAI,GAAG,EAAE;AACnC,gBAAgB,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;AACjF,YAAY;AACZ,YAAY,OAAO,IAAI,aAAa,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC;AAC/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE;AACxC,IAAI,IAAI,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE;AAC/B;AACA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AAC3C,QAAQ,UAAU,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC5C,IAAI;AACJ;AACA,IAAI,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAM9C,IAAI,OAAO,UAAU;AACrB;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE;AACjD,IAAI,IAAI;AACR,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACrC,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,OAAO,GAAG,YAAY,IAAI,sBAAsB;AAC9D,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChG,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE;AAClD,IAAI,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO;AAChE,IAAI,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAC5C,IAAI,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,GAAG,IAAI;AACxF,IAAI,IAAI;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;AAC1C,YAAY,GAAG,YAAY;AAC3B,YAAY,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC;AACzC,SAAS,CAAC;AACV,QAAQ,IAAI,SAAS;AACrB,YAAY,YAAY,CAAC,SAAS,CAAC;AACnC,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,SAAS;AACrB,YAAY,YAAY,CAAC,SAAS,CAAC;AACnC,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE;AACzD,IAAI,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;AACxD,IAAI,MAAM,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,CAAC,QAAQ,EAAE;AACzC,IAAI,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACrD,IAAI,IAAI,KAAK,YAAY,aAAa,EAAE;AACxC,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ,IAAI,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/D,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7D,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5F;;ACxLA;;;;;;AAMG;AACG,SAAU,iBAAiB,CAAC,KAAa,EAAA;AAC7C,IAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACpE,QAAA,MAAM,IAAI,uBAAuB,CAC/B,sGAAsG,CACvG;IACH;AAEA,IAAA,IAAI,OAAe;AACnB,IAAA,IAAI;;AAEF,QAAA,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC1D;IAAE,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,uBAAuB,CAC/B,CAAA,kCAAA,EAAqC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAE,CAC9F;IACH;AAEA,IAAA,IAAI,MAAe;AACnB,IAAA,IAAI;AACF,QAAA,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,0CAA0C,CAAC;IAC7E;IAAE,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,uBAAuB,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3F;AAEA,IAAA,OAAO,mBAAmB,CAAC,MAAM,CAAC;AACpC;AAEA;;;;;;AAMG;AACG,SAAU,mBAAmB,CAAC,IAAa,EAAA;IAC/C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACrC,QAAA,MAAM,IAAI,uBAAuB,CAC/B,oGAAoG,CACrG;IACH;IAEA,MAAM,GAAG,GAAG,IAA+B;IAE3C,MAAM,aAAa,GAAa,EAAE;AAClC,IAAA,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE;AAC7D,QAAA,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;IACpC;AACA,IAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,EAAE;AACvE,QAAA,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACzC;AACA,IAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrD,QAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;IAChC;AAEA,IAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,QAAA,MAAM,IAAI,uBAAuB,CAAC,CAAA,yCAAA,EAA4C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;IAC3G;IAEA,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,YAAsB;QACxC,iBAAiB,EAAE,GAAG,CAAC,iBAA2B;QAClD,QAAQ,EAAE,GAAG,CAAC;KACf;AACH;;ACjEA;;AAEG;MACU,8BAA8B,CAAA;AACzC;;;;;;;AAOG;AACH,IAAA,OAAO,SAAS,CAAI,OAAiC,EAAE,MAAsB,EAAA;AAC3E,QAAA,IAAI,QAAiB;AACrB,QAAA,IAAI;YACF,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,8BAA8B,CAAC;QACxE;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,IAAIA,KAAC,CAAC,QAAQ,CAAC;AACnB,gBAAA;AACE,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,OAAO,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK;AAC/D;AACF,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC/B;AACD;;AC5CD;;AAEG;MACU,YAAY,CAAA;IAYvB,WAAA,CAAY,OAAe,EAAE,QAAgB,EAAE,SAAiB,EAAE,IAAO,EAAE,WAAoB,EAAA;AAC7F,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;AACD;AAED;;AAEG;MACU,cAAc,CAAA;AAGzB;;;;;;AAMG;AACH,IAAA,WAAA,CAAY,OAAqC,EAAA;AAC/C,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM;IAC/B;AAEA;;;;;;;AAOG;AACH,IAAA,KAAK,CAAC,OAA8D,EAAA;;AAElE,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC;AAEjE,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CACb,8HAA8H,CAC/H;QACH;QAEA,MAAM,MAAM,GAAsB,EAAE;AACpC,QAAA,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE;;AAEpC,YAAA,MAAM,IAAI,GAAG,8BAA8B,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;;YAG7E,MAAM,KAAK,GAAG,IAAI,YAAY,CAC5B,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,SAAS,EACnB,IAAI,EACJ,SAAS,CAAC,WAAW,CACtB;AACD,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpB;AAEA,QAAA,OAAO,MAAM;IACf;AACD;;ACxDD;;AAEG;MACU,gBAAgB,CAAA;AAY3B;;;;;AAKG;AACH,IAAA,WAAA,CAAY,UAAsC,EAAE,EAAA;;AAElD,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,SAAS;QAEhF,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,IAAI,uBAAuB,CAC/B,sGAAsG,CACvG;QACH;;AAGA,QAAA,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC;;QAGhD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC;AACxD,QAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB;AACpD,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK;IACzC;AAEA;;;;;;;;AAQG;AACH,IAAA,MAAM,MAAM,CAAC,IAA0C,EAAE,UAAkB,OAAO,EAAA;AAChF,QAAA,IAAI,OAAgB;;AAGpB,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,8BAA8B,CAAC;QAC/D;aAAO;YACL,OAAO,GAAG,IAAI;QAChB;;AAGA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI;gBACF,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACtC;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,KAAK,YAAYA,KAAC,CAAC,QAAQ,EAAE;AAC/B,oBAAA,MAAM,KAAK;gBACb;gBACA,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAE,CAAC;YACxG;QACF;;QAGA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;;AAGxC,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE;AACxD,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE;oBACP,cAAc,EAAE,CAAA,0BAAA,EAA6B,OAAO,CAAA,CAAE;oBACtD,aAAa,EAAE,IAAI,CAAC;AACrB,iBAAA;AACD,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI,CAAC;AACf,aAAA,CAAC;;AAGF,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,eAAe,CAAC,QAAQ,EAAE,CAAA,kBAAA,EAAqB,QAAQ,CAAC,UAAU,CAAA,CAAE,CAAC;YAC7E;AAEA,YAAA,OAAO,QAAQ;QACjB;QAAE,OAAO,KAAK,EAAE;YACd,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,2CAA2C,CAAC;QAC7F;IACF;AAEA;;;;AAIG;IACH,iBAAiB,GAAA;QACf,OAAO,IAAI,cAAc,CAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACvD;AACD;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../shared/dist/esm/index.js","../../src/auth.ts","../../src/models.ts","../../src/webhook.ts","../../src/client.ts"],"sourcesContent":["/**\n * Base error class for all Railtown API errors.\n */\nclass RailtownError extends Error {\n constructor(message, statusCode, responseBody) {\n super(message);\n this.statusCode = statusCode;\n this.responseBody = responseBody;\n this.name = \"RailtownError\";\n Object.setPrototypeOf(this, RailtownError.prototype);\n }\n}\n/**\n * Error thrown when authentication fails (401).\n */\nclass RailtownUnauthorizedError extends RailtownError {\n constructor(message = \"Authentication failed\", responseBody) {\n super(message, 401, responseBody);\n this.name = \"RailtownUnauthorizedError\";\n Object.setPrototypeOf(this, RailtownUnauthorizedError.prototype);\n }\n}\n/**\n * Error thrown when a resource is not found (404).\n */\nclass RailtownNotFoundError extends RailtownError {\n constructor(message = \"Resource not found\", responseBody) {\n super(message, 404, responseBody);\n this.name = \"RailtownNotFoundError\";\n Object.setPrototypeOf(this, RailtownNotFoundError.prototype);\n }\n}\n/**\n * Error thrown when a bad request is made (400).\n */\nclass RailtownBadRequestError extends RailtownError {\n constructor(message = \"Bad request\", responseBody) {\n super(message, 400, responseBody);\n this.name = \"RailtownBadRequestError\";\n Object.setPrototypeOf(this, RailtownBadRequestError.prototype);\n }\n}\n/**\n * Error thrown when a conflict occurs (409).\n */\nclass RailtownConflictError extends RailtownError {\n constructor(message = \"Conflict\", responseBody) {\n super(message, 409, responseBody);\n this.name = \"RailtownConflictError\";\n Object.setPrototypeOf(this, RailtownConflictError.prototype);\n }\n}\n/**\n * Error thrown when a server error occurs (500+).\n */\nclass RailtownServerError extends RailtownError {\n constructor(message = \"Server error\", statusCode = 500, responseBody) {\n super(message, statusCode, responseBody);\n this.name = \"RailtownServerError\";\n Object.setPrototypeOf(this, RailtownServerError.prototype);\n }\n}\n/**\n * Maps HTTP status codes to appropriate Railtown error classes.\n */\nfunction createRailtownError(statusCode, message, responseBody) {\n switch (statusCode) {\n case 401:\n return new RailtownUnauthorizedError(message, responseBody);\n case 404:\n return new RailtownNotFoundError(message, responseBody);\n case 400:\n return new RailtownBadRequestError(message, responseBody);\n case 409:\n return new RailtownConflictError(message, responseBody);\n default:\n if (statusCode >= 500) {\n return new RailtownServerError(message, statusCode, responseBody);\n }\n return new RailtownError(message || `HTTP ${statusCode}`, statusCode, responseBody);\n }\n}\n\n/**\n * Normalizes a URL by ensuring it has a protocol and proper path.\n *\n * @param url - The URL to normalize\n * @param defaultPath - Optional default path to append if no path is present\n * @returns Normalized URL string\n */\nfunction normalizeUrl(url, defaultPath) {\n let normalized = url.trim();\n // Add protocol if missing\n if (!normalized.match(/^https?:\\/\\//)) {\n normalized = `https://${normalized}`;\n }\n // Remove trailing slash\n normalized = normalized.replace(/\\/$/, \"\");\n // Append default path if provided and no path exists\n if (defaultPath && !normalized.match(/\\/[^/]/)) {\n const path = defaultPath.startsWith(\"/\") ? defaultPath : `/${defaultPath}`;\n normalized = `${normalized}${path}`;\n }\n return normalized;\n}\n/**\n * Strips the /api suffix from a URL if present.\n *\n * @param url - The URL to process\n * @returns URL without /api suffix\n */\nfunction stripApiSuffix(url) {\n return url.replace(/\\/api\\/?$/, \"\");\n}\n/**\n * Safely parses a JSON string with error handling.\n *\n * @param jsonString - JSON string to parse\n * @param errorMessage - Optional custom error message prefix\n * @returns Parsed JSON object\n * @throws {Error} If JSON parsing fails\n */\nfunction safeJsonParse(jsonString, errorMessage) {\n try {\n return JSON.parse(jsonString);\n }\n catch (error) {\n const message = errorMessage || \"Failed to parse JSON\";\n throw new Error(`${message}: ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n\n/**\n * Makes an HTTP request with timeout support.\n *\n * @param url - Request URL\n * @param options - Request options\n * @returns Response object\n * @throws {Error} If request fails or times out\n */\nasync function makeHttpRequest(url, options = {}) {\n const { timeout = 30000, signal, ...fetchOptions } = options;\n const controller = new AbortController();\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null;\n try {\n const response = await fetch(url, {\n ...fetchOptions,\n signal: signal || controller.signal\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n return response;\n }\n catch (error) {\n if (timeoutId)\n clearTimeout(timeoutId);\n throw error;\n }\n}\n/**\n * Handles HTTP response errors by creating appropriate RailtownError.\n *\n * @param response - HTTP response object\n * @param defaultMessage - Default error message\n * @returns Never (always throws)\n * @throws {RailtownError} Appropriate error based on status code\n */\nasync function handleHttpError(response, defaultMessage) {\n const responseBody = await getResponseBody(response);\n throw createRailtownError(response.status, defaultMessage, responseBody);\n}\n/**\n * Safely extracts response body as text, returning empty string on error.\n *\n * @param response - HTTP response object\n * @returns Response body as string (empty string if extraction fails)\n */\nasync function getResponseBody(response) {\n return await response.text().catch(() => \"\");\n}\n/**\n * Handles request errors (timeout, network, etc.) with consistent error messages.\n *\n * @param error - Caught error\n * @param timeout - Request timeout in milliseconds\n * @param context - Context description for error message\n * @returns Never (always throws)\n * @throws {RailtownError} If error is a RailtownError\n * @throws {Error} For timeout or other errors\n */\nfunction handleRequestError(error, timeout, context) {\n if (error instanceof RailtownError) {\n throw error;\n }\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(`Request timeout after ${timeout}ms`);\n }\n throw new Error(`${context}: ${error instanceof Error ? error.message : String(error)}`);\n}\n\nexport { RailtownBadRequestError, RailtownConflictError, RailtownError, RailtownNotFoundError, RailtownServerError, RailtownUnauthorizedError, createRailtownError, getResponseBody, handleHttpError, handleRequestError, makeHttpRequest, normalizeUrl, safeJsonParse, stripApiSuffix };\n//# sourceMappingURL=index.js.map\n",null,null,null,null],"names":["z"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -359,6 +359,13 @@ class RailEngineIngest {
|
|
|
359
359
|
* @param data - Data to ingest. Can be an object, JSON string, or Zod-validated object (if schema provided).
|
|
360
360
|
* @param charset - Character encoding for the request. Defaults to "utf-8".
|
|
361
361
|
* @returns HTTP response from the ingestion endpoint
|
|
362
|
+
*
|
|
363
|
+
* @example
|
|
364
|
+
* ```typescript
|
|
365
|
+
* const client = new RailEngineIngest();
|
|
366
|
+
* const response = await client.upsert({ name: "test", value: 123 });
|
|
367
|
+
* console.log(response);
|
|
368
|
+
* ```
|
|
362
369
|
* @throws {RailtownError} If the request fails
|
|
363
370
|
* @throws {z.ZodError} If schema validation fails
|
|
364
371
|
*/
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../shared/dist/esm/index.js","../../src/auth.ts","../../src/models.ts","../../src/webhook.ts","../../src/client.ts"],"sourcesContent":["/**\n * Base error class for all Railtown API errors.\n */\nclass RailtownError extends Error {\n constructor(message, statusCode, responseBody) {\n super(message);\n this.statusCode = statusCode;\n this.responseBody = responseBody;\n this.name = \"RailtownError\";\n Object.setPrototypeOf(this, RailtownError.prototype);\n }\n}\n/**\n * Error thrown when authentication fails (401).\n */\nclass RailtownUnauthorizedError extends RailtownError {\n constructor(message = \"Authentication failed\", responseBody) {\n super(message, 401, responseBody);\n this.name = \"RailtownUnauthorizedError\";\n Object.setPrototypeOf(this, RailtownUnauthorizedError.prototype);\n }\n}\n/**\n * Error thrown when a resource is not found (404).\n */\nclass RailtownNotFoundError extends RailtownError {\n constructor(message = \"Resource not found\", responseBody) {\n super(message, 404, responseBody);\n this.name = \"RailtownNotFoundError\";\n Object.setPrototypeOf(this, RailtownNotFoundError.prototype);\n }\n}\n/**\n * Error thrown when a bad request is made (400).\n */\nclass RailtownBadRequestError extends RailtownError {\n constructor(message = \"Bad request\", responseBody) {\n super(message, 400, responseBody);\n this.name = \"RailtownBadRequestError\";\n Object.setPrototypeOf(this, RailtownBadRequestError.prototype);\n }\n}\n/**\n * Error thrown when a conflict occurs (409).\n */\nclass RailtownConflictError extends RailtownError {\n constructor(message = \"Conflict\", responseBody) {\n super(message, 409, responseBody);\n this.name = \"RailtownConflictError\";\n Object.setPrototypeOf(this, RailtownConflictError.prototype);\n }\n}\n/**\n * Error thrown when a server error occurs (500+).\n */\nclass RailtownServerError extends RailtownError {\n constructor(message = \"Server error\", statusCode = 500, responseBody) {\n super(message, statusCode, responseBody);\n this.name = \"RailtownServerError\";\n Object.setPrototypeOf(this, RailtownServerError.prototype);\n }\n}\n/**\n * Maps HTTP status codes to appropriate Railtown error classes.\n */\nfunction createRailtownError(statusCode, message, responseBody) {\n switch (statusCode) {\n case 401:\n return new RailtownUnauthorizedError(message, responseBody);\n case 404:\n return new RailtownNotFoundError(message, responseBody);\n case 400:\n return new RailtownBadRequestError(message, responseBody);\n case 409:\n return new RailtownConflictError(message, responseBody);\n default:\n if (statusCode >= 500) {\n return new RailtownServerError(message, statusCode, responseBody);\n }\n return new RailtownError(message || `HTTP ${statusCode}`, statusCode, responseBody);\n }\n}\n\n/**\n * Normalizes a URL by ensuring it has a protocol and proper path.\n *\n * @param url - The URL to normalize\n * @param defaultPath - Optional default path to append if no path is present\n * @returns Normalized URL string\n */\nfunction normalizeUrl(url, defaultPath) {\n let normalized = url.trim();\n // Add protocol if missing\n if (!normalized.match(/^https?:\\/\\//)) {\n normalized = `https://${normalized}`;\n }\n // Remove trailing slash\n normalized = normalized.replace(/\\/$/, \"\");\n // Append default path if provided and no path exists\n if (defaultPath && !normalized.match(/\\/[^/]/)) {\n const path = defaultPath.startsWith(\"/\") ? defaultPath : `/${defaultPath}`;\n normalized = `${normalized}${path}`;\n }\n return normalized;\n}\n/**\n * Strips the /api suffix from a URL if present.\n *\n * @param url - The URL to process\n * @returns URL without /api suffix\n */\nfunction stripApiSuffix(url) {\n return url.replace(/\\/api\\/?$/, \"\");\n}\n/**\n * Safely parses a JSON string with error handling.\n *\n * @param jsonString - JSON string to parse\n * @param errorMessage - Optional custom error message prefix\n * @returns Parsed JSON object\n * @throws {Error} If JSON parsing fails\n */\nfunction safeJsonParse(jsonString, errorMessage) {\n try {\n return JSON.parse(jsonString);\n }\n catch (error) {\n const message = errorMessage || \"Failed to parse JSON\";\n throw new Error(`${message}: ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n\n/**\n * Makes an HTTP request with timeout support.\n *\n * @param url - Request URL\n * @param options - Request options\n * @returns Response object\n * @throws {Error} If request fails or times out\n */\nasync function makeHttpRequest(url, options = {}) {\n const { timeout = 30000, signal, ...fetchOptions } = options;\n const controller = new AbortController();\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null;\n try {\n const response = await fetch(url, {\n ...fetchOptions,\n signal: signal || controller.signal\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n return response;\n }\n catch (error) {\n if (timeoutId)\n clearTimeout(timeoutId);\n throw error;\n }\n}\n/**\n * Handles HTTP response errors by creating appropriate RailtownError.\n *\n * @param response - HTTP response object\n * @param defaultMessage - Default error message\n * @returns Never (always throws)\n * @throws {RailtownError} Appropriate error based on status code\n */\nasync function handleHttpError(response, defaultMessage) {\n const responseBody = await getResponseBody(response);\n throw createRailtownError(response.status, defaultMessage, responseBody);\n}\n/**\n * Safely extracts response body as text, returning empty string on error.\n *\n * @param response - HTTP response object\n * @returns Response body as string (empty string if extraction fails)\n */\nasync function getResponseBody(response) {\n return await response.text().catch(() => \"\");\n}\n/**\n * Handles request errors (timeout, network, etc.) with consistent error messages.\n *\n * @param error - Caught error\n * @param timeout - Request timeout in milliseconds\n * @param context - Context description for error message\n * @returns Never (always throws)\n * @throws {RailtownError} If error is a RailtownError\n * @throws {Error} For timeout or other errors\n */\nfunction handleRequestError(error, timeout, context) {\n if (error instanceof RailtownError) {\n throw error;\n }\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(`Request timeout after ${timeout}ms`);\n }\n throw new Error(`${context}: ${error instanceof Error ? error.message : String(error)}`);\n}\n\nexport { RailtownBadRequestError, RailtownConflictError, RailtownError, RailtownNotFoundError, RailtownServerError, RailtownUnauthorizedError, createRailtownError, getResponseBody, handleHttpError, handleRequestError, makeHttpRequest, normalizeUrl, safeJsonParse, stripApiSuffix };\n//# sourceMappingURL=index.js.map\n",null,null,null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../shared/dist/esm/index.js","../../src/auth.ts","../../src/models.ts","../../src/webhook.ts","../../src/client.ts"],"sourcesContent":["/**\n * Base error class for all Railtown API errors.\n */\nclass RailtownError extends Error {\n constructor(message, statusCode, responseBody) {\n super(message);\n this.statusCode = statusCode;\n this.responseBody = responseBody;\n this.name = \"RailtownError\";\n Object.setPrototypeOf(this, RailtownError.prototype);\n }\n}\n/**\n * Error thrown when authentication fails (401).\n */\nclass RailtownUnauthorizedError extends RailtownError {\n constructor(message = \"Authentication failed\", responseBody) {\n super(message, 401, responseBody);\n this.name = \"RailtownUnauthorizedError\";\n Object.setPrototypeOf(this, RailtownUnauthorizedError.prototype);\n }\n}\n/**\n * Error thrown when a resource is not found (404).\n */\nclass RailtownNotFoundError extends RailtownError {\n constructor(message = \"Resource not found\", responseBody) {\n super(message, 404, responseBody);\n this.name = \"RailtownNotFoundError\";\n Object.setPrototypeOf(this, RailtownNotFoundError.prototype);\n }\n}\n/**\n * Error thrown when a bad request is made (400).\n */\nclass RailtownBadRequestError extends RailtownError {\n constructor(message = \"Bad request\", responseBody) {\n super(message, 400, responseBody);\n this.name = \"RailtownBadRequestError\";\n Object.setPrototypeOf(this, RailtownBadRequestError.prototype);\n }\n}\n/**\n * Error thrown when a conflict occurs (409).\n */\nclass RailtownConflictError extends RailtownError {\n constructor(message = \"Conflict\", responseBody) {\n super(message, 409, responseBody);\n this.name = \"RailtownConflictError\";\n Object.setPrototypeOf(this, RailtownConflictError.prototype);\n }\n}\n/**\n * Error thrown when a server error occurs (500+).\n */\nclass RailtownServerError extends RailtownError {\n constructor(message = \"Server error\", statusCode = 500, responseBody) {\n super(message, statusCode, responseBody);\n this.name = \"RailtownServerError\";\n Object.setPrototypeOf(this, RailtownServerError.prototype);\n }\n}\n/**\n * Maps HTTP status codes to appropriate Railtown error classes.\n */\nfunction createRailtownError(statusCode, message, responseBody) {\n switch (statusCode) {\n case 401:\n return new RailtownUnauthorizedError(message, responseBody);\n case 404:\n return new RailtownNotFoundError(message, responseBody);\n case 400:\n return new RailtownBadRequestError(message, responseBody);\n case 409:\n return new RailtownConflictError(message, responseBody);\n default:\n if (statusCode >= 500) {\n return new RailtownServerError(message, statusCode, responseBody);\n }\n return new RailtownError(message || `HTTP ${statusCode}`, statusCode, responseBody);\n }\n}\n\n/**\n * Normalizes a URL by ensuring it has a protocol and proper path.\n *\n * @param url - The URL to normalize\n * @param defaultPath - Optional default path to append if no path is present\n * @returns Normalized URL string\n */\nfunction normalizeUrl(url, defaultPath) {\n let normalized = url.trim();\n // Add protocol if missing\n if (!normalized.match(/^https?:\\/\\//)) {\n normalized = `https://${normalized}`;\n }\n // Remove trailing slash\n normalized = normalized.replace(/\\/$/, \"\");\n // Append default path if provided and no path exists\n if (defaultPath && !normalized.match(/\\/[^/]/)) {\n const path = defaultPath.startsWith(\"/\") ? defaultPath : `/${defaultPath}`;\n normalized = `${normalized}${path}`;\n }\n return normalized;\n}\n/**\n * Strips the /api suffix from a URL if present.\n *\n * @param url - The URL to process\n * @returns URL without /api suffix\n */\nfunction stripApiSuffix(url) {\n return url.replace(/\\/api\\/?$/, \"\");\n}\n/**\n * Safely parses a JSON string with error handling.\n *\n * @param jsonString - JSON string to parse\n * @param errorMessage - Optional custom error message prefix\n * @returns Parsed JSON object\n * @throws {Error} If JSON parsing fails\n */\nfunction safeJsonParse(jsonString, errorMessage) {\n try {\n return JSON.parse(jsonString);\n }\n catch (error) {\n const message = errorMessage || \"Failed to parse JSON\";\n throw new Error(`${message}: ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n\n/**\n * Makes an HTTP request with timeout support.\n *\n * @param url - Request URL\n * @param options - Request options\n * @returns Response object\n * @throws {Error} If request fails or times out\n */\nasync function makeHttpRequest(url, options = {}) {\n const { timeout = 30000, signal, ...fetchOptions } = options;\n const controller = new AbortController();\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null;\n try {\n const response = await fetch(url, {\n ...fetchOptions,\n signal: signal || controller.signal\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n return response;\n }\n catch (error) {\n if (timeoutId)\n clearTimeout(timeoutId);\n throw error;\n }\n}\n/**\n * Handles HTTP response errors by creating appropriate RailtownError.\n *\n * @param response - HTTP response object\n * @param defaultMessage - Default error message\n * @returns Never (always throws)\n * @throws {RailtownError} Appropriate error based on status code\n */\nasync function handleHttpError(response, defaultMessage) {\n const responseBody = await getResponseBody(response);\n throw createRailtownError(response.status, defaultMessage, responseBody);\n}\n/**\n * Safely extracts response body as text, returning empty string on error.\n *\n * @param response - HTTP response object\n * @returns Response body as string (empty string if extraction fails)\n */\nasync function getResponseBody(response) {\n return await response.text().catch(() => \"\");\n}\n/**\n * Handles request errors (timeout, network, etc.) with consistent error messages.\n *\n * @param error - Caught error\n * @param timeout - Request timeout in milliseconds\n * @param context - Context description for error message\n * @returns Never (always throws)\n * @throws {RailtownError} If error is a RailtownError\n * @throws {Error} For timeout or other errors\n */\nfunction handleRequestError(error, timeout, context) {\n if (error instanceof RailtownError) {\n throw error;\n }\n if (error instanceof Error && error.name === \"AbortError\") {\n throw new Error(`Request timeout after ${timeout}ms`);\n }\n throw new Error(`${context}: ${error instanceof Error ? error.message : String(error)}`);\n}\n\nexport { RailtownBadRequestError, RailtownConflictError, RailtownError, RailtownNotFoundError, RailtownServerError, RailtownUnauthorizedError, createRailtownError, getResponseBody, handleHttpError, handleRequestError, makeHttpRequest, normalizeUrl, safeJsonParse, stripApiSuffix };\n//# sourceMappingURL=index.js.map\n",null,null,null,null],"names":[],"mappings":"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"}
|
package/dist/types/client.d.ts
CHANGED
|
@@ -38,6 +38,13 @@ export declare class RailEngineIngest<T = unknown> {
|
|
|
38
38
|
* @param data - Data to ingest. Can be an object, JSON string, or Zod-validated object (if schema provided).
|
|
39
39
|
* @param charset - Character encoding for the request. Defaults to "utf-8".
|
|
40
40
|
* @returns HTTP response from the ingestion endpoint
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const client = new RailEngineIngest();
|
|
45
|
+
* const response = await client.upsert({ name: "test", value: 123 });
|
|
46
|
+
* console.log(response);
|
|
47
|
+
* ```
|
|
41
48
|
* @throws {RailtownError} If the request fails
|
|
42
49
|
* @throws {z.ZodError} If schema validation fails
|
|
43
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,OAAO;IAClD,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,GAAG,OAAO;IACvC,wDAAwD;IACxD,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,kDAAkD;IAClD,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C,kDAAkD;IAClD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAiB;IACzC,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;;;OAKG;gBACS,OAAO,GAAE,uBAAuB,CAAC,CAAC,CAAM;IAqBpD
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,OAAO;IAClD,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC,GAAG,OAAO;IACvC,wDAAwD;IACxD,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,kDAAkD;IAClD,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C,kDAAkD;IAClD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAiB;IACzC,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;;;;OAKG;gBACS,OAAO,GAAE,uBAAuB,CAAC,CAAC,CAAM;IAqBpD;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAE,MAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgDtG;;;;OAIG;IACH,iBAAiB,IAAI,cAAc,CAAC,CAAC,CAAC;CAGvC"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@railtownai/railengine-ingest",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"author": "Railtown AI",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.4",
|
|
6
6
|
"description": "JavaScript/TypeScript SDK for Railtown AI Rail Engine - Ingestion",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/cjs/index.js",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"test": "vitest run --passWithNoTests",
|
|
43
43
|
"format": "prettier --write src",
|
|
44
44
|
"update": "npx npm-check-updates -u",
|
|
45
|
-
"dry-run": "pnpm publish --no-git-checks --access public --registry https://registry.npmjs.org --dry-run"
|
|
45
|
+
"dry-run": "pnpm publish --no-git-checks --access public --registry https://registry.npmjs.org --dry-run",
|
|
46
|
+
"release": "pnpm publish --no-git-checks --access public --registry https://registry.npmjs.org"
|
|
46
47
|
}
|
|
47
48
|
}
|