@warlok-net/core 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/dist/index.js ADDED
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ AnimationRequestSchema: () => AnimationRequestSchema,
24
+ ApiKeyCreatedResponseSchema: () => ApiKeyCreatedResponseSchema,
25
+ ApiKeySchema: () => ApiKeySchema,
26
+ ApiResponseSchema: () => ApiResponseSchema,
27
+ AssetStatusSchema: () => AssetStatusSchema,
28
+ AssetTypeSchema: () => AssetTypeSchema,
29
+ CreateApiKeyRequestSchema: () => CreateApiKeyRequestSchema,
30
+ CreateGenerationV2RequestSchema: () => CreateGenerationV2RequestSchema,
31
+ GeneratedAssetSchema: () => GeneratedAssetSchema,
32
+ GenerationEntityTypeSchema: () => GenerationEntityTypeSchema,
33
+ GenerationInputSchema: () => GenerationInputSchema,
34
+ GenerationProvenanceSchema: () => GenerationProvenanceSchema,
35
+ GenerationRequestSchema: () => GenerationRequestSchema,
36
+ GenerationStageSchema: () => GenerationStageSchema,
37
+ GenerationV2Schema: () => GenerationV2Schema,
38
+ UserSchema: () => UserSchema,
39
+ UserTierSchema: () => UserTierSchema,
40
+ config: () => config
41
+ });
42
+ module.exports = __toCommonJS(index_exports);
43
+
44
+ // src/config/index.ts
45
+ var config = {
46
+ api: {
47
+ baseUrl: process.env.WARLOK_API_URL || "http://localhost:3002",
48
+ timeout: 3e4
49
+ },
50
+ services: {
51
+ trellis: {
52
+ url: process.env.TRELLIS_SERVICE_URL || process.env.GENERATION_CORE_URL || "http://localhost:8000",
53
+ timeout: 12e4
54
+ },
55
+ unirig: {
56
+ url: process.env.UNIRIG_SERVICE_URL || process.env.GENERATION_CORE_URL || "http://localhost:8000",
57
+ timeout: 6e4
58
+ }
59
+ },
60
+ storage: {
61
+ bucket: process.env.GCS_BUCKET || "warlok-assets-dev",
62
+ publicUrl: process.env.ASSET_PUBLIC_URL || "http://localhost:9000"
63
+ }
64
+ };
65
+
66
+ // src/types/index.ts
67
+ var import_zod = require("zod");
68
+ var UserTierSchema = import_zod.z.enum(["free", "pro", "enterprise"]);
69
+ var UserSchema = import_zod.z.object({
70
+ id: import_zod.z.string(),
71
+ email: import_zod.z.string().email(),
72
+ name: import_zod.z.string().nullable(),
73
+ tier: UserTierSchema,
74
+ generationCredits: import_zod.z.number(),
75
+ imageUrl: import_zod.z.string().nullable(),
76
+ createdAt: import_zod.z.string().datetime(),
77
+ updatedAt: import_zod.z.string().datetime()
78
+ });
79
+ var ApiKeySchema = import_zod.z.object({
80
+ id: import_zod.z.string().uuid(),
81
+ userId: import_zod.z.string(),
82
+ name: import_zod.z.string(),
83
+ keyPrefix: import_zod.z.string(),
84
+ scopes: import_zod.z.array(import_zod.z.string()),
85
+ lastUsedAt: import_zod.z.string().datetime().nullable(),
86
+ expiresAt: import_zod.z.string().datetime().nullable(),
87
+ createdAt: import_zod.z.string().datetime()
88
+ });
89
+ var CreateApiKeyRequestSchema = import_zod.z.object({
90
+ name: import_zod.z.string().min(1).max(100),
91
+ scopes: import_zod.z.array(import_zod.z.string()).default(["generate", "read"]),
92
+ expiresInDays: import_zod.z.number().optional()
93
+ });
94
+ var ApiKeyCreatedResponseSchema = import_zod.z.object({
95
+ apiKey: ApiKeySchema,
96
+ secretKey: import_zod.z.string()
97
+ // Only returned on creation
98
+ });
99
+ var AssetTypeSchema = import_zod.z.enum([
100
+ "character",
101
+ "prop",
102
+ "environment",
103
+ "vehicle",
104
+ "creature",
105
+ "weapon",
106
+ "material"
107
+ ]);
108
+ var GenerationEntityTypeSchema = import_zod.z.enum([
109
+ "noun",
110
+ "person",
111
+ "place",
112
+ "thing"
113
+ ]);
114
+ var GenerationInputSchema = import_zod.z.object({
115
+ prompt: import_zod.z.string().min(1).optional(),
116
+ imageUrl: import_zod.z.string().url().optional(),
117
+ imageBase64: import_zod.z.string().optional()
118
+ }).refine((data) => data.prompt || data.imageUrl || data.imageBase64, {
119
+ message: "Either prompt, imageUrl, or imageBase64 is required"
120
+ });
121
+ var CreateGenerationV2RequestSchema = import_zod.z.object({
122
+ name: import_zod.z.string().min(1).max(100).optional(),
123
+ entityType: GenerationEntityTypeSchema,
124
+ input: GenerationInputSchema,
125
+ options: import_zod.z.object({
126
+ // Applies only to person entities.
127
+ rigForMixamo: import_zod.z.boolean().default(true),
128
+ // Applies only to person entities.
129
+ includeTpose: import_zod.z.boolean().default(true),
130
+ optimize: import_zod.z.boolean().default(true)
131
+ }).default({})
132
+ });
133
+ var GenerationStageSchema = import_zod.z.enum([
134
+ "pending",
135
+ "preprocessing",
136
+ "generating",
137
+ "rigging",
138
+ "complete",
139
+ "failed"
140
+ ]);
141
+ var GenerationProvenanceSchema = import_zod.z.object({
142
+ preprocessService: import_zod.z.string().optional(),
143
+ preprocessJobId: import_zod.z.string().optional(),
144
+ preprocessSourceMode: import_zod.z.string().optional(),
145
+ preprocessPromptImageUrl: import_zod.z.string().optional(),
146
+ preprocessProcessedImageUrl: import_zod.z.string().optional(),
147
+ preprocessPromptImageProvider: import_zod.z.string().optional(),
148
+ preprocessPromptImageNotes: import_zod.z.string().optional(),
149
+ preprocessTposePrompt: import_zod.z.string().optional(),
150
+ preprocessAnalysisProvider: import_zod.z.string().optional(),
151
+ preprocessBackgroundRemovalProvider: import_zod.z.string().optional(),
152
+ preprocessDescriptionEnhancementProvider: import_zod.z.string().optional(),
153
+ trellisService: import_zod.z.string().optional(),
154
+ trellisJobId: import_zod.z.string().optional(),
155
+ trellisBackendMetadata: import_zod.z.any().optional(),
156
+ unirigService: import_zod.z.string().optional(),
157
+ unirigJobId: import_zod.z.string().optional(),
158
+ pipelineVersion: import_zod.z.string().optional()
159
+ });
160
+ var GenerationV2Schema = import_zod.z.object({
161
+ id: import_zod.z.string().uuid(),
162
+ name: import_zod.z.string(),
163
+ entityType: GenerationEntityTypeSchema,
164
+ status: GenerationStageSchema,
165
+ progress: import_zod.z.number().min(0).max(100),
166
+ input: import_zod.z.object({
167
+ prompt: import_zod.z.string().optional().nullable(),
168
+ hasImage: import_zod.z.boolean(),
169
+ imageUrl: import_zod.z.string().optional().nullable()
170
+ }),
171
+ options: import_zod.z.object({
172
+ rigForMixamo: import_zod.z.boolean(),
173
+ includeTpose: import_zod.z.boolean(),
174
+ optimize: import_zod.z.boolean()
175
+ }),
176
+ outputs: import_zod.z.object({
177
+ previewPngUrl: import_zod.z.string().optional().nullable(),
178
+ promptImageUrl: import_zod.z.string().optional().nullable(),
179
+ modelUrl: import_zod.z.string().optional().nullable(),
180
+ riggedModelUrl: import_zod.z.string().optional().nullable(),
181
+ mixamoReady: import_zod.z.boolean()
182
+ }),
183
+ provenance: GenerationProvenanceSchema.optional(),
184
+ error: import_zod.z.string().optional().nullable(),
185
+ createdAt: import_zod.z.string().datetime(),
186
+ updatedAt: import_zod.z.string().datetime()
187
+ });
188
+ var AssetStatusSchema = import_zod.z.enum([
189
+ "pending",
190
+ "preprocessing",
191
+ "generating",
192
+ "rigging",
193
+ "complete",
194
+ "failed"
195
+ ]);
196
+ var GeneratedAssetSchema = import_zod.z.object({
197
+ id: import_zod.z.string().uuid(),
198
+ name: import_zod.z.string(),
199
+ type: AssetTypeSchema,
200
+ status: AssetStatusSchema,
201
+ sourceImage: import_zod.z.string().url().optional(),
202
+ sourcePrompt: import_zod.z.string().optional(),
203
+ modelUrl: import_zod.z.string().url().optional(),
204
+ riggedModelUrl: import_zod.z.string().url().optional(),
205
+ thumbnailUrl: import_zod.z.string().url().optional(),
206
+ animations: import_zod.z.array(
207
+ import_zod.z.object({
208
+ id: import_zod.z.string(),
209
+ name: import_zod.z.string(),
210
+ url: import_zod.z.string().url(),
211
+ duration: import_zod.z.number()
212
+ })
213
+ ).default([]),
214
+ metadata: import_zod.z.object({
215
+ polyCount: import_zod.z.number().optional(),
216
+ textureResolution: import_zod.z.string().optional(),
217
+ fileSize: import_zod.z.number().optional(),
218
+ generatedAt: import_zod.z.string().datetime(),
219
+ generationTime: import_zod.z.number().optional()
220
+ }),
221
+ createdAt: import_zod.z.string().datetime(),
222
+ updatedAt: import_zod.z.string().datetime()
223
+ });
224
+ var GenerationRequestSchema = import_zod.z.object({
225
+ type: AssetTypeSchema,
226
+ name: import_zod.z.string().min(1).max(100),
227
+ prompt: import_zod.z.string().optional(),
228
+ imageUrl: import_zod.z.string().url().optional(),
229
+ imageBase64: import_zod.z.string().optional(),
230
+ options: import_zod.z.object({
231
+ autoRig: import_zod.z.boolean().default(true),
232
+ targetFormat: import_zod.z.enum(["glb", "gltf", "fbx"]).default("glb"),
233
+ textureResolution: import_zod.z.enum(["512", "1024", "2048"]).default("1024"),
234
+ optimize: import_zod.z.boolean().default(true)
235
+ }).default({})
236
+ }).refine((data) => data.prompt || data.imageUrl || data.imageBase64, {
237
+ message: "Either prompt, imageUrl, or imageBase64 is required"
238
+ });
239
+ var AnimationRequestSchema = import_zod.z.object({
240
+ assetId: import_zod.z.string().uuid(),
241
+ animationType: import_zod.z.enum(["mixamo", "generated", "custom"]),
242
+ animationName: import_zod.z.string().optional(),
243
+ prompt: import_zod.z.string().optional(),
244
+ mixamoId: import_zod.z.string().optional()
245
+ });
246
+ var ApiResponseSchema = (dataSchema) => import_zod.z.object({
247
+ success: import_zod.z.boolean(),
248
+ data: dataSchema.optional(),
249
+ error: import_zod.z.object({
250
+ code: import_zod.z.string(),
251
+ message: import_zod.z.string()
252
+ }).optional()
253
+ });
254
+ // Annotate the CommonJS export names for ESM import in node:
255
+ 0 && (module.exports = {
256
+ AnimationRequestSchema,
257
+ ApiKeyCreatedResponseSchema,
258
+ ApiKeySchema,
259
+ ApiResponseSchema,
260
+ AssetStatusSchema,
261
+ AssetTypeSchema,
262
+ CreateApiKeyRequestSchema,
263
+ CreateGenerationV2RequestSchema,
264
+ GeneratedAssetSchema,
265
+ GenerationEntityTypeSchema,
266
+ GenerationInputSchema,
267
+ GenerationProvenanceSchema,
268
+ GenerationRequestSchema,
269
+ GenerationStageSchema,
270
+ GenerationV2Schema,
271
+ UserSchema,
272
+ UserTierSchema,
273
+ config
274
+ });
package/dist/index.mjs ADDED
@@ -0,0 +1,230 @@
1
+ // src/config/index.ts
2
+ var config = {
3
+ api: {
4
+ baseUrl: process.env.WARLOK_API_URL || "http://localhost:3002",
5
+ timeout: 3e4
6
+ },
7
+ services: {
8
+ trellis: {
9
+ url: process.env.TRELLIS_SERVICE_URL || process.env.GENERATION_CORE_URL || "http://localhost:8000",
10
+ timeout: 12e4
11
+ },
12
+ unirig: {
13
+ url: process.env.UNIRIG_SERVICE_URL || process.env.GENERATION_CORE_URL || "http://localhost:8000",
14
+ timeout: 6e4
15
+ }
16
+ },
17
+ storage: {
18
+ bucket: process.env.GCS_BUCKET || "warlok-assets-dev",
19
+ publicUrl: process.env.ASSET_PUBLIC_URL || "http://localhost:9000"
20
+ }
21
+ };
22
+
23
+ // src/types/index.ts
24
+ import { z } from "zod";
25
+ var UserTierSchema = z.enum(["free", "pro", "enterprise"]);
26
+ var UserSchema = z.object({
27
+ id: z.string(),
28
+ email: z.string().email(),
29
+ name: z.string().nullable(),
30
+ tier: UserTierSchema,
31
+ generationCredits: z.number(),
32
+ imageUrl: z.string().nullable(),
33
+ createdAt: z.string().datetime(),
34
+ updatedAt: z.string().datetime()
35
+ });
36
+ var ApiKeySchema = z.object({
37
+ id: z.string().uuid(),
38
+ userId: z.string(),
39
+ name: z.string(),
40
+ keyPrefix: z.string(),
41
+ scopes: z.array(z.string()),
42
+ lastUsedAt: z.string().datetime().nullable(),
43
+ expiresAt: z.string().datetime().nullable(),
44
+ createdAt: z.string().datetime()
45
+ });
46
+ var CreateApiKeyRequestSchema = z.object({
47
+ name: z.string().min(1).max(100),
48
+ scopes: z.array(z.string()).default(["generate", "read"]),
49
+ expiresInDays: z.number().optional()
50
+ });
51
+ var ApiKeyCreatedResponseSchema = z.object({
52
+ apiKey: ApiKeySchema,
53
+ secretKey: z.string()
54
+ // Only returned on creation
55
+ });
56
+ var AssetTypeSchema = z.enum([
57
+ "character",
58
+ "prop",
59
+ "environment",
60
+ "vehicle",
61
+ "creature",
62
+ "weapon",
63
+ "material"
64
+ ]);
65
+ var GenerationEntityTypeSchema = z.enum([
66
+ "noun",
67
+ "person",
68
+ "place",
69
+ "thing"
70
+ ]);
71
+ var GenerationInputSchema = z.object({
72
+ prompt: z.string().min(1).optional(),
73
+ imageUrl: z.string().url().optional(),
74
+ imageBase64: z.string().optional()
75
+ }).refine((data) => data.prompt || data.imageUrl || data.imageBase64, {
76
+ message: "Either prompt, imageUrl, or imageBase64 is required"
77
+ });
78
+ var CreateGenerationV2RequestSchema = z.object({
79
+ name: z.string().min(1).max(100).optional(),
80
+ entityType: GenerationEntityTypeSchema,
81
+ input: GenerationInputSchema,
82
+ options: z.object({
83
+ // Applies only to person entities.
84
+ rigForMixamo: z.boolean().default(true),
85
+ // Applies only to person entities.
86
+ includeTpose: z.boolean().default(true),
87
+ optimize: z.boolean().default(true)
88
+ }).default({})
89
+ });
90
+ var GenerationStageSchema = z.enum([
91
+ "pending",
92
+ "preprocessing",
93
+ "generating",
94
+ "rigging",
95
+ "complete",
96
+ "failed"
97
+ ]);
98
+ var GenerationProvenanceSchema = z.object({
99
+ preprocessService: z.string().optional(),
100
+ preprocessJobId: z.string().optional(),
101
+ preprocessSourceMode: z.string().optional(),
102
+ preprocessPromptImageUrl: z.string().optional(),
103
+ preprocessProcessedImageUrl: z.string().optional(),
104
+ preprocessPromptImageProvider: z.string().optional(),
105
+ preprocessPromptImageNotes: z.string().optional(),
106
+ preprocessTposePrompt: z.string().optional(),
107
+ preprocessAnalysisProvider: z.string().optional(),
108
+ preprocessBackgroundRemovalProvider: z.string().optional(),
109
+ preprocessDescriptionEnhancementProvider: z.string().optional(),
110
+ trellisService: z.string().optional(),
111
+ trellisJobId: z.string().optional(),
112
+ trellisBackendMetadata: z.any().optional(),
113
+ unirigService: z.string().optional(),
114
+ unirigJobId: z.string().optional(),
115
+ pipelineVersion: z.string().optional()
116
+ });
117
+ var GenerationV2Schema = z.object({
118
+ id: z.string().uuid(),
119
+ name: z.string(),
120
+ entityType: GenerationEntityTypeSchema,
121
+ status: GenerationStageSchema,
122
+ progress: z.number().min(0).max(100),
123
+ input: z.object({
124
+ prompt: z.string().optional().nullable(),
125
+ hasImage: z.boolean(),
126
+ imageUrl: z.string().optional().nullable()
127
+ }),
128
+ options: z.object({
129
+ rigForMixamo: z.boolean(),
130
+ includeTpose: z.boolean(),
131
+ optimize: z.boolean()
132
+ }),
133
+ outputs: z.object({
134
+ previewPngUrl: z.string().optional().nullable(),
135
+ promptImageUrl: z.string().optional().nullable(),
136
+ modelUrl: z.string().optional().nullable(),
137
+ riggedModelUrl: z.string().optional().nullable(),
138
+ mixamoReady: z.boolean()
139
+ }),
140
+ provenance: GenerationProvenanceSchema.optional(),
141
+ error: z.string().optional().nullable(),
142
+ createdAt: z.string().datetime(),
143
+ updatedAt: z.string().datetime()
144
+ });
145
+ var AssetStatusSchema = z.enum([
146
+ "pending",
147
+ "preprocessing",
148
+ "generating",
149
+ "rigging",
150
+ "complete",
151
+ "failed"
152
+ ]);
153
+ var GeneratedAssetSchema = z.object({
154
+ id: z.string().uuid(),
155
+ name: z.string(),
156
+ type: AssetTypeSchema,
157
+ status: AssetStatusSchema,
158
+ sourceImage: z.string().url().optional(),
159
+ sourcePrompt: z.string().optional(),
160
+ modelUrl: z.string().url().optional(),
161
+ riggedModelUrl: z.string().url().optional(),
162
+ thumbnailUrl: z.string().url().optional(),
163
+ animations: z.array(
164
+ z.object({
165
+ id: z.string(),
166
+ name: z.string(),
167
+ url: z.string().url(),
168
+ duration: z.number()
169
+ })
170
+ ).default([]),
171
+ metadata: z.object({
172
+ polyCount: z.number().optional(),
173
+ textureResolution: z.string().optional(),
174
+ fileSize: z.number().optional(),
175
+ generatedAt: z.string().datetime(),
176
+ generationTime: z.number().optional()
177
+ }),
178
+ createdAt: z.string().datetime(),
179
+ updatedAt: z.string().datetime()
180
+ });
181
+ var GenerationRequestSchema = z.object({
182
+ type: AssetTypeSchema,
183
+ name: z.string().min(1).max(100),
184
+ prompt: z.string().optional(),
185
+ imageUrl: z.string().url().optional(),
186
+ imageBase64: z.string().optional(),
187
+ options: z.object({
188
+ autoRig: z.boolean().default(true),
189
+ targetFormat: z.enum(["glb", "gltf", "fbx"]).default("glb"),
190
+ textureResolution: z.enum(["512", "1024", "2048"]).default("1024"),
191
+ optimize: z.boolean().default(true)
192
+ }).default({})
193
+ }).refine((data) => data.prompt || data.imageUrl || data.imageBase64, {
194
+ message: "Either prompt, imageUrl, or imageBase64 is required"
195
+ });
196
+ var AnimationRequestSchema = z.object({
197
+ assetId: z.string().uuid(),
198
+ animationType: z.enum(["mixamo", "generated", "custom"]),
199
+ animationName: z.string().optional(),
200
+ prompt: z.string().optional(),
201
+ mixamoId: z.string().optional()
202
+ });
203
+ var ApiResponseSchema = (dataSchema) => z.object({
204
+ success: z.boolean(),
205
+ data: dataSchema.optional(),
206
+ error: z.object({
207
+ code: z.string(),
208
+ message: z.string()
209
+ }).optional()
210
+ });
211
+ export {
212
+ AnimationRequestSchema,
213
+ ApiKeyCreatedResponseSchema,
214
+ ApiKeySchema,
215
+ ApiResponseSchema,
216
+ AssetStatusSchema,
217
+ AssetTypeSchema,
218
+ CreateApiKeyRequestSchema,
219
+ CreateGenerationV2RequestSchema,
220
+ GeneratedAssetSchema,
221
+ GenerationEntityTypeSchema,
222
+ GenerationInputSchema,
223
+ GenerationProvenanceSchema,
224
+ GenerationRequestSchema,
225
+ GenerationStageSchema,
226
+ GenerationV2Schema,
227
+ UserSchema,
228
+ UserTierSchema,
229
+ config
230
+ };
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@warlok-net/core",
3
+ "version": "0.1.0",
4
+ "main": "./dist/index.js",
5
+ "types": "./dist/index.d.ts",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.mjs",
10
+ "require": "./dist/index.js"
11
+ },
12
+ "./types": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.mjs",
15
+ "require": "./dist/index.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "dependencies": {
25
+ "zod": "^3.22.0"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^20.19.30",
29
+ "tsup": "^8.0.0",
30
+ "typescript": "^5.3.0"
31
+ },
32
+ "scripts": {
33
+ "build": "tsup src/index.ts --format cjs,esm --dts --clean",
34
+ "dev": "tsup src/index.ts --format cjs,esm --dts --watch",
35
+ "lint": "tsc --noEmit",
36
+ "type-check": "tsc --noEmit"
37
+ },
38
+ "module": "./dist/index.mjs"
39
+ }