@hoststack.dev/sdk 0.1.1 → 0.2.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/dist/index.cjs +279 -76
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +89 -47
- package/dist/index.d.ts +89 -47
- package/dist/index.js +279 -76
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -104,7 +104,7 @@ interface DatabaseCredentials {
|
|
|
104
104
|
}
|
|
105
105
|
interface Domain {
|
|
106
106
|
id: number;
|
|
107
|
-
publicId
|
|
107
|
+
publicId: string;
|
|
108
108
|
domain: string;
|
|
109
109
|
status: string;
|
|
110
110
|
verified: boolean;
|
|
@@ -120,7 +120,7 @@ interface UpdateDomainInput {
|
|
|
120
120
|
}
|
|
121
121
|
interface EnvVar {
|
|
122
122
|
id: number;
|
|
123
|
-
publicId
|
|
123
|
+
publicId: string;
|
|
124
124
|
key: string;
|
|
125
125
|
value: string;
|
|
126
126
|
isSecret: boolean;
|
|
@@ -150,6 +150,7 @@ interface User {
|
|
|
150
150
|
}
|
|
151
151
|
interface Team {
|
|
152
152
|
id: number;
|
|
153
|
+
publicId: string;
|
|
153
154
|
name: string;
|
|
154
155
|
slug: string;
|
|
155
156
|
role: string;
|
|
@@ -189,17 +190,17 @@ declare class CronResource {
|
|
|
189
190
|
private client;
|
|
190
191
|
constructor(client: HostStack);
|
|
191
192
|
/** List cron executions for a service. */
|
|
192
|
-
list(teamId:
|
|
193
|
+
list(teamId: IdInput, serviceId: IdInput, options?: {
|
|
193
194
|
limit?: number;
|
|
194
195
|
}): Promise<{
|
|
195
196
|
executions: CronExecution[];
|
|
196
197
|
}>;
|
|
197
198
|
/** Get a single cron execution by ID. */
|
|
198
|
-
get(teamId:
|
|
199
|
+
get(teamId: IdInput, serviceId: IdInput, executionId: IdInput): Promise<{
|
|
199
200
|
execution: CronExecution;
|
|
200
201
|
}>;
|
|
201
202
|
/** Trigger an immediate cron execution. */
|
|
202
|
-
trigger(teamId:
|
|
203
|
+
trigger(teamId: IdInput, serviceId: IdInput): Promise<{
|
|
203
204
|
execution: CronExecution;
|
|
204
205
|
}>;
|
|
205
206
|
}
|
|
@@ -208,56 +209,56 @@ declare class DatabasesResource {
|
|
|
208
209
|
private client;
|
|
209
210
|
constructor(client: HostStack);
|
|
210
211
|
/** List all databases for a project. */
|
|
211
|
-
list(teamId:
|
|
212
|
+
list(teamId: IdInput, projectId: IdInput): Promise<{
|
|
212
213
|
databases: Database[];
|
|
213
214
|
}>;
|
|
214
215
|
/** Get a single database by ID. */
|
|
215
|
-
get(teamId:
|
|
216
|
+
get(teamId: IdInput, databaseId: IdInput): Promise<{
|
|
216
217
|
database: Database;
|
|
217
218
|
}>;
|
|
218
219
|
/** Create a new database. */
|
|
219
|
-
create(teamId:
|
|
220
|
+
create(teamId: IdInput, data: CreateDatabaseInput): Promise<{
|
|
220
221
|
database: Database;
|
|
221
222
|
}>;
|
|
222
223
|
/** Update a database. */
|
|
223
|
-
update(teamId:
|
|
224
|
+
update(teamId: IdInput, databaseId: IdInput, data: UpdateDatabaseInput): Promise<{
|
|
224
225
|
database: Database;
|
|
225
226
|
}>;
|
|
226
227
|
/** Delete a database. */
|
|
227
|
-
delete(teamId:
|
|
228
|
+
delete(teamId: IdInput, databaseId: IdInput): Promise<void>;
|
|
228
229
|
/** Suspend a database. */
|
|
229
|
-
suspend(teamId:
|
|
230
|
+
suspend(teamId: IdInput, databaseId: IdInput): Promise<void>;
|
|
230
231
|
/** Resume a suspended database. */
|
|
231
|
-
resume(teamId:
|
|
232
|
+
resume(teamId: IdInput, databaseId: IdInput): Promise<void>;
|
|
232
233
|
/** Get connection credentials. */
|
|
233
|
-
getCredentials(teamId:
|
|
234
|
+
getCredentials(teamId: IdInput, databaseId: IdInput): Promise<{
|
|
234
235
|
credentials: DatabaseCredentials;
|
|
235
236
|
}>;
|
|
236
237
|
/** Reset the database password. */
|
|
237
|
-
resetPassword(teamId:
|
|
238
|
+
resetPassword(teamId: IdInput, databaseId: IdInput): Promise<void>;
|
|
238
239
|
}
|
|
239
240
|
|
|
240
241
|
declare class DeploysResource {
|
|
241
242
|
private client;
|
|
242
243
|
constructor(client: HostStack);
|
|
243
244
|
/** List deploys for a service. */
|
|
244
|
-
list(teamId:
|
|
245
|
+
list(teamId: IdInput, serviceId: IdInput): Promise<{
|
|
245
246
|
deploys: Deploy[];
|
|
246
247
|
}>;
|
|
247
248
|
/** Get a single deploy by ID. */
|
|
248
|
-
get(teamId:
|
|
249
|
+
get(teamId: IdInput, serviceId: IdInput, deployId: IdInput): Promise<{
|
|
249
250
|
deploy: Deploy;
|
|
250
251
|
}>;
|
|
251
252
|
/** Trigger a new deploy. */
|
|
252
|
-
trigger(teamId:
|
|
253
|
+
trigger(teamId: IdInput, serviceId: IdInput, data?: TriggerDeployInput): Promise<{
|
|
253
254
|
deploy: Deploy;
|
|
254
255
|
}>;
|
|
255
256
|
/** Cancel an in-progress deploy. */
|
|
256
|
-
cancel(teamId:
|
|
257
|
+
cancel(teamId: IdInput, serviceId: IdInput, deployId: IdInput): Promise<void>;
|
|
257
258
|
/** Rollback to a previous deploy. */
|
|
258
|
-
rollback(teamId:
|
|
259
|
+
rollback(teamId: IdInput, serviceId: IdInput, deployId: IdInput): Promise<void>;
|
|
259
260
|
/** Get build logs for a deploy. */
|
|
260
|
-
getLogs(teamId:
|
|
261
|
+
getLogs(teamId: IdInput, serviceId: IdInput, deployId: IdInput): Promise<{
|
|
261
262
|
logs: string;
|
|
262
263
|
}>;
|
|
263
264
|
}
|
|
@@ -266,65 +267,65 @@ declare class DomainsResource {
|
|
|
266
267
|
private client;
|
|
267
268
|
constructor(client: HostStack);
|
|
268
269
|
/** List all domains for the active team. */
|
|
269
|
-
list(teamId:
|
|
270
|
+
list(teamId: IdInput): Promise<{
|
|
270
271
|
domains: Domain[];
|
|
271
272
|
}>;
|
|
272
273
|
/** Add a custom domain. */
|
|
273
|
-
add(teamId:
|
|
274
|
+
add(teamId: IdInput, data: AddDomainInput): Promise<{
|
|
274
275
|
domain: Domain;
|
|
275
276
|
}>;
|
|
276
277
|
/** Update a domain. */
|
|
277
|
-
update(teamId:
|
|
278
|
+
update(teamId: IdInput, domainId: IdInput, data: UpdateDomainInput): Promise<{
|
|
278
279
|
domain: Domain;
|
|
279
280
|
}>;
|
|
280
281
|
/** Remove a domain. */
|
|
281
|
-
remove(teamId:
|
|
282
|
+
remove(teamId: IdInput, domainId: IdInput): Promise<void>;
|
|
282
283
|
/** Verify domain DNS configuration. */
|
|
283
|
-
verify(teamId:
|
|
284
|
+
verify(teamId: IdInput, domainId: IdInput): Promise<void>;
|
|
284
285
|
}
|
|
285
286
|
|
|
286
287
|
declare class EnvVarsResource {
|
|
287
288
|
private client;
|
|
288
289
|
constructor(client: HostStack);
|
|
289
290
|
/** List all environment variables for a service. */
|
|
290
|
-
list(teamId:
|
|
291
|
+
list(teamId: IdInput, serviceId: IdInput): Promise<{
|
|
291
292
|
envVars: EnvVar[];
|
|
292
293
|
}>;
|
|
293
294
|
/** Create a new environment variable. */
|
|
294
|
-
create(teamId:
|
|
295
|
+
create(teamId: IdInput, serviceId: IdInput, data: CreateEnvVarInput): Promise<{
|
|
295
296
|
envVar: EnvVar;
|
|
296
297
|
}>;
|
|
297
298
|
/** Update an environment variable. */
|
|
298
|
-
update(teamId:
|
|
299
|
+
update(teamId: IdInput, serviceId: IdInput, envVarId: IdInput, data: UpdateEnvVarInput): Promise<{
|
|
299
300
|
envVar: EnvVar;
|
|
300
301
|
}>;
|
|
301
302
|
/** Delete an environment variable. */
|
|
302
|
-
delete(teamId:
|
|
303
|
+
delete(teamId: IdInput, serviceId: IdInput, envVarId: IdInput): Promise<void>;
|
|
303
304
|
/** Bulk set environment variables (create or update). */
|
|
304
|
-
bulkSet(teamId:
|
|
305
|
+
bulkSet(teamId: IdInput, serviceId: IdInput, data: BulkSetEnvVarsInput): Promise<void>;
|
|
305
306
|
}
|
|
306
307
|
|
|
307
308
|
declare class ProjectsResource {
|
|
308
309
|
private client;
|
|
309
310
|
constructor(client: HostStack);
|
|
310
311
|
/** List all projects for the active team. */
|
|
311
|
-
list(teamId:
|
|
312
|
+
list(teamId: IdInput): Promise<{
|
|
312
313
|
projects: Project[];
|
|
313
314
|
}>;
|
|
314
315
|
/** Get a single project by ID. */
|
|
315
|
-
get(teamId:
|
|
316
|
+
get(teamId: IdInput, projectId: IdInput): Promise<{
|
|
316
317
|
project: Project;
|
|
317
318
|
}>;
|
|
318
319
|
/** Create a new project. */
|
|
319
|
-
create(teamId:
|
|
320
|
+
create(teamId: IdInput, data: CreateProjectInput): Promise<{
|
|
320
321
|
project: Project;
|
|
321
322
|
}>;
|
|
322
323
|
/** Update a project. */
|
|
323
|
-
update(teamId:
|
|
324
|
+
update(teamId: IdInput, projectId: IdInput, data: UpdateProjectInput): Promise<{
|
|
324
325
|
project: Project;
|
|
325
326
|
}>;
|
|
326
327
|
/** Delete a project. */
|
|
327
|
-
delete(teamId:
|
|
328
|
+
delete(teamId: IdInput, projectId: IdInput): Promise<void>;
|
|
328
329
|
}
|
|
329
330
|
|
|
330
331
|
interface LogEntry$1 {
|
|
@@ -354,41 +355,41 @@ declare class ServicesResource {
|
|
|
354
355
|
private client;
|
|
355
356
|
constructor(client: HostStack);
|
|
356
357
|
/** List all services for the active team. */
|
|
357
|
-
list(teamId:
|
|
358
|
+
list(teamId: IdInput): Promise<{
|
|
358
359
|
services: Service[];
|
|
359
360
|
}>;
|
|
360
361
|
/** Get a single service by ID. */
|
|
361
|
-
get(teamId:
|
|
362
|
+
get(teamId: IdInput, serviceId: IdInput): Promise<{
|
|
362
363
|
service: Service;
|
|
363
364
|
}>;
|
|
364
365
|
/** Create a new service. */
|
|
365
|
-
create(teamId:
|
|
366
|
+
create(teamId: IdInput, data: CreateServiceInput): Promise<{
|
|
366
367
|
service: Service;
|
|
367
368
|
}>;
|
|
368
369
|
/** Update a service. */
|
|
369
|
-
update(teamId:
|
|
370
|
+
update(teamId: IdInput, serviceId: IdInput, data: UpdateServiceInput): Promise<{
|
|
370
371
|
service: Service;
|
|
371
372
|
}>;
|
|
372
373
|
/** Delete a service. */
|
|
373
|
-
delete(teamId:
|
|
374
|
+
delete(teamId: IdInput, serviceId: IdInput): Promise<void>;
|
|
374
375
|
/** Suspend a service. */
|
|
375
|
-
suspend(teamId:
|
|
376
|
+
suspend(teamId: IdInput, serviceId: IdInput): Promise<void>;
|
|
376
377
|
/** Resume a suspended service. */
|
|
377
|
-
resume(teamId:
|
|
378
|
+
resume(teamId: IdInput, serviceId: IdInput): Promise<void>;
|
|
378
379
|
/** Get service metrics. */
|
|
379
|
-
getMetrics(teamId:
|
|
380
|
+
getMetrics(teamId: IdInput, serviceId: IdInput): Promise<{
|
|
380
381
|
metrics: ServiceMetrics;
|
|
381
382
|
}>;
|
|
382
383
|
/** Get service configuration. */
|
|
383
|
-
getConfig(teamId:
|
|
384
|
+
getConfig(teamId: IdInput, serviceId: IdInput): Promise<{
|
|
384
385
|
config: ServiceConfig;
|
|
385
386
|
}>;
|
|
386
387
|
/** Update service configuration. */
|
|
387
|
-
updateConfig(teamId:
|
|
388
|
+
updateConfig(teamId: IdInput, serviceId: IdInput, data: UpdateServiceConfigInput): Promise<{
|
|
388
389
|
config: ServiceConfig;
|
|
389
390
|
}>;
|
|
390
391
|
/** Get runtime logs for a service. */
|
|
391
|
-
getRuntimeLogs(teamId:
|
|
392
|
+
getRuntimeLogs(teamId: IdInput, serviceId: IdInput, options?: {
|
|
392
393
|
lines?: number;
|
|
393
394
|
since?: string;
|
|
394
395
|
stream?: 'stdout' | 'stderr';
|
|
@@ -407,18 +408,48 @@ declare class ServicesResource {
|
|
|
407
408
|
* }
|
|
408
409
|
* ```
|
|
409
410
|
*/
|
|
410
|
-
streamLogs(teamId:
|
|
411
|
+
streamLogs(teamId: IdInput, serviceId: IdInput, options?: StreamLogsOptions): AsyncGenerator<LogEntry>;
|
|
411
412
|
}
|
|
412
413
|
|
|
414
|
+
/** A numeric id or a publicId string (e.g. 42, "42", "svc_abc…"). */
|
|
415
|
+
type IdInput = number | string;
|
|
413
416
|
interface HostStackOptions {
|
|
414
417
|
/** Your HostStack API key (hs_live_... or hs_test_...). */
|
|
415
418
|
apiKey: string;
|
|
416
419
|
/** Base URL of the HostStack API. Defaults to https://hoststack.dev */
|
|
417
420
|
baseUrl?: string;
|
|
418
421
|
}
|
|
422
|
+
type ResolveScope = {
|
|
423
|
+
kind: 'team';
|
|
424
|
+
} | {
|
|
425
|
+
kind: 'project';
|
|
426
|
+
teamId: number;
|
|
427
|
+
} | {
|
|
428
|
+
kind: 'service';
|
|
429
|
+
teamId: number;
|
|
430
|
+
} | {
|
|
431
|
+
kind: 'deploy';
|
|
432
|
+
teamId: number;
|
|
433
|
+
serviceId: number;
|
|
434
|
+
} | {
|
|
435
|
+
kind: 'database';
|
|
436
|
+
teamId: number;
|
|
437
|
+
} | {
|
|
438
|
+
kind: 'domain';
|
|
439
|
+
teamId: number;
|
|
440
|
+
} | {
|
|
441
|
+
kind: 'envVar';
|
|
442
|
+
teamId: number;
|
|
443
|
+
serviceId: number;
|
|
444
|
+
} | {
|
|
445
|
+
kind: 'cronExecution';
|
|
446
|
+
teamId: number;
|
|
447
|
+
serviceId: number;
|
|
448
|
+
};
|
|
419
449
|
declare class HostStack {
|
|
420
450
|
private apiKey;
|
|
421
451
|
private baseUrl;
|
|
452
|
+
private idCache;
|
|
422
453
|
/** Manage projects. */
|
|
423
454
|
readonly projects: ProjectsResource;
|
|
424
455
|
/** Manage services (web, worker, cron). */
|
|
@@ -439,6 +470,17 @@ declare class HostStack {
|
|
|
439
470
|
* Used internally by resource classes. Can also be used for custom API calls.
|
|
440
471
|
*/
|
|
441
472
|
request<T>(method: string, path: string, body?: unknown): Promise<T>;
|
|
473
|
+
/**
|
|
474
|
+
* Resolve a publicId-or-numeric id input to a numeric database id. Numeric
|
|
475
|
+
* inputs short-circuit; publicIds (svc_xyz, dpl_xyz, etc.) are looked up
|
|
476
|
+
* via the relevant list endpoint and cached on this client instance.
|
|
477
|
+
*
|
|
478
|
+
* The API addresses everything by numeric id internally; this resolver lets
|
|
479
|
+
* SDK/MCP consumers pass either form interchangeably without burning extra
|
|
480
|
+
* round-trips on subsequent calls.
|
|
481
|
+
*/
|
|
482
|
+
resolveId(input: IdInput, scope: ResolveScope): Promise<number>;
|
|
483
|
+
private fetchForResolution;
|
|
442
484
|
}
|
|
443
485
|
|
|
444
486
|
declare class HostStackError extends Error {
|