@renderinc/sdk 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/README.md +580 -0
- package/dist/errors.d.ts +25 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +56 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/render.d.ts +8 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +19 -0
- package/dist/utils/create-api-client.d.ts +4 -0
- package/dist/utils/create-api-client.d.ts.map +1 -0
- package/dist/utils/create-api-client.js +15 -0
- package/dist/utils/get-base-url.d.ts +8 -0
- package/dist/utils/get-base-url.d.ts.map +1 -0
- package/dist/utils/get-base-url.js +14 -0
- package/dist/utils/schema.d.ts +9322 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +2 -0
- package/dist/workflows/client/client.d.ts +14 -0
- package/dist/workflows/client/client.d.ts.map +1 -0
- package/dist/workflows/client/client.js +88 -0
- package/dist/workflows/client/create-client.d.ts +4 -0
- package/dist/workflows/client/create-client.d.ts.map +1 -0
- package/dist/workflows/client/create-client.js +16 -0
- package/dist/workflows/client/errors.d.ts +25 -0
- package/dist/workflows/client/errors.d.ts.map +1 -0
- package/dist/workflows/client/errors.js +56 -0
- package/dist/workflows/client/index.d.ts +4 -0
- package/dist/workflows/client/index.d.ts.map +1 -0
- package/dist/workflows/client/index.js +22 -0
- package/dist/workflows/client/schema.d.ts +9322 -0
- package/dist/workflows/client/schema.d.ts.map +1 -0
- package/dist/workflows/client/schema.js +2 -0
- package/dist/workflows/client/sse.d.ts +14 -0
- package/dist/workflows/client/sse.d.ts.map +1 -0
- package/dist/workflows/client/sse.js +78 -0
- package/dist/workflows/client/types.d.ts +23 -0
- package/dist/workflows/client/types.d.ts.map +1 -0
- package/dist/workflows/client/types.js +10 -0
- package/dist/workflows/client/workflows.d.ts +15 -0
- package/dist/workflows/client/workflows.d.ts.map +1 -0
- package/dist/workflows/client/workflows.js +63 -0
- package/dist/workflows/executor.d.ts +8 -0
- package/dist/workflows/executor.d.ts.map +1 -0
- package/dist/workflows/executor.js +83 -0
- package/dist/workflows/index.d.ts +7 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +30 -0
- package/dist/workflows/registry.d.ts +14 -0
- package/dist/workflows/registry.d.ts.map +1 -0
- package/dist/workflows/registry.js +51 -0
- package/dist/workflows/runner.d.ts +3 -0
- package/dist/workflows/runner.d.ts.map +1 -0
- package/dist/workflows/runner.js +27 -0
- package/dist/workflows/schema.d.ts +296 -0
- package/dist/workflows/schema.d.ts.map +1 -0
- package/dist/workflows/schema.js +2 -0
- package/dist/workflows/task.d.ts +5 -0
- package/dist/workflows/task.d.ts.map +1 -0
- package/dist/workflows/task.js +26 -0
- package/dist/workflows/types.d.ts +35 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +2 -0
- package/dist/workflows/uds.d.ts +13 -0
- package/dist/workflows/uds.d.ts.map +1 -0
- package/dist/workflows/uds.js +155 -0
- package/package.json +65 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Client as ApiClient } from "openapi-fetch";
|
|
2
|
+
import type { paths } from "../../utils/schema.js";
|
|
3
|
+
import type { ListTaskRunsParams, TaskData, TaskIdentifier, TaskRun, TaskRunDetails } from "./types.js";
|
|
4
|
+
export declare class WorkflowsClient {
|
|
5
|
+
private readonly sse;
|
|
6
|
+
private readonly apiClient;
|
|
7
|
+
constructor(apiClient: ApiClient<paths>, baseUrl: string, token: string);
|
|
8
|
+
runTask(taskIdentifier: TaskIdentifier, inputData: TaskData, signal?: AbortSignal): Promise<TaskRunDetails>;
|
|
9
|
+
private waitForTask;
|
|
10
|
+
getTaskRun(taskRunId: string): Promise<TaskRunDetails>;
|
|
11
|
+
private cancelTaskRun;
|
|
12
|
+
listTaskRuns(params: ListTaskRunsParams): Promise<TaskRun[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EACV,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,OAAO,EACP,cAAc,EACf,MAAM,YAAY,CAAC;AAoBpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;gBAOjC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKjE,OAAO,CACX,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC;YA4CZ,WAAW;IAUnB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAe9C,aAAa;IAerB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CASnE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkflowsClient = void 0;
|
|
4
|
+
const errors_js_1 = require("../../errors.js");
|
|
5
|
+
const sse_js_1 = require("./sse.js");
|
|
6
|
+
function handleApiError(error, response, context) {
|
|
7
|
+
const statusCode = response.status;
|
|
8
|
+
const errorMessage = `${context}: ${error}`;
|
|
9
|
+
if (statusCode >= 500) {
|
|
10
|
+
throw new errors_js_1.ServerError(errorMessage, statusCode, error);
|
|
11
|
+
}
|
|
12
|
+
else if (statusCode >= 400) {
|
|
13
|
+
throw new errors_js_1.ClientError(errorMessage, statusCode, error);
|
|
14
|
+
}
|
|
15
|
+
throw new errors_js_1.ClientError(errorMessage, statusCode, error);
|
|
16
|
+
}
|
|
17
|
+
class WorkflowsClient {
|
|
18
|
+
constructor(apiClient, baseUrl, token) {
|
|
19
|
+
this.sse = new sse_js_1.SSEClient(baseUrl, token);
|
|
20
|
+
this.apiClient = apiClient;
|
|
21
|
+
}
|
|
22
|
+
async runTask(taskIdentifier, inputData, signal) {
|
|
23
|
+
if (signal?.aborted) {
|
|
24
|
+
throw new errors_js_1.AbortError();
|
|
25
|
+
}
|
|
26
|
+
let taskRunId = null;
|
|
27
|
+
const abortHandler = async () => {
|
|
28
|
+
if (taskRunId) {
|
|
29
|
+
await this.cancelTaskRun(taskRunId);
|
|
30
|
+
throw new errors_js_1.AbortError();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
try {
|
|
34
|
+
signal?.addEventListener("abort", abortHandler);
|
|
35
|
+
const { data, error, response } = await this.apiClient.POST("/task-runs", {
|
|
36
|
+
body: {
|
|
37
|
+
task: taskIdentifier,
|
|
38
|
+
input: inputData,
|
|
39
|
+
},
|
|
40
|
+
signal,
|
|
41
|
+
});
|
|
42
|
+
if (error) {
|
|
43
|
+
handleApiError(error, response, "Failed to run task");
|
|
44
|
+
}
|
|
45
|
+
taskRunId = data.id;
|
|
46
|
+
return await this.waitForTask(data.id, signal);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if (err instanceof DOMException && err.name === "AbortError") {
|
|
50
|
+
throw new errors_js_1.AbortError();
|
|
51
|
+
}
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
signal?.removeEventListener("abort", abortHandler);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async waitForTask(taskRunId, signal) {
|
|
59
|
+
return this.sse.waitOnTaskRun(taskRunId, signal);
|
|
60
|
+
}
|
|
61
|
+
async getTaskRun(taskRunId) {
|
|
62
|
+
const { data, error, response } = await this.apiClient.GET("/task-runs/{taskRunId}", {
|
|
63
|
+
params: { path: { taskRunId } },
|
|
64
|
+
});
|
|
65
|
+
if (error) {
|
|
66
|
+
handleApiError(error, response, "Failed to get task run");
|
|
67
|
+
}
|
|
68
|
+
return data;
|
|
69
|
+
}
|
|
70
|
+
async cancelTaskRun(taskRunId) {
|
|
71
|
+
const { error, response } = await this.apiClient.DELETE("/task-runs/{taskRunId}", {
|
|
72
|
+
params: { path: { taskRunId } },
|
|
73
|
+
});
|
|
74
|
+
if (error) {
|
|
75
|
+
handleApiError(error, response, "Failed to cancel task run");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async listTaskRuns(params) {
|
|
79
|
+
const { data, error, response } = await this.apiClient.GET("/task-runs", {
|
|
80
|
+
params: { query: params },
|
|
81
|
+
});
|
|
82
|
+
if (error) {
|
|
83
|
+
handleApiError(error, response, "Failed to list task runs");
|
|
84
|
+
}
|
|
85
|
+
return data;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.WorkflowsClient = WorkflowsClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/create-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,CAU9E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWorkflowsClient = createWorkflowsClient;
|
|
4
|
+
const errors_1 = require("../../errors");
|
|
5
|
+
const create_api_client_1 = require("../../utils/create-api-client");
|
|
6
|
+
const get_base_url_1 = require("../../utils/get-base-url");
|
|
7
|
+
const client_1 = require("./client");
|
|
8
|
+
function createWorkflowsClient(options) {
|
|
9
|
+
const token = options?.token || process.env.RENDER_API_KEY;
|
|
10
|
+
if (!token) {
|
|
11
|
+
throw new errors_1.RenderError("API token is required. Provide it via options.token or RENDER_API_KEY environment variable.");
|
|
12
|
+
}
|
|
13
|
+
const baseUrl = (0, get_base_url_1.getBaseUrl)(options);
|
|
14
|
+
const apiClient = (0, create_api_client_1.createApiClient)(baseUrl, token);
|
|
15
|
+
return new client_1.WorkflowsClient(apiClient, baseUrl, token);
|
|
16
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare class RenderError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class TaskRunError extends RenderError {
|
|
5
|
+
taskRunId?: string | undefined;
|
|
6
|
+
taskError?: string | undefined;
|
|
7
|
+
constructor(message: string, taskRunId?: string | undefined, taskError?: string | undefined);
|
|
8
|
+
}
|
|
9
|
+
export declare class ClientError extends RenderError {
|
|
10
|
+
statusCode: number;
|
|
11
|
+
response?: any | undefined;
|
|
12
|
+
constructor(message: string, statusCode: number, response?: any | undefined);
|
|
13
|
+
}
|
|
14
|
+
export declare class ServerError extends RenderError {
|
|
15
|
+
statusCode: number;
|
|
16
|
+
response?: any | undefined;
|
|
17
|
+
constructor(message: string, statusCode: number, response?: any | undefined);
|
|
18
|
+
}
|
|
19
|
+
export declare class TimeoutError extends RenderError {
|
|
20
|
+
constructor(message: string);
|
|
21
|
+
}
|
|
22
|
+
export declare class AbortError extends Error {
|
|
23
|
+
constructor();
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/errors.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAK5B;AAKD,qBAAa,YAAa,SAAQ,WAAW;IAGlC,SAAS,CAAC,EAAE,MAAM;IAClB,SAAS,CAAC,EAAE,MAAM;gBAFzB,OAAO,EAAE,MAAM,EACR,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,SAAS,CAAC,EAAE,MAAM,YAAA;CAM5B;AAKD,qBAAa,WAAY,SAAQ,WAAW;IAGjC,UAAU,EAAE,MAAM;IAClB,QAAQ,CAAC,EAAE,GAAG;gBAFrB,OAAO,EAAE,MAAM,EACR,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,GAAG,YAAA;CAMxB;AAKD,qBAAa,WAAY,SAAQ,WAAW;IAGjC,UAAU,EAAE,MAAM;IAClB,QAAQ,CAAC,EAAE,GAAG;gBAFrB,OAAO,EAAE,MAAM,EACR,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,GAAG,YAAA;CAMxB;AAKD,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,UAAW,SAAQ,KAAK;;CAKpC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbortError = exports.TimeoutError = exports.ServerError = exports.ClientError = exports.TaskRunError = exports.RenderError = void 0;
|
|
4
|
+
class RenderError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = 'RenderError';
|
|
8
|
+
Object.setPrototypeOf(this, RenderError.prototype);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.RenderError = RenderError;
|
|
12
|
+
class TaskRunError extends RenderError {
|
|
13
|
+
constructor(message, taskRunId, taskError) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.taskRunId = taskRunId;
|
|
16
|
+
this.taskError = taskError;
|
|
17
|
+
this.name = 'TaskRunError';
|
|
18
|
+
Object.setPrototypeOf(this, TaskRunError.prototype);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.TaskRunError = TaskRunError;
|
|
22
|
+
class ClientError extends RenderError {
|
|
23
|
+
constructor(message, statusCode, response) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.statusCode = statusCode;
|
|
26
|
+
this.response = response;
|
|
27
|
+
this.name = 'ClientError';
|
|
28
|
+
Object.setPrototypeOf(this, ClientError.prototype);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.ClientError = ClientError;
|
|
32
|
+
class ServerError extends RenderError {
|
|
33
|
+
constructor(message, statusCode, response) {
|
|
34
|
+
super(message);
|
|
35
|
+
this.statusCode = statusCode;
|
|
36
|
+
this.response = response;
|
|
37
|
+
this.name = 'ServerError';
|
|
38
|
+
Object.setPrototypeOf(this, ServerError.prototype);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.ServerError = ServerError;
|
|
42
|
+
class TimeoutError extends RenderError {
|
|
43
|
+
constructor(message) {
|
|
44
|
+
super(message);
|
|
45
|
+
this.name = 'TimeoutError';
|
|
46
|
+
Object.setPrototypeOf(this, TimeoutError.prototype);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.TimeoutError = TimeoutError;
|
|
50
|
+
class AbortError extends Error {
|
|
51
|
+
constructor() {
|
|
52
|
+
super('The operation was aborted.');
|
|
53
|
+
this.name = 'AbortError';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.AbortError = AbortError;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workflows/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.createWorkflowsClient = exports.WorkflowsClient = void 0;
|
|
18
|
+
var client_js_1 = require("./client.js");
|
|
19
|
+
Object.defineProperty(exports, "WorkflowsClient", { enumerable: true, get: function () { return client_js_1.WorkflowsClient; } });
|
|
20
|
+
var create_client_js_1 = require("./create-client.js");
|
|
21
|
+
Object.defineProperty(exports, "createWorkflowsClient", { enumerable: true, get: function () { return create_client_js_1.createWorkflowsClient; } });
|
|
22
|
+
__exportStar(require("./types.js"), exports);
|