@anuragpal02/zcl-contracts 0.9.0 → 0.11.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/assets.d.ts +5 -0
- package/dist/assets.d.ts.map +1 -1
- package/dist/assets.js +1 -1
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -2
- package/dist/generation.d.ts +117 -0
- package/dist/generation.d.ts.map +1 -1
- package/dist/generation.js +37 -1
- package/dist/projects.d.ts +1 -0
- package/dist/projects.d.ts.map +1 -1
- package/dist/projects.js +2 -1
- package/package.json +1 -1
package/dist/assets.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export declare const assetContentTypeSchema: z.ZodEnum<{
|
|
|
21
21
|
"image/png": "image/png";
|
|
22
22
|
"image/jpeg": "image/jpeg";
|
|
23
23
|
"image/webp": "image/webp";
|
|
24
|
+
"video/mp4": "video/mp4";
|
|
24
25
|
}>;
|
|
25
26
|
export declare const assetSchema: z.ZodObject<{
|
|
26
27
|
id: z.ZodString;
|
|
@@ -46,6 +47,7 @@ export declare const assetSchema: z.ZodObject<{
|
|
|
46
47
|
"image/png": "image/png";
|
|
47
48
|
"image/jpeg": "image/jpeg";
|
|
48
49
|
"image/webp": "image/webp";
|
|
50
|
+
"video/mp4": "video/mp4";
|
|
49
51
|
}>;
|
|
50
52
|
byteSize: z.ZodNullable<z.ZodNumber>;
|
|
51
53
|
checksumSha256: z.ZodNullable<z.ZodString>;
|
|
@@ -63,6 +65,7 @@ export declare const createAssetUploadRequestSchema: z.ZodObject<{
|
|
|
63
65
|
"image/png": "image/png";
|
|
64
66
|
"image/jpeg": "image/jpeg";
|
|
65
67
|
"image/webp": "image/webp";
|
|
68
|
+
"video/mp4": "video/mp4";
|
|
66
69
|
}>;
|
|
67
70
|
byteSize: z.ZodNumber;
|
|
68
71
|
}, z.core.$strip>;
|
|
@@ -97,6 +100,7 @@ export declare const createAssetUploadResponseSchema: z.ZodObject<{
|
|
|
97
100
|
"image/png": "image/png";
|
|
98
101
|
"image/jpeg": "image/jpeg";
|
|
99
102
|
"image/webp": "image/webp";
|
|
103
|
+
"video/mp4": "video/mp4";
|
|
100
104
|
}>;
|
|
101
105
|
byteSize: z.ZodNullable<z.ZodNumber>;
|
|
102
106
|
checksumSha256: z.ZodNullable<z.ZodString>;
|
|
@@ -141,6 +145,7 @@ export declare const listAssetsResponseSchema: z.ZodObject<{
|
|
|
141
145
|
"image/png": "image/png";
|
|
142
146
|
"image/jpeg": "image/jpeg";
|
|
143
147
|
"image/webp": "image/webp";
|
|
148
|
+
"video/mp4": "video/mp4";
|
|
144
149
|
}>;
|
|
145
150
|
byteSize: z.ZodNullable<z.ZodNumber>;
|
|
146
151
|
checksumSha256: z.ZodNullable<z.ZodString>;
|
package/dist/assets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,eAAe;;;;;;;;EAQ1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;EAA+D,CAAA;AAC7F,eAAO,MAAM,yBAAyB;;EAAwB,CAAA;AAC9D,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,eAAe;;;;;;;;EAQ1B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;EAA+D,CAAA;AAC7F,eAAO,MAAM,yBAAyB;;EAAwB,CAAA;AAC9D,eAAO,MAAM,sBAAsB;;;;;EAAiE,CAAA;AAEpG,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBtB,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;iBAKzC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG1C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;iBAO3C,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEnC,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAC/C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACrF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACvF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACzF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA"}
|
package/dist/assets.js
CHANGED
|
@@ -11,7 +11,7 @@ export const assetKindSchema = z.enum([
|
|
|
11
11
|
]);
|
|
12
12
|
export const assetStatusSchema = z.enum(['pending_upload', 'available', 'failed', 'deleted']);
|
|
13
13
|
export const uploadableAssetKindSchema = z.enum(['reference']);
|
|
14
|
-
export const assetContentTypeSchema = z.enum(['image/png', 'image/jpeg', 'image/webp']);
|
|
14
|
+
export const assetContentTypeSchema = z.enum(['image/png', 'image/jpeg', 'image/webp', 'video/mp4']);
|
|
15
15
|
export const assetSchema = z.object({
|
|
16
16
|
id: idSchema,
|
|
17
17
|
workspaceId: idSchema,
|
package/dist/client.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { type CreditBalanceResponse } from './credits.js';
|
|
|
4
4
|
import { type CreateWorkspaceRequest, type Workspace, type WorkspaceMembership } from './workspaces.js';
|
|
5
5
|
import { type Asset, type AssetUpload, type CreateAssetUploadRequest, type CreateAssetUploadResponse, type FinalizeAssetUploadRequest, type ListAssetsResponse } from './assets.js';
|
|
6
6
|
import { type CreateProjectRequest, type LedMapResponse, type Project, type UpdateLedMapRequest, type UpdateProjectRequest } from './projects.js';
|
|
7
|
-
import { type CreateGenerationJobRequest, type CreatePanelSetRequest, type EditGenerationJobRequest, type GenerationJobResponse, type GenerationJobStatus, type ListGenerationJobsResponse } from './generation.js';
|
|
7
|
+
import { type CreateGenerationJobRequest, type CreatePanelSetRequest, type CreatePanelSetResponse, type CreateVideoLoopRequest, type EditGenerationJobRequest, type GenerationJobResponse, type GenerationJobStatus, type ListGenerationJobsResponse } from './generation.js';
|
|
8
8
|
import { type DescribeImageRequest, type DescribeImageResponse } from './assistant.js';
|
|
9
9
|
type FetchLike = (request: Request) => Promise<Response>;
|
|
10
10
|
export type ZclApiClientOptions = {
|
|
@@ -79,7 +79,8 @@ export declare function createZclApiClient(options: ZclApiClientOptions): {
|
|
|
79
79
|
generation: {
|
|
80
80
|
create(workspaceId: string, projectId: string, input: CreateGenerationJobRequest): Promise<GenerationJobResponse>;
|
|
81
81
|
edit(workspaceId: string, projectId: string, input: EditGenerationJobRequest): Promise<GenerationJobResponse>;
|
|
82
|
-
createPanelSet(workspaceId: string, projectId: string, input: CreatePanelSetRequest): Promise<
|
|
82
|
+
createPanelSet(workspaceId: string, projectId: string, input: CreatePanelSetRequest): Promise<CreatePanelSetResponse>;
|
|
83
|
+
createVideoLoop(workspaceId: string, projectId: string, input: CreateVideoLoopRequest): Promise<GenerationJobResponse>;
|
|
83
84
|
get(workspaceId: string, projectId: string, jobId: string): Promise<GenerationJobResponse>;
|
|
84
85
|
list(workspaceId: string, projectId: string, options?: {
|
|
85
86
|
status?: GenerationJobStatus;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EASL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,WAAW,CAAA;AAClB,OAAO,EAA2C,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAML,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAA;AACpB,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAA;AACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -5,7 +5,7 @@ import { creditBalanceResponseSchema } from './credits.js';
|
|
|
5
5
|
import { createWorkspaceRequestSchema, workspaceMembershipSchema, workspaceSchema } from './workspaces.js';
|
|
6
6
|
import { assetSchema, createAssetUploadRequestSchema, createAssetUploadResponseSchema, finalizeAssetUploadRequestSchema, listAssetsResponseSchema } from './assets.js';
|
|
7
7
|
import { createProjectRequestSchema, ledMapResponseSchema, projectSchema, updateLedMapRequestSchema, updateProjectRequestSchema } from './projects.js';
|
|
8
|
-
import { createGenerationJobRequestSchema, createPanelSetRequestSchema, editGenerationJobRequestSchema, generationJobResponseSchema, listGenerationJobsResponseSchema } from './generation.js';
|
|
8
|
+
import { createGenerationJobRequestSchema, createPanelSetRequestSchema, createPanelSetResponseSchema, createVideoLoopRequestSchema, editGenerationJobRequestSchema, generationJobResponseSchema, listGenerationJobsResponseSchema } from './generation.js';
|
|
9
9
|
import { describeImageRequestSchema, describeImageResponseSchema } from './assistant.js';
|
|
10
10
|
const workspaceListResponseSchema = listResponseSchema(workspaceSchema.extend({
|
|
11
11
|
membership: workspaceMembershipSchema
|
|
@@ -206,11 +206,15 @@ export function createZclApiClient(options) {
|
|
|
206
206
|
},
|
|
207
207
|
createPanelSet(workspaceId, projectId, input) {
|
|
208
208
|
const body = createPanelSetRequestSchema.parse(input);
|
|
209
|
-
return request(`/workspaces/${workspaceId}/projects/${projectId}/generation-jobs/${body.masterJobId}/panel-set`,
|
|
209
|
+
return request(`/workspaces/${workspaceId}/projects/${projectId}/generation-jobs/${body.masterJobId}/panel-set`, createPanelSetResponseSchema, {
|
|
210
210
|
method: 'POST',
|
|
211
211
|
body
|
|
212
212
|
});
|
|
213
213
|
},
|
|
214
|
+
createVideoLoop(workspaceId, projectId, input) {
|
|
215
|
+
const body = createVideoLoopRequestSchema.parse(input);
|
|
216
|
+
return request(`/workspaces/${workspaceId}/projects/${projectId}/video-loops`, generationJobResponseSchema, { method: 'POST', body });
|
|
217
|
+
},
|
|
214
218
|
get(workspaceId, projectId, jobId) {
|
|
215
219
|
return request(`/workspaces/${workspaceId}/projects/${projectId}/generation-jobs/${jobId}`, generationJobResponseSchema);
|
|
216
220
|
},
|
package/dist/generation.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export declare const generationJobTypeSchema: z.ZodEnum<{
|
|
|
13
13
|
"image.mask": "image.mask";
|
|
14
14
|
"image.export": "image.export";
|
|
15
15
|
"image.panel": "image.panel";
|
|
16
|
+
"video.loop": "video.loop";
|
|
17
|
+
"video.upscale": "video.upscale";
|
|
16
18
|
}>;
|
|
17
19
|
export declare const imageGenerateParamsSchema: z.ZodObject<{
|
|
18
20
|
prompt: z.ZodString;
|
|
@@ -31,6 +33,26 @@ export declare const createPanelSetRequestSchema: z.ZodObject<{
|
|
|
31
33
|
masterJobId: z.ZodString;
|
|
32
34
|
panelBorders: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
33
35
|
}, z.core.$strip>;
|
|
36
|
+
export declare const cropFractionsSchema: z.ZodObject<{
|
|
37
|
+
x: z.ZodNumber;
|
|
38
|
+
y: z.ZodNumber;
|
|
39
|
+
w: z.ZodNumber;
|
|
40
|
+
h: z.ZodNumber;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
export declare const createVideoLoopRequestSchema: z.ZodObject<{
|
|
43
|
+
sourceAssetId: z.ZodString;
|
|
44
|
+
cropFractions: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
x: z.ZodNumber;
|
|
46
|
+
y: z.ZodNumber;
|
|
47
|
+
w: z.ZodNumber;
|
|
48
|
+
h: z.ZodNumber;
|
|
49
|
+
}, z.core.$strip>>;
|
|
50
|
+
intensity: z.ZodDefault<z.ZodEnum<{
|
|
51
|
+
subtle: "subtle";
|
|
52
|
+
medium: "medium";
|
|
53
|
+
dynamic: "dynamic";
|
|
54
|
+
}>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
34
56
|
export declare const generationJobSchema: z.ZodObject<{
|
|
35
57
|
id: z.ZodString;
|
|
36
58
|
workspaceId: z.ZodString;
|
|
@@ -42,6 +64,8 @@ export declare const generationJobSchema: z.ZodObject<{
|
|
|
42
64
|
"image.mask": "image.mask";
|
|
43
65
|
"image.export": "image.export";
|
|
44
66
|
"image.panel": "image.panel";
|
|
67
|
+
"video.loop": "video.loop";
|
|
68
|
+
"video.upscale": "video.upscale";
|
|
45
69
|
}>;
|
|
46
70
|
status: z.ZodEnum<{
|
|
47
71
|
failed: "failed";
|
|
@@ -82,6 +106,68 @@ export declare const generationJobResponseSchema: z.ZodObject<{
|
|
|
82
106
|
"image.mask": "image.mask";
|
|
83
107
|
"image.export": "image.export";
|
|
84
108
|
"image.panel": "image.panel";
|
|
109
|
+
"video.loop": "video.loop";
|
|
110
|
+
"video.upscale": "video.upscale";
|
|
111
|
+
}>;
|
|
112
|
+
status: z.ZodEnum<{
|
|
113
|
+
failed: "failed";
|
|
114
|
+
queued: "queued";
|
|
115
|
+
running: "running";
|
|
116
|
+
succeeded: "succeeded";
|
|
117
|
+
canceled: "canceled";
|
|
118
|
+
}>;
|
|
119
|
+
provider: z.ZodString;
|
|
120
|
+
params: z.ZodUnknown;
|
|
121
|
+
reservedCredits: z.ZodNumber;
|
|
122
|
+
createdByUserId: z.ZodString;
|
|
123
|
+
createdAt: z.ZodString;
|
|
124
|
+
updatedAt: z.ZodString;
|
|
125
|
+
resultAssetIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
126
|
+
ledMapVersion: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
127
|
+
sourceAssetIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
128
|
+
parentJobId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
129
|
+
variantGroupId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
130
|
+
}, z.core.$strip>;
|
|
131
|
+
}, z.core.$strip>;
|
|
132
|
+
export declare const panelDescriptorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
133
|
+
jobId: z.ZodString;
|
|
134
|
+
panelId: z.ZodString;
|
|
135
|
+
x: z.ZodNumber;
|
|
136
|
+
y: z.ZodNumber;
|
|
137
|
+
width: z.ZodNumber;
|
|
138
|
+
height: z.ZodNumber;
|
|
139
|
+
mode: z.ZodLiteral<"generated">;
|
|
140
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
141
|
+
assetId: z.ZodString;
|
|
142
|
+
panelId: z.ZodString;
|
|
143
|
+
x: z.ZodNumber;
|
|
144
|
+
y: z.ZodNumber;
|
|
145
|
+
width: z.ZodNumber;
|
|
146
|
+
height: z.ZodNumber;
|
|
147
|
+
mode: z.ZodLiteral<"reuse">;
|
|
148
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
149
|
+
sourcePanelId: z.ZodString;
|
|
150
|
+
panelId: z.ZodString;
|
|
151
|
+
x: z.ZodNumber;
|
|
152
|
+
y: z.ZodNumber;
|
|
153
|
+
width: z.ZodNumber;
|
|
154
|
+
height: z.ZodNumber;
|
|
155
|
+
mode: z.ZodLiteral<"mirror">;
|
|
156
|
+
}, z.core.$strip>], "mode">;
|
|
157
|
+
export declare const createPanelSetResponseSchema: z.ZodObject<{
|
|
158
|
+
data: z.ZodObject<{
|
|
159
|
+
id: z.ZodString;
|
|
160
|
+
workspaceId: z.ZodString;
|
|
161
|
+
projectId: z.ZodString;
|
|
162
|
+
type: z.ZodEnum<{
|
|
163
|
+
"image.generate": "image.generate";
|
|
164
|
+
"prompt.enhance": "prompt.enhance";
|
|
165
|
+
"image.edit": "image.edit";
|
|
166
|
+
"image.mask": "image.mask";
|
|
167
|
+
"image.export": "image.export";
|
|
168
|
+
"image.panel": "image.panel";
|
|
169
|
+
"video.loop": "video.loop";
|
|
170
|
+
"video.upscale": "video.upscale";
|
|
85
171
|
}>;
|
|
86
172
|
status: z.ZodEnum<{
|
|
87
173
|
failed: "failed";
|
|
@@ -102,6 +188,31 @@ export declare const generationJobResponseSchema: z.ZodObject<{
|
|
|
102
188
|
parentJobId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
103
189
|
variantGroupId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
104
190
|
}, z.core.$strip>;
|
|
191
|
+
panels: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
192
|
+
jobId: z.ZodString;
|
|
193
|
+
panelId: z.ZodString;
|
|
194
|
+
x: z.ZodNumber;
|
|
195
|
+
y: z.ZodNumber;
|
|
196
|
+
width: z.ZodNumber;
|
|
197
|
+
height: z.ZodNumber;
|
|
198
|
+
mode: z.ZodLiteral<"generated">;
|
|
199
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
200
|
+
assetId: z.ZodString;
|
|
201
|
+
panelId: z.ZodString;
|
|
202
|
+
x: z.ZodNumber;
|
|
203
|
+
y: z.ZodNumber;
|
|
204
|
+
width: z.ZodNumber;
|
|
205
|
+
height: z.ZodNumber;
|
|
206
|
+
mode: z.ZodLiteral<"reuse">;
|
|
207
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
208
|
+
sourcePanelId: z.ZodString;
|
|
209
|
+
panelId: z.ZodString;
|
|
210
|
+
x: z.ZodNumber;
|
|
211
|
+
y: z.ZodNumber;
|
|
212
|
+
width: z.ZodNumber;
|
|
213
|
+
height: z.ZodNumber;
|
|
214
|
+
mode: z.ZodLiteral<"mirror">;
|
|
215
|
+
}, z.core.$strip>], "mode">>;
|
|
105
216
|
}, z.core.$strip>;
|
|
106
217
|
export declare const listGenerationJobsQuerySchema: z.ZodObject<{
|
|
107
218
|
status: z.ZodOptional<z.ZodEnum<{
|
|
@@ -125,6 +236,8 @@ export declare const listGenerationJobsResponseSchema: z.ZodObject<{
|
|
|
125
236
|
"image.mask": "image.mask";
|
|
126
237
|
"image.export": "image.export";
|
|
127
238
|
"image.panel": "image.panel";
|
|
239
|
+
"video.loop": "video.loop";
|
|
240
|
+
"video.upscale": "video.upscale";
|
|
128
241
|
}>;
|
|
129
242
|
status: z.ZodEnum<{
|
|
130
243
|
failed: "failed";
|
|
@@ -151,9 +264,13 @@ export type GenerationJobType = z.infer<typeof generationJobTypeSchema>;
|
|
|
151
264
|
export type ImageGenerateParams = z.infer<typeof imageGenerateParamsSchema>;
|
|
152
265
|
export type EditGenerationJobRequest = z.input<typeof editGenerationJobRequestSchema>;
|
|
153
266
|
export type CreatePanelSetRequest = z.input<typeof createPanelSetRequestSchema>;
|
|
267
|
+
export type CropFractions = z.infer<typeof cropFractionsSchema>;
|
|
268
|
+
export type CreateVideoLoopRequest = z.input<typeof createVideoLoopRequestSchema>;
|
|
154
269
|
export type GenerationJob = z.infer<typeof generationJobSchema>;
|
|
155
270
|
export type CreateGenerationJobRequest = z.input<typeof createGenerationJobRequestSchema>;
|
|
156
271
|
export type ListGenerationJobsQuery = z.input<typeof listGenerationJobsQuerySchema>;
|
|
157
272
|
export type GenerationJobResponse = z.infer<typeof generationJobResponseSchema>;
|
|
158
273
|
export type ListGenerationJobsResponse = z.infer<typeof listGenerationJobsResponseSchema>;
|
|
274
|
+
export type PanelDescriptor = z.infer<typeof panelDescriptorSchema>;
|
|
275
|
+
export type CreatePanelSetResponse = z.infer<typeof createPanelSetResponseSchema>;
|
|
159
276
|
//# sourceMappingURL=generation.d.ts.map
|
package/dist/generation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../src/generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../src/generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,yBAAyB;;;;;;EAAmE,CAAA;AAEzG,eAAO,MAAM,uBAAuB;;;;;;;;;EASlC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;iBAOpC,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;iBAIzC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;iBAMvC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoB9B,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;iBAA4B,CAAA;AAEzE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwC,CAAA;AAehF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;2BAIhC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEvC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;iBAGxC,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE3C,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AACrF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC/E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AACjF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACzF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACnF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC/E,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AACzF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA"}
|
package/dist/generation.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { apiSuccessSchema, idSchema, isoDateSchema } from './common.js';
|
|
3
|
+
import { ledPanelIdSchema } from './projects.js';
|
|
3
4
|
export const generationJobStatusSchema = z.enum(['queued', 'running', 'succeeded', 'failed', 'canceled']);
|
|
4
5
|
export const generationJobTypeSchema = z.enum([
|
|
5
6
|
'image.generate',
|
|
@@ -7,7 +8,9 @@ export const generationJobTypeSchema = z.enum([
|
|
|
7
8
|
'image.edit',
|
|
8
9
|
'image.mask',
|
|
9
10
|
'image.export',
|
|
10
|
-
'image.panel'
|
|
11
|
+
'image.panel',
|
|
12
|
+
'video.loop',
|
|
13
|
+
'video.upscale'
|
|
11
14
|
]);
|
|
12
15
|
export const imageGenerateParamsSchema = z.object({
|
|
13
16
|
prompt: z.string().trim().min(1).max(4000),
|
|
@@ -26,6 +29,19 @@ export const createPanelSetRequestSchema = z.object({
|
|
|
26
29
|
masterJobId: idSchema,
|
|
27
30
|
panelBorders: z.boolean().optional().default(false)
|
|
28
31
|
});
|
|
32
|
+
export const cropFractionsSchema = z.object({
|
|
33
|
+
x: z.number().min(0).max(1),
|
|
34
|
+
y: z.number().min(0).max(1),
|
|
35
|
+
w: z.number().min(0).max(1),
|
|
36
|
+
h: z.number().min(0).max(1)
|
|
37
|
+
});
|
|
38
|
+
export const createVideoLoopRequestSchema = z.object({
|
|
39
|
+
sourceAssetId: idSchema,
|
|
40
|
+
// Content-rect crop fractions within the 1920×1080 letterboxed source (the client computes
|
|
41
|
+
// them when it letterbox-fits the composite). Omitted = no crop (source already 16:9).
|
|
42
|
+
cropFractions: cropFractionsSchema.optional(),
|
|
43
|
+
intensity: z.enum(['subtle', 'medium', 'dynamic']).default('medium')
|
|
44
|
+
});
|
|
29
45
|
export const generationJobSchema = z.object({
|
|
30
46
|
id: idSchema,
|
|
31
47
|
workspaceId: idSchema,
|
|
@@ -49,6 +65,26 @@ export const generationJobSchema = z.object({
|
|
|
49
65
|
});
|
|
50
66
|
export const createGenerationJobRequestSchema = imageGenerateParamsSchema;
|
|
51
67
|
export const generationJobResponseSchema = apiSuccessSchema(generationJobSchema);
|
|
68
|
+
// Geometry every panel carries regardless of mode (a snapshot of its pinned layout, so the
|
|
69
|
+
// web can place reuse/mirror panels that have no job to read params from).
|
|
70
|
+
const panelDescriptorBase = {
|
|
71
|
+
panelId: ledPanelIdSchema,
|
|
72
|
+
x: z.number().int().min(-1000000).max(1000000),
|
|
73
|
+
y: z.number().int().min(-1000000).max(1000000),
|
|
74
|
+
width: z.number().int().positive().max(100000),
|
|
75
|
+
height: z.number().int().positive().max(100000)
|
|
76
|
+
};
|
|
77
|
+
// Discriminated on `mode` so each variant narrows to exactly the id it carries
|
|
78
|
+
// (generated→jobId, reuse→assetId(master), mirror→sourcePanelId(twin)). Consumers branch on
|
|
79
|
+
// `mode` and get a non-optional field — no null-assertions in the compositor.
|
|
80
|
+
export const panelDescriptorSchema = z.discriminatedUnion('mode', [
|
|
81
|
+
z.object({ mode: z.literal('generated'), ...panelDescriptorBase, jobId: idSchema }),
|
|
82
|
+
z.object({ mode: z.literal('reuse'), ...panelDescriptorBase, assetId: idSchema }),
|
|
83
|
+
z.object({ mode: z.literal('mirror'), ...panelDescriptorBase, sourcePanelId: ledPanelIdSchema })
|
|
84
|
+
]);
|
|
85
|
+
export const createPanelSetResponseSchema = generationJobResponseSchema.extend({
|
|
86
|
+
panels: z.array(panelDescriptorSchema)
|
|
87
|
+
});
|
|
52
88
|
export const listGenerationJobsQuerySchema = z.object({
|
|
53
89
|
status: generationJobStatusSchema.optional(),
|
|
54
90
|
variantGroupId: idSchema.optional()
|
package/dist/projects.d.ts
CHANGED
package/dist/projects.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,uBAAuB;;;EAAmC,CAAA;AACvE,eAAO,MAAM,mBAAmB;;;;EAA4C,CAAA;AAE5E,eAAO,MAAM,cAAc;;;;;;;;;iBASzB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;iBAQ1B,CAAA;AAMF,eAAO,MAAM,eAAe;;;;;;;;;kBAGgC,CAAA;AAsB5D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;iBAiCrB,CAAA;AAEJ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBAGpC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiC,CAAA;AAElE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;iBASxB,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;iBAGrC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBASpC,CAAA;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACjD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACnD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,uBAAuB;;;EAAmC,CAAA;AACvE,eAAO,MAAM,mBAAmB;;;;EAA4C,CAAA;AAE5E,eAAO,MAAM,gBAAgB,aAAmC,CAAA;AAEhE,eAAO,MAAM,cAAc;;;;;;;;;iBASzB,CAAA;AAEF,eAAO,MAAM,eAAe;;;;;;;;iBAQ1B,CAAA;AAMF,eAAO,MAAM,eAAe;;;;;;;;;kBAGgC,CAAA;AAsB5D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;iBAiCrB,CAAA;AAEJ,eAAO,MAAM,yBAAyB;;;;;;;;;;;;iBAGpC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiC,CAAA;AAElE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;iBASxB,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;iBAGrC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBASpC,CAAA;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC7E,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AACvD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACjD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACjE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AACnD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
package/dist/projects.js
CHANGED
|
@@ -2,8 +2,9 @@ import { z } from 'zod';
|
|
|
2
2
|
import { apiSuccessSchema, idSchema, isoDateSchema } from './common.js';
|
|
3
3
|
export const projectVisibilitySchema = z.enum(['private', 'workspace']);
|
|
4
4
|
export const projectStatusSchema = z.enum(['active', 'archived', 'deleted']);
|
|
5
|
+
export const ledPanelIdSchema = z.string().trim().min(1).max(80);
|
|
5
6
|
export const ledPanelSchema = z.object({
|
|
6
|
-
id:
|
|
7
|
+
id: ledPanelIdSchema,
|
|
7
8
|
name: z.string().trim().min(1).max(120),
|
|
8
9
|
width: z.number().int().positive().max(100000),
|
|
9
10
|
height: z.number().int().positive().max(100000),
|