@teamflojo/floimg-templates 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/LICENSE +21 -0
- package/README.md +97 -0
- package/dist/index.d.ts +120 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +204 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/ai-workflows.d.ts +42 -0
- package/dist/templates/ai-workflows.d.ts.map +1 -0
- package/dist/templates/ai-workflows.js +392 -0
- package/dist/templates/ai-workflows.js.map +1 -0
- package/dist/templates/data-viz.d.ts +49 -0
- package/dist/templates/data-viz.d.ts.map +1 -0
- package/dist/templates/data-viz.js +476 -0
- package/dist/templates/data-viz.js.map +1 -0
- package/dist/templates/marketing.d.ts +33 -0
- package/dist/templates/marketing.d.ts.map +1 -0
- package/dist/templates/marketing.js +368 -0
- package/dist/templates/marketing.js.map +1 -0
- package/dist/templates/utilities.d.ts +38 -0
- package/dist/templates/utilities.d.ts.map +1 -0
- package/dist/templates/utilities.js +296 -0
- package/dist/templates/utilities.js.map +1 -0
- package/dist/types.d.ts +85 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility Templates
|
|
3
|
+
*
|
|
4
|
+
* QR codes, format conversion, and general-purpose utilities.
|
|
5
|
+
* All templates in this category work offline (OSS-compatible).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Branded QR Code
|
|
9
|
+
* Canonical ID: branded-qr
|
|
10
|
+
* Previous Studio ID: website-qr
|
|
11
|
+
*/
|
|
12
|
+
export const brandedQR = {
|
|
13
|
+
id: "branded-qr",
|
|
14
|
+
name: "Branded QR Code",
|
|
15
|
+
description: "QR code with custom colors and styling to match your brand",
|
|
16
|
+
category: "Utilities",
|
|
17
|
+
generator: "qr",
|
|
18
|
+
tags: ["qr", "branded", "link", "custom", "url"],
|
|
19
|
+
capabilities: {
|
|
20
|
+
studioCompatible: true,
|
|
21
|
+
claudeCodeReady: true,
|
|
22
|
+
},
|
|
23
|
+
icon: "qr",
|
|
24
|
+
preview: {
|
|
25
|
+
imageUrl: "/showcase/qr-codes/qr-brand.png",
|
|
26
|
+
},
|
|
27
|
+
codeExample: `const qr = await floimg.generate({
|
|
28
|
+
generator: 'qr',
|
|
29
|
+
params: {
|
|
30
|
+
data: 'https://floimg.com',
|
|
31
|
+
color: '#0d9488',
|
|
32
|
+
backgroundColor: '#ffffff',
|
|
33
|
+
margin: 2
|
|
34
|
+
}
|
|
35
|
+
});`,
|
|
36
|
+
seo: {
|
|
37
|
+
title: "Branded QR Code Generator",
|
|
38
|
+
description: "Generate QR codes with custom colors to match your brand identity",
|
|
39
|
+
keywords: ["qr code", "branded qr", "custom qr", "marketing"],
|
|
40
|
+
},
|
|
41
|
+
workflow: {
|
|
42
|
+
nodes: [
|
|
43
|
+
{
|
|
44
|
+
id: "gen-1",
|
|
45
|
+
type: "generator",
|
|
46
|
+
position: { x: 100, y: 100 },
|
|
47
|
+
data: {
|
|
48
|
+
generatorName: "qr",
|
|
49
|
+
params: {
|
|
50
|
+
data: "https://floimg.com",
|
|
51
|
+
size: 400,
|
|
52
|
+
margin: 2,
|
|
53
|
+
dark: "#0d9488",
|
|
54
|
+
light: "#ffffff",
|
|
55
|
+
errorCorrectionLevel: "M",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
edges: [],
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Dark Mode QR Code
|
|
65
|
+
* Canonical ID: dark-qr
|
|
66
|
+
*/
|
|
67
|
+
export const darkQR = {
|
|
68
|
+
id: "dark-qr",
|
|
69
|
+
name: "Dark Mode QR",
|
|
70
|
+
description: "QR code optimized for dark backgrounds",
|
|
71
|
+
category: "Utilities",
|
|
72
|
+
generator: "qr",
|
|
73
|
+
tags: ["qr", "dark-mode", "link", "inverted"],
|
|
74
|
+
capabilities: {
|
|
75
|
+
studioCompatible: true,
|
|
76
|
+
claudeCodeReady: true,
|
|
77
|
+
},
|
|
78
|
+
icon: "qr",
|
|
79
|
+
preview: {
|
|
80
|
+
imageUrl: "/showcase/qr-codes/qr-dark.png",
|
|
81
|
+
},
|
|
82
|
+
seo: {
|
|
83
|
+
title: "Dark Mode QR Code",
|
|
84
|
+
description: "QR codes optimized for dark backgrounds and dark mode UIs",
|
|
85
|
+
keywords: ["qr code", "dark mode", "inverted qr", "night mode"],
|
|
86
|
+
},
|
|
87
|
+
workflow: {
|
|
88
|
+
nodes: [
|
|
89
|
+
{
|
|
90
|
+
id: "gen-1",
|
|
91
|
+
type: "generator",
|
|
92
|
+
position: { x: 100, y: 100 },
|
|
93
|
+
data: {
|
|
94
|
+
generatorName: "qr",
|
|
95
|
+
params: {
|
|
96
|
+
data: "https://floimg.com",
|
|
97
|
+
size: 400,
|
|
98
|
+
margin: 2,
|
|
99
|
+
dark: "#ffffff",
|
|
100
|
+
light: "#18181b",
|
|
101
|
+
errorCorrectionLevel: "M",
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
edges: [],
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* WiFi QR Code
|
|
111
|
+
* Canonical ID: wifi-qr
|
|
112
|
+
*/
|
|
113
|
+
export const wifiQR = {
|
|
114
|
+
id: "wifi-qr",
|
|
115
|
+
name: "WiFi QR Code",
|
|
116
|
+
description: "Scannable QR code for WiFi network access",
|
|
117
|
+
category: "Utilities",
|
|
118
|
+
generator: "qr",
|
|
119
|
+
tags: ["qr", "wifi", "network", "guest", "access"],
|
|
120
|
+
capabilities: {
|
|
121
|
+
studioCompatible: true,
|
|
122
|
+
claudeCodeReady: true,
|
|
123
|
+
},
|
|
124
|
+
icon: "qr",
|
|
125
|
+
seo: {
|
|
126
|
+
title: "WiFi QR Code Generator",
|
|
127
|
+
description: "Generate scannable QR codes for easy WiFi network access sharing",
|
|
128
|
+
keywords: ["wifi qr", "network access", "guest wifi", "qr code"],
|
|
129
|
+
},
|
|
130
|
+
workflow: {
|
|
131
|
+
nodes: [
|
|
132
|
+
{
|
|
133
|
+
id: "gen-1",
|
|
134
|
+
type: "generator",
|
|
135
|
+
position: { x: 100, y: 100 },
|
|
136
|
+
data: {
|
|
137
|
+
generatorName: "qr",
|
|
138
|
+
params: {
|
|
139
|
+
data: "WIFI:T:WPA;S:GuestNetwork;P:welcome123;;",
|
|
140
|
+
size: 400,
|
|
141
|
+
margin: 2,
|
|
142
|
+
dark: "#059669",
|
|
143
|
+
light: "#ffffff",
|
|
144
|
+
errorCorrectionLevel: "H",
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
edges: [],
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Thumbnail Generator
|
|
154
|
+
* Canonical ID: thumbnail-generator
|
|
155
|
+
*/
|
|
156
|
+
export const thumbnailGenerator = {
|
|
157
|
+
id: "thumbnail-generator",
|
|
158
|
+
name: "Thumbnail Generator",
|
|
159
|
+
description: "Create multiple thumbnail sizes with automatic optimization",
|
|
160
|
+
category: "Utilities",
|
|
161
|
+
generator: "pipeline",
|
|
162
|
+
tags: ["thumbnail", "resize", "optimize", "batch", "responsive"],
|
|
163
|
+
capabilities: {
|
|
164
|
+
studioCompatible: true,
|
|
165
|
+
claudeCodeReady: true,
|
|
166
|
+
pipeline: true,
|
|
167
|
+
},
|
|
168
|
+
icon: "image",
|
|
169
|
+
preview: {
|
|
170
|
+
imageUrl: "/showcase/pipelines/output/thumb-200.png",
|
|
171
|
+
},
|
|
172
|
+
seo: {
|
|
173
|
+
title: "Thumbnail Generator",
|
|
174
|
+
description: "Generate multiple thumbnail sizes with automatic optimization",
|
|
175
|
+
keywords: ["thumbnail", "image resize", "responsive images", "optimization"],
|
|
176
|
+
},
|
|
177
|
+
workflow: {
|
|
178
|
+
nodes: [
|
|
179
|
+
{
|
|
180
|
+
id: "input-1",
|
|
181
|
+
type: "input",
|
|
182
|
+
position: { x: 100, y: 200 },
|
|
183
|
+
data: {},
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: "transform-800",
|
|
187
|
+
type: "transform",
|
|
188
|
+
position: { x: 400, y: 100 },
|
|
189
|
+
data: {
|
|
190
|
+
operation: "resize",
|
|
191
|
+
params: {
|
|
192
|
+
width: 800,
|
|
193
|
+
fit: "inside",
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
id: "transform-400",
|
|
199
|
+
type: "transform",
|
|
200
|
+
position: { x: 400, y: 200 },
|
|
201
|
+
data: {
|
|
202
|
+
operation: "resize",
|
|
203
|
+
params: {
|
|
204
|
+
width: 400,
|
|
205
|
+
fit: "inside",
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
id: "transform-200",
|
|
211
|
+
type: "transform",
|
|
212
|
+
position: { x: 400, y: 300 },
|
|
213
|
+
data: {
|
|
214
|
+
operation: "resize",
|
|
215
|
+
params: {
|
|
216
|
+
width: 200,
|
|
217
|
+
fit: "inside",
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
edges: [
|
|
223
|
+
{ id: "e1", source: "input-1", target: "transform-800" },
|
|
224
|
+
{ id: "e2", source: "input-1", target: "transform-400" },
|
|
225
|
+
{ id: "e3", source: "input-1", target: "transform-200" },
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Diagram to WebP Conversion
|
|
231
|
+
* Canonical ID: diagram-webp
|
|
232
|
+
*/
|
|
233
|
+
export const diagramWebp = {
|
|
234
|
+
id: "diagram-webp",
|
|
235
|
+
name: "Diagram to WebP",
|
|
236
|
+
description: "Mermaid diagram converted to optimized WebP format",
|
|
237
|
+
category: "Utilities",
|
|
238
|
+
generator: "mermaid",
|
|
239
|
+
tags: ["mermaid", "webp", "optimize", "pipeline", "conversion"],
|
|
240
|
+
capabilities: {
|
|
241
|
+
studioCompatible: true,
|
|
242
|
+
claudeCodeReady: true,
|
|
243
|
+
pipeline: true,
|
|
244
|
+
},
|
|
245
|
+
icon: "diagram",
|
|
246
|
+
seo: {
|
|
247
|
+
title: "Diagram to WebP Converter",
|
|
248
|
+
description: "Convert Mermaid diagrams to optimized WebP format",
|
|
249
|
+
keywords: ["mermaid diagram", "webp conversion", "image optimization"],
|
|
250
|
+
},
|
|
251
|
+
workflow: {
|
|
252
|
+
nodes: [
|
|
253
|
+
{
|
|
254
|
+
id: "gen-1",
|
|
255
|
+
type: "generator",
|
|
256
|
+
position: { x: 100, y: 100 },
|
|
257
|
+
data: {
|
|
258
|
+
generatorName: "mermaid",
|
|
259
|
+
params: {
|
|
260
|
+
code: `graph LR
|
|
261
|
+
A[Start] --> B{Decision}
|
|
262
|
+
B -->|Yes| C[Action 1]
|
|
263
|
+
B -->|No| D[Action 2]
|
|
264
|
+
C --> E[End]
|
|
265
|
+
D --> E`,
|
|
266
|
+
theme: "neutral",
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
id: "transform-1",
|
|
272
|
+
type: "transform",
|
|
273
|
+
position: { x: 400, y: 100 },
|
|
274
|
+
data: {
|
|
275
|
+
operation: "convert",
|
|
276
|
+
params: {
|
|
277
|
+
to: "image/webp",
|
|
278
|
+
quality: 90,
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
],
|
|
283
|
+
edges: [{ id: "e1", source: "gen-1", target: "transform-1" }],
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
/**
|
|
287
|
+
* All utility templates
|
|
288
|
+
*/
|
|
289
|
+
export const utilityTemplates = [
|
|
290
|
+
brandedQR,
|
|
291
|
+
darkQR,
|
|
292
|
+
wifiQR,
|
|
293
|
+
thumbnailGenerator,
|
|
294
|
+
diagramWebp,
|
|
295
|
+
];
|
|
296
|
+
//# sourceMappingURL=utilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../src/templates/utilities.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Types
|
|
3
|
+
*
|
|
4
|
+
* Extended template interface that serves as the single source of truth
|
|
5
|
+
* for template definitions across all FloImg surfaces.
|
|
6
|
+
*/
|
|
7
|
+
import type { StudioNode, StudioEdge } from "@teamflojo/floimg-studio-shared";
|
|
8
|
+
/**
|
|
9
|
+
* Template categories organized by USE CASE, not generator type
|
|
10
|
+
*/
|
|
11
|
+
export type TemplateCategory = "AI Workflows" | "Data Viz" | "Marketing" | "Utilities";
|
|
12
|
+
/**
|
|
13
|
+
* Extended template interface with full metadata
|
|
14
|
+
*
|
|
15
|
+
* Core fields are required for Studio functionality.
|
|
16
|
+
* Extended fields support marketing, SEO, and access control.
|
|
17
|
+
*/
|
|
18
|
+
export interface Template {
|
|
19
|
+
/** Unique identifier - canonical IDs from floimg-web */
|
|
20
|
+
id: string;
|
|
21
|
+
/** Display name (e.g., "Revenue Dashboard") */
|
|
22
|
+
name: string;
|
|
23
|
+
/** Short description for cards and previews */
|
|
24
|
+
description: string;
|
|
25
|
+
/** Category for filtering */
|
|
26
|
+
category: TemplateCategory;
|
|
27
|
+
/** Primary generator used (e.g., "quickchart", "mermaid", "openai") */
|
|
28
|
+
generator: string;
|
|
29
|
+
/** The workflow definition */
|
|
30
|
+
workflow: {
|
|
31
|
+
nodes: StudioNode[];
|
|
32
|
+
edges: StudioEdge[];
|
|
33
|
+
};
|
|
34
|
+
/** Tags for search and filtering */
|
|
35
|
+
tags?: string[];
|
|
36
|
+
/**
|
|
37
|
+
* Requires cloud API access (e.g., OpenAI API keys)
|
|
38
|
+
* AI generation templates need API keys to execute
|
|
39
|
+
*/
|
|
40
|
+
requiresCloud?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Requires authentication to use
|
|
43
|
+
* Some templates may be viewable but require sign-in
|
|
44
|
+
*/
|
|
45
|
+
requiresAuth?: boolean;
|
|
46
|
+
/** Preview image for cards and detail pages */
|
|
47
|
+
preview?: {
|
|
48
|
+
/** URL path (e.g., "/showcase/data-viz/revenue.png") */
|
|
49
|
+
imageUrl: string;
|
|
50
|
+
/** Optional dimensions for layout optimization */
|
|
51
|
+
width?: number;
|
|
52
|
+
height?: number;
|
|
53
|
+
};
|
|
54
|
+
/** Capabilities badges for marketing */
|
|
55
|
+
capabilities?: {
|
|
56
|
+
/** Works with Claude Code CLI */
|
|
57
|
+
claudeCodeReady?: boolean;
|
|
58
|
+
/** Works in Studio visual editor */
|
|
59
|
+
studioCompatible?: boolean;
|
|
60
|
+
/** Multi-step pipeline workflow */
|
|
61
|
+
pipeline?: boolean;
|
|
62
|
+
};
|
|
63
|
+
/** Code example for SDK users */
|
|
64
|
+
codeExample?: string;
|
|
65
|
+
/** SEO metadata for detail pages */
|
|
66
|
+
seo?: {
|
|
67
|
+
title: string;
|
|
68
|
+
description: string;
|
|
69
|
+
keywords: string[];
|
|
70
|
+
};
|
|
71
|
+
/** Whether this template uses AI generation (not just transforms) */
|
|
72
|
+
usesAI?: boolean;
|
|
73
|
+
/** Estimated AI credits consumed (0 for transform-only) */
|
|
74
|
+
aiCreditsNeeded?: number;
|
|
75
|
+
/** Short value proposition for onboarding display */
|
|
76
|
+
valueProp?: string;
|
|
77
|
+
/** Icon identifier for template cards */
|
|
78
|
+
icon?: "sparkles" | "image" | "share" | "chart" | "diagram" | "qr";
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Backwards-compatible alias for GalleryTemplate
|
|
82
|
+
* @deprecated Use Template instead
|
|
83
|
+
*/
|
|
84
|
+
export type GalleryTemplate = Template;
|
|
85
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IAKvB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IAEb,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAE3B,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAElB,8BAA8B;IAC9B,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU,EAAE,CAAC;QACpB,KAAK,EAAE,UAAU,EAAE,CAAC;KACrB,CAAC;IAMF,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAMhB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAMvB,+CAA+C;IAC/C,OAAO,CAAC,EAAE;QACR,wDAAwD;QACxD,QAAQ,EAAE,MAAM,CAAC;QACjB,kDAAkD;QAClD,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,wCAAwC;IACxC,YAAY,CAAC,EAAE;QACb,iCAAiC;QACjC,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,oCAAoC;QACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,mCAAmC;QACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAMF,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oCAAoC;IACpC,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IAMF,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yCAAyC;IACzC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CACpE;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@teamflojo/floimg-templates",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Official workflow templates for FloImg Studio",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE"
|
|
18
|
+
],
|
|
19
|
+
"keywords": [
|
|
20
|
+
"floimg",
|
|
21
|
+
"templates",
|
|
22
|
+
"workflows",
|
|
23
|
+
"image-generation"
|
|
24
|
+
],
|
|
25
|
+
"author": "Brett Cooke",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "https://github.com/TeamFlojo/floimg.git",
|
|
30
|
+
"directory": "packages/floimg-templates"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"@teamflojo/floimg-studio-shared": "0.3.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/node": "^22.10.2",
|
|
37
|
+
"typescript": "^5.7.2"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=18.0.0"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"dev": "tsc --watch",
|
|
45
|
+
"typecheck": "tsc --noEmit",
|
|
46
|
+
"clean": "rm -rf dist"
|
|
47
|
+
}
|
|
48
|
+
}
|