@workflow/world-vercel 4.0.1-beta.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.md +21 -0
- package/README.md +8 -0
- package/dist/auth.d.ts +6 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +26 -0
- package/dist/auth.js.map +1 -0
- package/dist/backend.d.ts +4 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +21 -0
- package/dist/backend.js.map +1 -0
- package/dist/events.d.ts +5 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +76 -0
- package/dist/events.js.map +1 -0
- package/dist/hooks.d.ts +8 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +87 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/queue.d.ts +3 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +41 -0
- package/dist/queue.js.map +1 -0
- package/dist/runs.d.ts +14 -0
- package/dist/runs.d.ts.map +1 -0
- package/dist/runs.js +194 -0
- package/dist/runs.js.map +1 -0
- package/dist/steps.d.ts +7 -0
- package/dist/steps.d.ts.map +1 -0
- package/dist/steps.js +94 -0
- package/dist/steps.js.map +1 -0
- package/dist/storage.d.ts +4 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +41 -0
- package/dist/storage.js.map +1 -0
- package/dist/streamer.d.ts +4 -0
- package/dist/streamer.d.ts.map +1 -0
- package/dist/streamer.js +37 -0
- package/dist/streamer.js.map +1 -0
- package/dist/utils.d.ts +25 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +68 -0
- package/dist/utils.js.map +1 -0
- package/package.json +36 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Vercel, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# @workflow/world-vercel
|
|
2
|
+
|
|
3
|
+
Production workflow backend for Vercel platform deployments.
|
|
4
|
+
|
|
5
|
+
Integrates with Vercel's infrastructure for storage, queuing, and authentication. Handles workflow persistence and scaling in production environments.
|
|
6
|
+
|
|
7
|
+
Used by default for deployments on Vercel. Authentication and API endpoints are configured automatically in Vercel deployments.
|
|
8
|
+
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AuthInfo, type AuthProvider, type HealthCheckResponse } from '@workflow/world';
|
|
2
|
+
import type { APIConfig } from './utils.js';
|
|
3
|
+
export declare function getAuthInfo(config?: APIConfig): Promise<AuthInfo>;
|
|
4
|
+
export declare function checkHealth(config?: APIConfig): Promise<HealthCheckResponse>;
|
|
5
|
+
export declare function createAuth(config?: APIConfig): AuthProvider;
|
|
6
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOvE;AAED,wBAAsB,WAAW,CAC/B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,YAAY,CAK3D"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AuthInfoSchema, HealthCheckResponseSchema, } from '@workflow/world';
|
|
2
|
+
import { makeRequest } from './utils.js';
|
|
3
|
+
// Functions
|
|
4
|
+
export async function getAuthInfo(config) {
|
|
5
|
+
return makeRequest({
|
|
6
|
+
endpoint: '/v1',
|
|
7
|
+
options: { method: 'GET' },
|
|
8
|
+
config,
|
|
9
|
+
schema: AuthInfoSchema,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export async function checkHealth(config) {
|
|
13
|
+
return makeRequest({
|
|
14
|
+
endpoint: '/v1/health',
|
|
15
|
+
options: { method: 'GET' },
|
|
16
|
+
config,
|
|
17
|
+
schema: HealthCheckResponseSchema,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export function createAuth(config) {
|
|
21
|
+
return {
|
|
22
|
+
checkHealth: () => checkHealth(config),
|
|
23
|
+
getAuthInfo: () => getAuthInfo(config),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGd,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,YAAY;AACZ,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAkB;IAClD,OAAO,WAAW,CAAC;QACjB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1B,MAAM;QACN,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAkB;IAElB,OAAO,WAAW,CAAC;QACjB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1B,MAAM;QACN,MAAM,EAAE,yBAAyB;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;QACtC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,YAAY,CAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,QAAQ,GAAG,OAAO,GAAG,YAAY,CAoBnC"}
|
package/dist/backend.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createStorage } from './storage.js';
|
|
2
|
+
import { createStreamer } from './streamer.js';
|
|
3
|
+
export function createVercel(config) {
|
|
4
|
+
const storage = createStorage(config);
|
|
5
|
+
const streamer = createStreamer(config);
|
|
6
|
+
return {
|
|
7
|
+
// Streamer interface
|
|
8
|
+
writeToStream: streamer.writeToStream,
|
|
9
|
+
closeStream: streamer.closeStream,
|
|
10
|
+
readFromStream: streamer.readFromStream,
|
|
11
|
+
// AuthProvider interface
|
|
12
|
+
getAuthInfo: storage.getAuthInfo,
|
|
13
|
+
checkHealth: storage.checkHealth,
|
|
14
|
+
// Storage interface with namespaced methods
|
|
15
|
+
runs: storage.runs,
|
|
16
|
+
steps: storage.steps,
|
|
17
|
+
events: storage.events,
|
|
18
|
+
hooks: storage.hooks,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,YAAY,CAC1B,MAAkB;IAElB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO;QACL,qBAAqB;QACrB,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,cAAc,EAAE,QAAQ,CAAC,cAAc;QAEvC,yBAAyB;QACzB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAEhC,4CAA4C;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type CreateEventParams, type CreateEventRequest, type Event, type ListEventsByCorrelationIdParams, type ListEventsParams, type PaginatedResponse } from '@workflow/world';
|
|
2
|
+
import type { APIConfig } from './utils.js';
|
|
3
|
+
export declare function getWorkflowRunEvents(params: ListEventsParams | ListEventsByCorrelationIdParams, config?: APIConfig): Promise<PaginatedResponse<Event>>;
|
|
4
|
+
export declare function createWorkflowRunEvent(id: string, data: CreateEventRequest, params?: CreateEventParams, config?: APIConfig): Promise<Event>;
|
|
5
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,KAAK,EAGV,KAAK,+BAA+B,EACpC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA4B5C,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,GAAG,+BAA+B,EAC1D,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CA6CnC;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,KAAK,CAAC,CAchB"}
|
package/dist/events.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { EventSchema, EventTypeSchema, PaginatedResponseSchema, } from '@workflow/world';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { DEFAULT_RESOLVE_DATA_OPTION, dateToStringReplacer, makeRequest, } from './utils.js';
|
|
4
|
+
// Helper to filter event data based on resolveData setting
|
|
5
|
+
function filterEventData(event, resolveData) {
|
|
6
|
+
if (resolveData === 'none') {
|
|
7
|
+
const { eventData: _eventData, ...rest } = event;
|
|
8
|
+
return rest;
|
|
9
|
+
}
|
|
10
|
+
return event;
|
|
11
|
+
}
|
|
12
|
+
// Would usually "EventSchema.omit({ eventData: true })" but that doesn't work
|
|
13
|
+
// on zod unions. Re-creating the schema manually.
|
|
14
|
+
const EventWithRefsSchema = z.object({
|
|
15
|
+
eventId: z.string(),
|
|
16
|
+
runId: z.string(),
|
|
17
|
+
eventType: EventTypeSchema,
|
|
18
|
+
correlationId: z.string().optional(),
|
|
19
|
+
eventDataRef: z.any().optional(),
|
|
20
|
+
createdAt: z.coerce.date(),
|
|
21
|
+
});
|
|
22
|
+
// Functions
|
|
23
|
+
export async function getWorkflowRunEvents(params, config) {
|
|
24
|
+
const searchParams = new URLSearchParams();
|
|
25
|
+
const { pagination, resolveData = DEFAULT_RESOLVE_DATA_OPTION } = params;
|
|
26
|
+
let runId;
|
|
27
|
+
let correlationId;
|
|
28
|
+
if ('runId' in params) {
|
|
29
|
+
runId = params.runId;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
correlationId = params.correlationId;
|
|
33
|
+
}
|
|
34
|
+
if (!runId && !correlationId) {
|
|
35
|
+
throw new Error('Either runId or correlationId must be provided');
|
|
36
|
+
}
|
|
37
|
+
if (pagination?.limit)
|
|
38
|
+
searchParams.set('limit', pagination.limit.toString());
|
|
39
|
+
if (pagination?.cursor)
|
|
40
|
+
searchParams.set('cursor', pagination.cursor);
|
|
41
|
+
if (pagination?.sortOrder)
|
|
42
|
+
searchParams.set('sortOrder', pagination.sortOrder);
|
|
43
|
+
if (correlationId)
|
|
44
|
+
searchParams.set('correlationId', correlationId);
|
|
45
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
46
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
47
|
+
const queryString = searchParams.toString();
|
|
48
|
+
const query = queryString ? `?${queryString}` : '';
|
|
49
|
+
const endpoint = correlationId
|
|
50
|
+
? `/v1/events${query}`
|
|
51
|
+
: `/v1/runs/${runId}/events${query}`;
|
|
52
|
+
const response = (await makeRequest({
|
|
53
|
+
endpoint,
|
|
54
|
+
options: { method: 'GET' },
|
|
55
|
+
config,
|
|
56
|
+
schema: PaginatedResponseSchema(remoteRefBehavior === 'lazy' ? EventWithRefsSchema : EventSchema),
|
|
57
|
+
}));
|
|
58
|
+
return {
|
|
59
|
+
...response,
|
|
60
|
+
data: response.data.map((event) => filterEventData(event, resolveData)),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export async function createWorkflowRunEvent(id, data, params, config) {
|
|
64
|
+
const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;
|
|
65
|
+
const event = await makeRequest({
|
|
66
|
+
endpoint: `/v1/runs/${id}/events`,
|
|
67
|
+
options: {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
body: JSON.stringify(data, dateToStringReplacer),
|
|
70
|
+
},
|
|
71
|
+
config,
|
|
72
|
+
schema: EventSchema,
|
|
73
|
+
});
|
|
74
|
+
return filterEventData(event, resolveData);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CreateHookRequest, GetHookParams, Hook, ListHooksParams, PaginatedResponse } from '@workflow/world';
|
|
2
|
+
import type { APIConfig } from './utils.js';
|
|
3
|
+
export declare function listHooks(params: ListHooksParams, config?: APIConfig): Promise<PaginatedResponse<Hook>>;
|
|
4
|
+
export declare function getHook(hookId: string, params?: GetHookParams, config?: APIConfig): Promise<Hook>;
|
|
5
|
+
export declare function createHook(runId: string, data: CreateHookRequest, config?: APIConfig): Promise<Hook>;
|
|
6
|
+
export declare function getHookByToken(token: string, config?: APIConfig): Promise<Hook>;
|
|
7
|
+
export declare function disposeHook(hookId: string, config?: APIConfig): Promise<Hook>;
|
|
8
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,IAAI,EACJ,eAAe,EACf,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAqB5C,wBAAsB,SAAS,CAC7B,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAoClC;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAOf"}
|
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { HookSchema, PaginatedResponseSchema } from '@workflow/world';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { DEFAULT_RESOLVE_DATA_OPTION, dateToStringReplacer, makeRequest, } from './utils.js';
|
|
4
|
+
// Helper to filter hook data based on resolveData setting
|
|
5
|
+
function filterHookData(hook, resolveData) {
|
|
6
|
+
if (resolveData === 'none') {
|
|
7
|
+
const { metadataRef: _metadataRef, ...rest } = hook;
|
|
8
|
+
return rest;
|
|
9
|
+
}
|
|
10
|
+
return hook;
|
|
11
|
+
}
|
|
12
|
+
const HookWithRefsSchema = HookSchema.omit({
|
|
13
|
+
metadata: true,
|
|
14
|
+
}).extend({
|
|
15
|
+
metadataRef: z.any().optional(),
|
|
16
|
+
});
|
|
17
|
+
export async function listHooks(params, config) {
|
|
18
|
+
const { runId, pagination, resolveData = DEFAULT_RESOLVE_DATA_OPTION, } = params;
|
|
19
|
+
const searchParams = new URLSearchParams();
|
|
20
|
+
if (pagination?.limit)
|
|
21
|
+
searchParams.set('limit', pagination.limit.toString());
|
|
22
|
+
if (pagination?.cursor)
|
|
23
|
+
searchParams.set('cursor', pagination.cursor);
|
|
24
|
+
if (pagination?.sortOrder)
|
|
25
|
+
searchParams.set('sortOrder', pagination.sortOrder);
|
|
26
|
+
// Map resolveData to internal RemoteRefBehavior
|
|
27
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
28
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
29
|
+
if (runId)
|
|
30
|
+
searchParams.set('runId', runId);
|
|
31
|
+
const queryString = searchParams.toString();
|
|
32
|
+
const endpoint = `/v1/hooks${queryString ? `?${queryString}` : ''}`;
|
|
33
|
+
const response = (await makeRequest({
|
|
34
|
+
endpoint,
|
|
35
|
+
options: { method: 'GET' },
|
|
36
|
+
config,
|
|
37
|
+
schema: PaginatedResponseSchema(remoteRefBehavior === 'lazy' ? HookWithRefsSchema : HookSchema),
|
|
38
|
+
}));
|
|
39
|
+
return {
|
|
40
|
+
...response,
|
|
41
|
+
data: response.data.map((hook) => filterHookData(hook, resolveData)),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export async function getHook(hookId, params, config) {
|
|
45
|
+
const resolveData = params?.resolveData || 'all';
|
|
46
|
+
const endpoint = `/v1/hooks/${hookId}`;
|
|
47
|
+
const hook = await makeRequest({
|
|
48
|
+
endpoint,
|
|
49
|
+
options: { method: 'GET' },
|
|
50
|
+
config,
|
|
51
|
+
schema: HookSchema,
|
|
52
|
+
});
|
|
53
|
+
return filterHookData(hook, resolveData);
|
|
54
|
+
}
|
|
55
|
+
export async function createHook(runId, data, config) {
|
|
56
|
+
return makeRequest({
|
|
57
|
+
endpoint: `/v1/hooks/create`,
|
|
58
|
+
options: {
|
|
59
|
+
method: 'POST',
|
|
60
|
+
body: JSON.stringify({
|
|
61
|
+
runId,
|
|
62
|
+
...data,
|
|
63
|
+
}, dateToStringReplacer),
|
|
64
|
+
},
|
|
65
|
+
config,
|
|
66
|
+
schema: HookSchema,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export async function getHookByToken(token, config) {
|
|
70
|
+
return makeRequest({
|
|
71
|
+
endpoint: `/v1/hooks/by-token?token=${encodeURIComponent(token)}`,
|
|
72
|
+
options: {
|
|
73
|
+
method: 'GET',
|
|
74
|
+
},
|
|
75
|
+
config,
|
|
76
|
+
schema: HookSchema,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export async function disposeHook(hookId, config) {
|
|
80
|
+
return makeRequest({
|
|
81
|
+
endpoint: `/v1/hooks/${hookId}`,
|
|
82
|
+
options: { method: 'DELETE' },
|
|
83
|
+
config,
|
|
84
|
+
schema: HookSchema,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { World } from '@workflow/world';
|
|
2
|
+
import type { APIConfig } from './utils.js';
|
|
3
|
+
export { createQueue } from './queue.js';
|
|
4
|
+
export { createStorage } from './storage.js';
|
|
5
|
+
export { createStreamer } from './streamer.js';
|
|
6
|
+
export type { APIConfig } from './utils.js';
|
|
7
|
+
export declare function createVercelWorld(config?: APIConfig): World;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,KAAK,CAO3D"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createAuth } from './auth.js';
|
|
2
|
+
import { createQueue } from './queue.js';
|
|
3
|
+
import { createStorage } from './storage.js';
|
|
4
|
+
import { createStreamer } from './streamer.js';
|
|
5
|
+
export { createQueue } from './queue.js';
|
|
6
|
+
export { createStorage } from './storage.js';
|
|
7
|
+
export { createStreamer } from './streamer.js';
|
|
8
|
+
export function createVercelWorld(config) {
|
|
9
|
+
return {
|
|
10
|
+
...createQueue(),
|
|
11
|
+
...createStorage(config),
|
|
12
|
+
...createAuth(config),
|
|
13
|
+
...createStreamer(config),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,UAAU,iBAAiB,CAAC,MAAkB;IAClD,OAAO;QACL,GAAG,WAAW,EAAE;QAChB,GAAG,aAAa,CAAC,MAAM,CAAC;QACxB,GAAG,UAAU,CAAC,MAAM,CAAC;QACrB,GAAG,cAAc,CAAC,MAAM,CAAC;KAC1B,CAAC;AACJ,CAAC"}
|
package/dist/queue.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,KAAK,EAGX,MAAM,iBAAiB,CAAC;AAQzB,wBAAgB,WAAW,IAAI,KAAK,CAmCnC"}
|
package/dist/queue.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { handleCallback, send } from '@vercel/queue';
|
|
2
|
+
import { MessageId, QueuePayloadSchema, ValidQueueName, } from '@workflow/world';
|
|
3
|
+
import * as z from 'zod';
|
|
4
|
+
const MessageWrapper = z.object({
|
|
5
|
+
payload: QueuePayloadSchema,
|
|
6
|
+
queueName: ValidQueueName,
|
|
7
|
+
});
|
|
8
|
+
export function createQueue() {
|
|
9
|
+
const queue = async (queueName, x, opts) => {
|
|
10
|
+
const encoded = MessageWrapper.encode({
|
|
11
|
+
payload: x,
|
|
12
|
+
queueName,
|
|
13
|
+
});
|
|
14
|
+
const sanitizedQueueName = queueName.replace(/[^A-Za-z0-9-_]/g, '-');
|
|
15
|
+
const { messageId } = await send(sanitizedQueueName, encoded, opts);
|
|
16
|
+
return { messageId: MessageId.parse(messageId) };
|
|
17
|
+
};
|
|
18
|
+
const createQueueHandler = (prefix, handler) => {
|
|
19
|
+
return handleCallback({
|
|
20
|
+
[`${prefix}*`]: {
|
|
21
|
+
default: (body, meta) => {
|
|
22
|
+
const { payload, queueName } = MessageWrapper.parse(body);
|
|
23
|
+
return handler(payload, {
|
|
24
|
+
queueName,
|
|
25
|
+
messageId: MessageId.parse(meta.messageId),
|
|
26
|
+
attempt: meta.deliveryCount,
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
const getDeploymentId = async () => {
|
|
33
|
+
const deploymentId = process.env.VERCEL_DEPLOYMENT_ID;
|
|
34
|
+
if (!deploymentId) {
|
|
35
|
+
throw new Error('VERCEL_DEPLOYMENT_ID environment variable is not set');
|
|
36
|
+
}
|
|
37
|
+
return deploymentId;
|
|
38
|
+
};
|
|
39
|
+
return { queue, createQueueHandler, getDeploymentId };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,SAAS,EAET,kBAAkB,EAClB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,kBAAkB;IAC3B,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAmB,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;YACpC,OAAO,EAAE,CAAC;YACV,SAAS;SACV,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACrE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACpE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IACnD,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAgC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC1E,OAAO,cAAc,CAAC;YACpB,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE;gBACd,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;oBACtB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1D,OAAO,OAAO,CAAC,OAAO,EAAE;wBACtB,SAAS;wBACT,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC1C,OAAO,EAAE,IAAI,CAAC,aAAa;qBAC5B,CAAC,CAAC;gBACL,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,eAAe,GAA6B,KAAK,IAAI,EAAE;QAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;AACxD,CAAC"}
|
package/dist/runs.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type CancelWorkflowRunParams, type CreateWorkflowRunRequest, type GetWorkflowRunParams, type ListWorkflowRunsParams, type PaginatedResponse, type PauseWorkflowRunParams, type ResumeWorkflowRunParams, type UpdateWorkflowRunRequest, type WorkflowRun } from '@workflow/world';
|
|
2
|
+
import type { APIConfig } from './utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* This query technically works but should be used sparingly till the backend
|
|
5
|
+
* uses CH to resolve this instead of scanning a dynamo table.
|
|
6
|
+
*/
|
|
7
|
+
export declare function listWorkflowRuns(params?: ListWorkflowRunsParams, config?: APIConfig): Promise<PaginatedResponse<WorkflowRun>>;
|
|
8
|
+
export declare function createWorkflowRun(data: CreateWorkflowRunRequest, config?: APIConfig): Promise<WorkflowRun>;
|
|
9
|
+
export declare function getWorkflowRun(id: string, params?: GetWorkflowRunParams, config?: APIConfig): Promise<WorkflowRun>;
|
|
10
|
+
export declare function updateWorkflowRun(id: string, data: UpdateWorkflowRunRequest, config?: APIConfig): Promise<WorkflowRun>;
|
|
11
|
+
export declare function cancelWorkflowRun(id: string, params?: CancelWorkflowRunParams, config?: APIConfig): Promise<WorkflowRun>;
|
|
12
|
+
export declare function pauseWorkflowRun(id: string, params?: PauseWorkflowRunParams, config?: APIConfig): Promise<WorkflowRun>;
|
|
13
|
+
export declare function resumeWorkflowRun(id: string, params?: ResumeWorkflowRunParams, config?: APIConfig): Promise<WorkflowRun>;
|
|
14
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EAEtB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkC5C;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,GAAE,sBAA2B,EACnC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAuCzC;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,wBAAwB,EAC9B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CAUtB;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CA2BtB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,wBAAwB,EAC9B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CAiBtB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,uBAAuB,EAChC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CA2BtB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,sBAAsB,EAC/B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CA2BtB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,uBAAuB,EAChC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,WAAW,CAAC,CA2BtB"}
|
package/dist/runs.js
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { WorkflowAPIError, WorkflowRunNotFoundError } from '@workflow/errors';
|
|
2
|
+
import { PaginatedResponseSchema, WorkflowRunSchema, } from '@workflow/world';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { DEFAULT_RESOLVE_DATA_OPTION, dateToStringReplacer, makeRequest, } from './utils.js';
|
|
5
|
+
// Local schema for lazy mode with refs instead of data
|
|
6
|
+
const WorkflowRunWithRefsSchema = WorkflowRunSchema.omit({
|
|
7
|
+
input: true,
|
|
8
|
+
output: true,
|
|
9
|
+
}).extend({
|
|
10
|
+
// We discard the results of the refs, so we don't care about the type here
|
|
11
|
+
inputRef: z.any().optional(),
|
|
12
|
+
outputRef: z.any().optional(),
|
|
13
|
+
input: z.array(z.any()).optional(),
|
|
14
|
+
output: z.any().optional(),
|
|
15
|
+
});
|
|
16
|
+
// Helper to filter run data based on resolveData setting
|
|
17
|
+
function filterRunData(run, resolveData) {
|
|
18
|
+
if (resolveData === 'none') {
|
|
19
|
+
const { inputRef: _inputRef, outputRef: _outputRef, ...rest } = run;
|
|
20
|
+
return {
|
|
21
|
+
...rest,
|
|
22
|
+
input: [],
|
|
23
|
+
output: undefined,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return run;
|
|
27
|
+
}
|
|
28
|
+
// Functions
|
|
29
|
+
/**
|
|
30
|
+
* This query technically works but should be used sparingly till the backend
|
|
31
|
+
* uses CH to resolve this instead of scanning a dynamo table.
|
|
32
|
+
*/
|
|
33
|
+
export async function listWorkflowRuns(params = {}, config) {
|
|
34
|
+
const { workflowName, status, pagination, resolveData = DEFAULT_RESOLVE_DATA_OPTION, } = params;
|
|
35
|
+
const searchParams = new URLSearchParams();
|
|
36
|
+
if (workflowName)
|
|
37
|
+
searchParams.set('workflowName', workflowName);
|
|
38
|
+
if (status)
|
|
39
|
+
searchParams.set('status', status);
|
|
40
|
+
if (pagination?.limit)
|
|
41
|
+
searchParams.set('limit', pagination.limit.toString());
|
|
42
|
+
if (pagination?.cursor)
|
|
43
|
+
searchParams.set('cursor', pagination.cursor);
|
|
44
|
+
if (pagination?.sortOrder)
|
|
45
|
+
searchParams.set('sortOrder', pagination.sortOrder);
|
|
46
|
+
// Map resolveData to internal RemoteRefBehavior
|
|
47
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
48
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
49
|
+
const queryString = searchParams.toString();
|
|
50
|
+
const endpoint = `/v1/runs${queryString ? `?${queryString}` : ''}`;
|
|
51
|
+
const response = (await makeRequest({
|
|
52
|
+
endpoint,
|
|
53
|
+
options: { method: 'GET' },
|
|
54
|
+
config,
|
|
55
|
+
schema: PaginatedResponseSchema(remoteRefBehavior === 'lazy'
|
|
56
|
+
? WorkflowRunWithRefsSchema
|
|
57
|
+
: WorkflowRunSchema),
|
|
58
|
+
}));
|
|
59
|
+
return {
|
|
60
|
+
...response,
|
|
61
|
+
data: response.data.map((run) => filterRunData(run, resolveData)),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export async function createWorkflowRun(data, config) {
|
|
65
|
+
return makeRequest({
|
|
66
|
+
endpoint: '/v1/runs/create',
|
|
67
|
+
options: {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
body: JSON.stringify(data, dateToStringReplacer),
|
|
70
|
+
},
|
|
71
|
+
config,
|
|
72
|
+
schema: WorkflowRunSchema,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export async function getWorkflowRun(id, params, config) {
|
|
76
|
+
const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;
|
|
77
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
78
|
+
const searchParams = new URLSearchParams();
|
|
79
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
80
|
+
const queryString = searchParams.toString();
|
|
81
|
+
const endpoint = `/v1/runs/${id}${queryString ? `?${queryString}` : ''}`;
|
|
82
|
+
try {
|
|
83
|
+
const run = await makeRequest({
|
|
84
|
+
endpoint,
|
|
85
|
+
options: { method: 'GET' },
|
|
86
|
+
config,
|
|
87
|
+
schema: (remoteRefBehavior === 'lazy'
|
|
88
|
+
? WorkflowRunWithRefsSchema
|
|
89
|
+
: WorkflowRunSchema),
|
|
90
|
+
});
|
|
91
|
+
return filterRunData(run, resolveData);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (error instanceof WorkflowAPIError && error.status === 404) {
|
|
95
|
+
throw new WorkflowRunNotFoundError(id);
|
|
96
|
+
}
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export async function updateWorkflowRun(id, data, config) {
|
|
101
|
+
try {
|
|
102
|
+
return makeRequest({
|
|
103
|
+
endpoint: `/v1/runs/${id}`,
|
|
104
|
+
options: {
|
|
105
|
+
method: 'PUT',
|
|
106
|
+
body: JSON.stringify(data, dateToStringReplacer),
|
|
107
|
+
},
|
|
108
|
+
config,
|
|
109
|
+
schema: WorkflowRunSchema,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
if (error instanceof WorkflowAPIError && error.status === 404) {
|
|
114
|
+
throw new WorkflowRunNotFoundError(id);
|
|
115
|
+
}
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export async function cancelWorkflowRun(id, params, config) {
|
|
120
|
+
const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;
|
|
121
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
122
|
+
const searchParams = new URLSearchParams();
|
|
123
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
124
|
+
const queryString = searchParams.toString();
|
|
125
|
+
const endpoint = `/v1/runs/${id}/cancel${queryString ? `?${queryString}` : ''}`;
|
|
126
|
+
try {
|
|
127
|
+
const run = await makeRequest({
|
|
128
|
+
endpoint,
|
|
129
|
+
options: { method: 'PUT' },
|
|
130
|
+
config,
|
|
131
|
+
schema: (remoteRefBehavior === 'lazy'
|
|
132
|
+
? WorkflowRunWithRefsSchema
|
|
133
|
+
: WorkflowRunSchema),
|
|
134
|
+
});
|
|
135
|
+
return filterRunData(run, resolveData);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
if (error instanceof WorkflowAPIError && error.status === 404) {
|
|
139
|
+
throw new WorkflowRunNotFoundError(id);
|
|
140
|
+
}
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export async function pauseWorkflowRun(id, params, config) {
|
|
145
|
+
const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;
|
|
146
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
147
|
+
const searchParams = new URLSearchParams();
|
|
148
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
149
|
+
const queryString = searchParams.toString();
|
|
150
|
+
const endpoint = `/v1/runs/${id}/pause${queryString ? `?${queryString}` : ''}`;
|
|
151
|
+
try {
|
|
152
|
+
const run = await makeRequest({
|
|
153
|
+
endpoint,
|
|
154
|
+
options: { method: 'PUT' },
|
|
155
|
+
config,
|
|
156
|
+
schema: (remoteRefBehavior === 'lazy'
|
|
157
|
+
? WorkflowRunWithRefsSchema
|
|
158
|
+
: WorkflowRunSchema),
|
|
159
|
+
});
|
|
160
|
+
return filterRunData(run, resolveData);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
if (error instanceof WorkflowAPIError && error.status === 404) {
|
|
164
|
+
throw new WorkflowRunNotFoundError(id);
|
|
165
|
+
}
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
export async function resumeWorkflowRun(id, params, config) {
|
|
170
|
+
const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;
|
|
171
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
172
|
+
const searchParams = new URLSearchParams();
|
|
173
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
174
|
+
const queryString = searchParams.toString();
|
|
175
|
+
const endpoint = `/v1/runs/${id}/resume${queryString ? `?${queryString}` : ''}`;
|
|
176
|
+
try {
|
|
177
|
+
const run = await makeRequest({
|
|
178
|
+
endpoint,
|
|
179
|
+
options: { method: 'PUT' },
|
|
180
|
+
config,
|
|
181
|
+
schema: (remoteRefBehavior === 'lazy'
|
|
182
|
+
? WorkflowRunWithRefsSchema
|
|
183
|
+
: WorkflowRunSchema),
|
|
184
|
+
});
|
|
185
|
+
return filterRunData(run, resolveData);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
if (error instanceof WorkflowAPIError && error.status === 404) {
|
|
189
|
+
throw new WorkflowRunNotFoundError(id);
|
|
190
|
+
}
|
|
191
|
+
throw error;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=runs.js.map
|
package/dist/runs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../src/runs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAML,uBAAuB,EAKvB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,uDAAuD;AACvD,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACvD,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACb,CAAC,CAAC,MAAM,CAAC;IACR,2EAA2E;IAC3E,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC3B,CAAC,CAAC;AAEH,yDAAyD;AACzD,SAAS,aAAa,CAAC,GAAQ,EAAE,WAA2B;IAC1D,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QACpE,OAAO;YACL,GAAG,IAAI;YACP,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,YAAY;AAEZ;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAiC,EAAE,EACnC,MAAkB;IAElB,MAAM,EACJ,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,GAAG,2BAA2B,GAC1C,GAAG,MAAM,CAAC;IAEX,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAE3C,IAAI,YAAY;QAAE,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACjE,IAAI,MAAM;QAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,UAAU,EAAE,KAAK;QAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9E,IAAI,UAAU,EAAE,MAAM;QAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACtE,IAAI,UAAU,EAAE,SAAS;QACvB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAEtD,gDAAgD;IAChD,MAAM,iBAAiB,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEnE,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CAAC;QAClC,QAAQ;QACR,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAC1B,MAAM;QACN,MAAM,EAAE,uBAAuB,CAC7B,iBAAiB,KAAK,MAAM;YAC1B,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,iBAAiB,CACtB;KACF,CAAC,CAAmC,CAAC;IAEtC,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAA8B,EAC9B,MAAkB;IAElB,OAAO,WAAW,CAAC;QACjB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,oBAAoB,CAAC;SACjD;QACD,MAAM;QACN,MAAM,EAAE,iBAAiB;KAC1B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAU,EACV,MAA6B,EAC7B,MAAkB;IAElB,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,2BAA2B,CAAC;IACvE,MAAM,iBAAiB,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,QAAQ;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAC1B,MAAM;YACN,MAAM,EAAE,CAAC,iBAAiB,KAAK,MAAM;gBACnC,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,iBAAiB,CAAQ;SAC9B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9D,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAU,EACV,IAA8B,EAC9B,MAAkB;IAElB,IAAI,CAAC;QACH,OAAO,WAAW,CAAC;YACjB,QAAQ,EAAE,YAAY,EAAE,EAAE;YAC1B,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,oBAAoB,CAAC;aACjD;YACD,MAAM;YACN,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9D,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAU,EACV,MAAgC,EAChC,MAAkB;IAElB,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,2BAA2B,CAAC;IACvE,MAAM,iBAAiB,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,EAAE,UAAU,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEhF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,QAAQ;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAC1B,MAAM;YACN,MAAM,EAAE,CAAC,iBAAiB,KAAK,MAAM;gBACnC,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,iBAAiB,CAAQ;SAC9B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9D,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,MAA+B,EAC/B,MAAkB;IAElB,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,2BAA2B,CAAC;IACvE,MAAM,iBAAiB,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,QAAQ;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAC1B,MAAM;YACN,MAAM,EAAE,CAAC,iBAAiB,KAAK,MAAM;gBACnC,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,iBAAiB,CAAQ;SAC9B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9D,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAU,EACV,MAAgC,EAChC,MAAkB;IAElB,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,2BAA2B,CAAC;IACvE,MAAM,iBAAiB,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,EAAE,UAAU,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEhF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;YAC5B,QAAQ;YACR,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;YAC1B,MAAM;YACN,MAAM,EAAE,CAAC,iBAAiB,KAAK,MAAM;gBACnC,CAAC,CAAC,yBAAyB;gBAC3B,CAAC,CAAC,iBAAiB,CAAQ;SAC9B,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC9D,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/steps.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CreateStepRequest, type GetStepParams, type ListWorkflowRunStepsParams, type PaginatedResponse, type Step, type UpdateStepRequest } from '@workflow/world';
|
|
2
|
+
import type { APIConfig } from './utils.js';
|
|
3
|
+
export declare function listWorkflowRunSteps(params: ListWorkflowRunStepsParams, config?: APIConfig): Promise<PaginatedResponse<Step>>;
|
|
4
|
+
export declare function createStep(runId: string, data: CreateStepRequest, config?: APIConfig): Promise<Step>;
|
|
5
|
+
export declare function updateStep(runId: string, stepId: string, data: UpdateStepRequest, config?: APIConfig): Promise<Step>;
|
|
6
|
+
export declare function getStep(runId: string | undefined, stepId: string, params?: GetStepParams, config?: APIConfig): Promise<Step>;
|
|
7
|
+
//# sourceMappingURL=steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EAEtB,KAAK,IAAI,EAET,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiC5C,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,EAClC,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAkClC;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
package/dist/steps.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { PaginatedResponseSchema, StepSchema, } from '@workflow/world';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { DEFAULT_RESOLVE_DATA_OPTION, dateToStringReplacer, makeRequest, } from './utils.js';
|
|
4
|
+
// Local schema for lazy mode with refs instead of data
|
|
5
|
+
const StepWithRefsSchema = StepSchema.omit({
|
|
6
|
+
input: true,
|
|
7
|
+
output: true,
|
|
8
|
+
}).extend({
|
|
9
|
+
// We discard the results of the refs, so we don't care about the type here
|
|
10
|
+
inputRef: z.any().optional(),
|
|
11
|
+
outputRef: z.any().optional(),
|
|
12
|
+
input: z.array(z.any()).optional(),
|
|
13
|
+
output: z.any().optional(),
|
|
14
|
+
});
|
|
15
|
+
// Helper to filter step data based on resolveData setting
|
|
16
|
+
function filterStepData(step, resolveData) {
|
|
17
|
+
if (resolveData === 'none') {
|
|
18
|
+
const { inputRef: _inputRef, outputRef: _outputRef, ...rest } = step;
|
|
19
|
+
return {
|
|
20
|
+
...rest,
|
|
21
|
+
input: [],
|
|
22
|
+
output: undefined,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return step;
|
|
26
|
+
}
|
|
27
|
+
// Functions
|
|
28
|
+
export async function listWorkflowRunSteps(params, config) {
|
|
29
|
+
const { runId, pagination, resolveData = DEFAULT_RESOLVE_DATA_OPTION, } = params;
|
|
30
|
+
const searchParams = new URLSearchParams();
|
|
31
|
+
if (pagination?.cursor)
|
|
32
|
+
searchParams.set('cursor', pagination.cursor);
|
|
33
|
+
if (pagination?.limit)
|
|
34
|
+
searchParams.set('limit', pagination.limit.toString());
|
|
35
|
+
if (pagination?.sortOrder)
|
|
36
|
+
searchParams.set('sortOrder', pagination.sortOrder);
|
|
37
|
+
// Map resolveData to internal RemoteRefBehavior
|
|
38
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
39
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
40
|
+
const queryString = searchParams.toString();
|
|
41
|
+
const endpoint = `/v1/runs/${runId}/steps${queryString ? `?${queryString}` : ''}`;
|
|
42
|
+
const response = (await makeRequest({
|
|
43
|
+
endpoint,
|
|
44
|
+
options: { method: 'GET' },
|
|
45
|
+
config,
|
|
46
|
+
schema: PaginatedResponseSchema(remoteRefBehavior === 'lazy' ? StepWithRefsSchema : StepSchema),
|
|
47
|
+
}));
|
|
48
|
+
return {
|
|
49
|
+
...response,
|
|
50
|
+
data: response.data.map((step) => filterStepData(step, resolveData)),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export async function createStep(runId, data, config) {
|
|
54
|
+
return makeRequest({
|
|
55
|
+
endpoint: `/v1/runs/${runId}/steps`,
|
|
56
|
+
options: {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
body: JSON.stringify(data, dateToStringReplacer),
|
|
59
|
+
},
|
|
60
|
+
config,
|
|
61
|
+
schema: StepSchema,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
export async function updateStep(runId, stepId, data, config) {
|
|
65
|
+
return makeRequest({
|
|
66
|
+
endpoint: `/v1/runs/${runId}/steps/${stepId}`,
|
|
67
|
+
options: {
|
|
68
|
+
method: 'PUT',
|
|
69
|
+
body: JSON.stringify(data, dateToStringReplacer),
|
|
70
|
+
},
|
|
71
|
+
config,
|
|
72
|
+
schema: StepSchema,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export async function getStep(runId, stepId, params, config) {
|
|
76
|
+
const resolveData = params?.resolveData ?? DEFAULT_RESOLVE_DATA_OPTION;
|
|
77
|
+
const remoteRefBehavior = resolveData === 'none' ? 'lazy' : 'resolve';
|
|
78
|
+
const searchParams = new URLSearchParams();
|
|
79
|
+
searchParams.set('remoteRefBehavior', remoteRefBehavior);
|
|
80
|
+
const queryString = searchParams.toString();
|
|
81
|
+
const endpoint = runId
|
|
82
|
+
? `/v1/runs/${runId}/steps/${stepId}${queryString ? `?${queryString}` : ''}`
|
|
83
|
+
: `/v1/steps/${stepId}${queryString ? `?${queryString}` : ''}`;
|
|
84
|
+
const step = await makeRequest({
|
|
85
|
+
endpoint,
|
|
86
|
+
options: { method: 'GET' },
|
|
87
|
+
config,
|
|
88
|
+
schema: (remoteRefBehavior === 'lazy'
|
|
89
|
+
? StepWithRefsSchema
|
|
90
|
+
: StepSchema),
|
|
91
|
+
});
|
|
92
|
+
return filterStepData(step, resolveData);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../src/steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAyB7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,YAAY,CAoCxE"}
|
package/dist/storage.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { checkHealth, getAuthInfo } from './auth.js';
|
|
2
|
+
import { createWorkflowRunEvent, getWorkflowRunEvents } from './events.js';
|
|
3
|
+
import { createHook, disposeHook, getHook, getHookByToken, listHooks, } from './hooks.js';
|
|
4
|
+
import { cancelWorkflowRun, createWorkflowRun, getWorkflowRun, listWorkflowRuns, pauseWorkflowRun, resumeWorkflowRun, updateWorkflowRun, } from './runs.js';
|
|
5
|
+
import { createStep, getStep, listWorkflowRunSteps, updateStep, } from './steps.js';
|
|
6
|
+
export function createStorage(config) {
|
|
7
|
+
return {
|
|
8
|
+
// AuthProvider interface
|
|
9
|
+
getAuthInfo: () => getAuthInfo(config),
|
|
10
|
+
checkHealth: () => checkHealth(config),
|
|
11
|
+
// Storage interface with namespaced methods
|
|
12
|
+
runs: {
|
|
13
|
+
create: (data) => createWorkflowRun(data, config),
|
|
14
|
+
get: (id, params) => getWorkflowRun(id, params, config),
|
|
15
|
+
update: (id, data) => updateWorkflowRun(id, data, config),
|
|
16
|
+
list: (params) => listWorkflowRuns(params, config),
|
|
17
|
+
cancel: (id, params) => cancelWorkflowRun(id, params, config),
|
|
18
|
+
pause: (id, params) => pauseWorkflowRun(id, params, config),
|
|
19
|
+
resume: (id, params) => resumeWorkflowRun(id, params, config),
|
|
20
|
+
},
|
|
21
|
+
steps: {
|
|
22
|
+
create: (runId, data) => createStep(runId, data, config),
|
|
23
|
+
get: (runId, stepId, params) => getStep(runId, stepId, params, config),
|
|
24
|
+
update: (runId, stepId, data) => updateStep(runId, stepId, data, config),
|
|
25
|
+
list: (params) => listWorkflowRunSteps(params, config),
|
|
26
|
+
},
|
|
27
|
+
events: {
|
|
28
|
+
create: (runId, data, params) => createWorkflowRunEvent(runId, data, params, config),
|
|
29
|
+
list: (params) => getWorkflowRunEvents(params, config),
|
|
30
|
+
listByCorrelationId: (params) => getWorkflowRunEvents(params, config),
|
|
31
|
+
},
|
|
32
|
+
hooks: {
|
|
33
|
+
create: (runId, data) => createHook(runId, data, config),
|
|
34
|
+
get: (hookId, params) => getHook(hookId, params, config),
|
|
35
|
+
getByToken: (token) => getHookByToken(token, config),
|
|
36
|
+
list: (params) => listHooks(params, config),
|
|
37
|
+
dispose: (hookId) => disposeHook(hookId, config),
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,cAAc,EACd,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,UAAU,EACV,OAAO,EACP,oBAAoB,EACpB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,OAAO;QACL,yBAAyB;QACzB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;QACtC,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;QAEtC,4CAA4C;QAC5C,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC;YACjD,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC;YACvD,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC;YACzD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;YAClD,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC;YAC7D,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC;YAC3D,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC;SAC9D;QACD,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;YACxD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACtE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;YACxE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;SACvD;QACD,MAAM,EAAE;YACN,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAC9B,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YACrD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;YACtD,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;SACtE;QACD,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;YACxD,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACxD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;YACpD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;YAC3C,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;SACjD;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamer.d.ts","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,YAAY,CAAC;AAM5E,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAgC3D"}
|
package/dist/streamer.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { getHttpConfig } from './utils.js';
|
|
2
|
+
function getStreamUrl(name, httpConfig) {
|
|
3
|
+
return new URL(`${httpConfig.baseUrl}/v1/stream/${encodeURIComponent(name)}`);
|
|
4
|
+
}
|
|
5
|
+
export function createStreamer(config) {
|
|
6
|
+
return {
|
|
7
|
+
async writeToStream(name, chunk) {
|
|
8
|
+
const httpConfig = await getHttpConfig(config);
|
|
9
|
+
await fetch(getStreamUrl(name, httpConfig), {
|
|
10
|
+
method: 'PUT',
|
|
11
|
+
body: chunk,
|
|
12
|
+
headers: httpConfig.headers,
|
|
13
|
+
duplex: 'half',
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
async closeStream(name) {
|
|
17
|
+
const httpConfig = await getHttpConfig(config);
|
|
18
|
+
httpConfig.headers.set('X-Stream-Done', 'true');
|
|
19
|
+
await fetch(getStreamUrl(name, httpConfig), {
|
|
20
|
+
method: 'PUT',
|
|
21
|
+
headers: httpConfig.headers,
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
async readFromStream(name, startIndex) {
|
|
25
|
+
const httpConfig = await getHttpConfig(config);
|
|
26
|
+
const url = getStreamUrl(name, httpConfig);
|
|
27
|
+
if (typeof startIndex === 'number') {
|
|
28
|
+
url.searchParams.set('startIndex', String(startIndex));
|
|
29
|
+
}
|
|
30
|
+
const res = await fetch(url, { headers: httpConfig.headers });
|
|
31
|
+
if (!res.ok)
|
|
32
|
+
throw new Error(`Failed to fetch stream: ${res.status}`);
|
|
33
|
+
return res.body;
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=streamer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamer.js","sourceRoot":"","sources":["../src/streamer.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,aAAa,EAAmB,MAAM,YAAY,CAAC;AAE5E,SAAS,YAAY,CAAC,IAAY,EAAE,UAAsB;IACxD,OAAO,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,cAAc,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,OAAO;QACL,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK;YAC7B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;gBAC1C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,IAAI;YACpB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;gBAC1C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU;YACnC,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC3C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACnC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,OAAO,GAAG,CAAC,IAAkC,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type z } from 'zod';
|
|
2
|
+
export interface APIConfig {
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
token?: string;
|
|
5
|
+
headers?: RequestInit['headers'];
|
|
6
|
+
projectConfig?: {
|
|
7
|
+
projectId?: string;
|
|
8
|
+
teamId?: string;
|
|
9
|
+
environment?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export declare const DEFAULT_RESOLVE_DATA_OPTION = "all";
|
|
13
|
+
export declare function dateToStringReplacer(_key: string, value: unknown): unknown;
|
|
14
|
+
export interface HttpConfig {
|
|
15
|
+
baseUrl: string;
|
|
16
|
+
headers: Headers;
|
|
17
|
+
}
|
|
18
|
+
export declare function getHttpConfig(config?: APIConfig): Promise<HttpConfig>;
|
|
19
|
+
export declare function makeRequest<T>({ endpoint, options, config, schema, }: {
|
|
20
|
+
endpoint: string;
|
|
21
|
+
options?: RequestInit;
|
|
22
|
+
config?: APIConfig;
|
|
23
|
+
schema: z.ZodSchema<T>;
|
|
24
|
+
}): Promise<T>;
|
|
25
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAK1E;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC3E;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,EACnC,QAAQ,EACR,OAAY,EACZ,MAAW,EACX,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CACxB,GAAG,OAAO,CAAC,CAAC,CAAC,CA0Cb"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { getVercelOidcToken } from '@vercel/oidc';
|
|
2
|
+
import { WorkflowAPIError } from '@workflow/errors';
|
|
3
|
+
import { ZodError } from 'zod';
|
|
4
|
+
export const DEFAULT_RESOLVE_DATA_OPTION = 'all';
|
|
5
|
+
export function dateToStringReplacer(_key, value) {
|
|
6
|
+
if (value instanceof Date) {
|
|
7
|
+
return value.toISOString();
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
export async function getHttpConfig(config) {
|
|
12
|
+
const projectConfig = config?.projectConfig;
|
|
13
|
+
const headers = new Headers(config?.headers);
|
|
14
|
+
if (projectConfig) {
|
|
15
|
+
headers.set('x-vercel-environment', projectConfig.environment || 'production');
|
|
16
|
+
if (projectConfig.projectId) {
|
|
17
|
+
headers.set('x-vercel-project-id', projectConfig.projectId);
|
|
18
|
+
}
|
|
19
|
+
if (projectConfig.teamId) {
|
|
20
|
+
headers.set('x-vercel-team-id', projectConfig.teamId);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const token = config?.token ?? (await getVercelOidcToken());
|
|
24
|
+
if (token) {
|
|
25
|
+
headers.set('Authorization', `Bearer ${token}`);
|
|
26
|
+
}
|
|
27
|
+
let baseUrl = config?.baseUrl;
|
|
28
|
+
if (!baseUrl) {
|
|
29
|
+
// If projectConfig is provided (only necessary outside of vercel deployments),
|
|
30
|
+
// we default the baseUrl to the API proxy
|
|
31
|
+
const shouldUseProxy = projectConfig?.projectId && projectConfig?.teamId;
|
|
32
|
+
baseUrl = shouldUseProxy
|
|
33
|
+
? `https://api.vercel.com/v1/workflow`
|
|
34
|
+
: 'https://vercel-workflow.com/api';
|
|
35
|
+
}
|
|
36
|
+
return { baseUrl, headers };
|
|
37
|
+
}
|
|
38
|
+
export async function makeRequest({ endpoint, options = {}, config = {}, schema, }) {
|
|
39
|
+
const { baseUrl, headers } = await getHttpConfig(config);
|
|
40
|
+
headers.set('Content-Type', 'application/json');
|
|
41
|
+
const url = `${baseUrl}${endpoint}`;
|
|
42
|
+
const response = await fetch(url, {
|
|
43
|
+
...options,
|
|
44
|
+
headers,
|
|
45
|
+
});
|
|
46
|
+
if (!response.ok) {
|
|
47
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
48
|
+
if (process.env.DEBUG === '1') {
|
|
49
|
+
const stringifiedHeaders = Array.from(headers.entries())
|
|
50
|
+
.map(([key, value]) => `-H "${key}: ${value}"`)
|
|
51
|
+
.join(' ');
|
|
52
|
+
console.error(`Failed to fetch, reproduce with:\ncurl -X ${options.method} ${stringifiedHeaders} "${url}"`);
|
|
53
|
+
}
|
|
54
|
+
throw new WorkflowAPIError(errorData.message ||
|
|
55
|
+
`${options.method ?? 'GET'} ${endpoint} -> HTTP ${response.status}: ${response.statusText}`, { url, status: response.status, code: errorData.code });
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
const text = await response.text();
|
|
59
|
+
return schema.parse(JSON.parse(text));
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
if (error instanceof ZodError) {
|
|
63
|
+
throw new WorkflowAPIError(`Failed to parse server response for ${options.method ?? 'GET'} ${endpoint}: ${error.message}`, { url, cause: error });
|
|
64
|
+
}
|
|
65
|
+
throw new WorkflowAPIError(`Failed to parse server response for ${options.method ?? 'GET'} ${endpoint}`, { url, cause: error });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@workflow/world-vercel",
|
|
3
|
+
"version": "4.0.1-beta.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@vercel/oidc": "^3.0.3",
|
|
20
|
+
"@vercel/queue": "0.0.0-alpha.24",
|
|
21
|
+
"zod": "4.1.11",
|
|
22
|
+
"@workflow/world": "4.0.1-beta.0",
|
|
23
|
+
"@workflow/errors": "4.0.1-beta.0"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@types/node": "24.6.2",
|
|
27
|
+
"@workflow/tsconfig": "4.0.1-beta.0"
|
|
28
|
+
},
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsc",
|
|
31
|
+
"dev": "tsc --watch",
|
|
32
|
+
"clean": "tsc --build --clean",
|
|
33
|
+
"test": "echo 'No tests yet'",
|
|
34
|
+
"typecheck": "tsc --noEmit"
|
|
35
|
+
}
|
|
36
|
+
}
|