loopwind 0.22.0 → 0.23.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/lib/render-core.d.ts +63 -0
- package/dist/lib/render-core.d.ts.map +1 -0
- package/dist/lib/render-core.js +65 -0
- package/dist/lib/render-core.js.map +1 -0
- package/dist/lib/renderer.d.ts.map +1 -1
- package/dist/lib/renderer.js +10 -7
- package/dist/lib/renderer.js.map +1 -1
- package/dist/lib/resvg-init.d.ts +15 -0
- package/dist/lib/resvg-init.d.ts.map +1 -0
- package/dist/lib/resvg-init.js +55 -0
- package/dist/lib/resvg-init.js.map +1 -0
- package/dist/lib/tailwind/colors.d.ts +8 -0
- package/dist/lib/tailwind/colors.d.ts.map +1 -0
- package/dist/lib/tailwind/colors.js +102 -0
- package/dist/lib/tailwind/colors.js.map +1 -0
- package/dist/lib/tailwind/index.d.ts +10 -0
- package/dist/lib/tailwind/index.d.ts.map +1 -0
- package/dist/lib/tailwind/index.js +9 -0
- package/dist/lib/tailwind/index.js.map +1 -0
- package/dist/lib/tailwind/resolvers.d.ts +28 -0
- package/dist/lib/tailwind/resolvers.d.ts.map +1 -0
- package/dist/lib/tailwind/resolvers.js +94 -0
- package/dist/lib/tailwind/resolvers.js.map +1 -0
- package/dist/lib/tailwind/types.d.ts +29 -0
- package/dist/lib/tailwind/types.d.ts.map +1 -0
- package/dist/lib/tailwind/types.js +8 -0
- package/dist/lib/tailwind/types.js.map +1 -0
- package/dist/lib/tailwind-config-loader.d.ts +8 -45
- package/dist/lib/tailwind-config-loader.d.ts.map +1 -1
- package/dist/lib/tailwind-config-loader.js +6 -429
- package/dist/lib/tailwind-config-loader.js.map +1 -1
- package/dist/lib/tailwind.d.ts +1 -1
- package/dist/lib/tailwind.d.ts.map +1 -1
- package/dist/lib/tailwind.js +1 -1
- package/dist/lib/tailwind.js.map +1 -1
- package/dist/lib/video-renderer.d.ts.map +1 -1
- package/dist/lib/video-renderer.js +6 -5
- package/dist/lib/video-renderer.js.map +1 -1
- package/dist/sdk/edge/index.d.ts +91 -0
- package/dist/sdk/edge/index.d.ts.map +1 -0
- package/dist/sdk/edge/index.js +187 -0
- package/dist/sdk/edge/index.js.map +1 -0
- package/dist/sdk/workers/index.d.ts +135 -0
- package/dist/sdk/workers/index.d.ts.map +1 -0
- package/dist/sdk/workers/index.js +271 -0
- package/dist/sdk/workers/index.js.map +1 -0
- package/dist/sdk/workers/tailwind-config.d.ts +48 -0
- package/dist/sdk/workers/tailwind-config.d.ts.map +1 -0
- package/dist/sdk/workers/tailwind-config.js +187 -0
- package/dist/sdk/workers/tailwind-config.js.map +1 -0
- package/dist/sdk/workers/tailwind.d.ts +9 -0
- package/dist/sdk/workers/tailwind.d.ts.map +1 -0
- package/dist/sdk/workers/tailwind.js +8 -0
- package/dist/sdk/workers/tailwind.js.map +1 -0
- package/package.json +6 -2
- package/test-cloudflare-worker/README.md +64 -0
- package/test-cloudflare-worker/dist/README.md +1 -0
- package/test-cloudflare-worker/dist/index.js +23743 -0
- package/test-cloudflare-worker/dist/index.js.map +8 -0
- package/test-cloudflare-worker/package-lock.json +1773 -0
- package/test-cloudflare-worker/package.json +25 -0
- package/test-cloudflare-worker/test-sdk.mjs +75 -0
- package/test-cloudflare-worker/wrangler.toml +14 -0
- package/test-video-720p.mjs +96 -0
- package/test-video-breakdown.mjs +98 -0
- package/test-video-perf-1080.mjs +67 -0
- package/test-video-perf.mjs +56 -0
- package/test-worker-1080p.mjs +103 -0
- package/test-worker-viability.mjs +140 -0
- package/website/astro.config.mjs +4 -9
- package/website/dist/_astro/PlaygroundEditor.DzFavsm8.js +26 -0
- package/website/dist/_astro/VideoPreviewClient.BrajhYmh.js +1 -0
- package/website/dist/_astro/agents.CZXv4DCM.css +1 -0
- package/website/dist/_astro/client.BHSq4mdQ.js +33 -0
- package/website/dist/_astro/index.CTbGshLK.js +9 -0
- package/website/dist/_astro/jsx-runtime.BjG_zV1W.js +9 -0
- package/website/dist/_routes.json +1 -0
- package/website/dist/_worker.js/_@astrojs-ssr-adapter.mjs +4 -4
- package/website/dist/_worker.js/_astro-internal_middleware.mjs +2 -2
- package/website/dist/_worker.js/chunks/Logo_Cud5QvBJ.mjs +22 -0
- package/website/dist/_worker.js/chunks/_@astro-renderers_-YVK7NHa.mjs +15015 -0
- package/website/dist/_worker.js/chunks/astro/{server_Y5_QHO8v.mjs → server_CsUrSZgd.mjs} +113 -2
- package/website/dist/_worker.js/chunks/{astro-designed-error-pages_BNTLO-TA.mjs → astro-designed-error-pages_1ELXm5Tt.mjs} +1 -1
- package/website/dist/_worker.js/chunks/{index_C1UTDwYg.mjs → index_BDWR1Q-q.mjs} +2 -2
- package/website/dist/_worker.js/chunks/{noop-middleware_DlWGj5t5.mjs → noop-middleware_B8fH5jha.mjs} +1 -1
- package/website/dist/_worker.js/index.js +38 -30
- package/website/dist/_worker.js/manifest_Bk6136-u.mjs +98 -0
- package/website/dist/_worker.js/pages/_image.astro.mjs +1 -1
- package/website/dist/_worker.js/pages/api/playground/render.astro.mjs +25562 -0
- package/website/dist/_worker.js/pages/api/playground/templates.astro.mjs +92 -0
- package/website/dist/_worker.js/pages/api/raw-markdown/_---path_.astro.mjs +1 -1
- package/website/dist/_worker.js/pages/playground/_example_.astro.mjs +95 -0
- package/website/dist/_worker.js/pages/playground.astro.mjs +1 -0
- package/website/dist/_worker.js/renderers.mjs +1 -56
- package/website/dist/agents/index.html +4 -2
- package/website/dist/animation/index.html +629 -3
- package/website/dist/config/index.html +4 -2
- package/website/dist/fonts/index.html +4 -2
- package/website/dist/getting-started/index.html +4 -2
- package/website/dist/helpers/index.html +196 -10
- package/website/dist/images/index.html +4 -2
- package/website/dist/index.html +4 -3
- package/website/dist/llm.txt +870 -20
- package/website/dist/playground/index.html +6 -0
- package/website/dist/preview/index.html +4 -2
- package/website/dist/sdk/index.html +639 -127
- package/website/dist/sitemap.xml +12 -12
- package/website/dist/styling/index.html +4 -2
- package/website/dist/templates/index.html +4 -2
- package/website/dist/video/index.html +47 -12
- package/website/package-lock.json +11 -1
- package/website/package.json +3 -1
- package/website/wrangler.toml +9 -0
- package/_dsgn/templates/dashed-stroke-test/template.tsx +0 -73
- package/_dsgn/templates/path-follow-test/template.tsx +0 -176
- package/_dsgn/templates/path-simple-test/template.tsx +0 -98
- package/_dsgn/templates/stroke-dash-test/meta.json +0 -12
- package/_dsgn/templates/stroke-dash-test/template.tsx +0 -53
- package/website/dist/_astro/agents.Yx-L_igG.css +0 -1
- package/website/dist/_worker.js/manifest_CT_D-YDe.mjs +0 -98
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tailwind config utilities for Cloudflare Workers
|
|
3
|
+
* Pure JavaScript - no Node.js dependencies
|
|
4
|
+
*/
|
|
5
|
+
// Tailwind's default color palette (v3)
|
|
6
|
+
export const DEFAULT_COLORS = {
|
|
7
|
+
inherit: 'inherit',
|
|
8
|
+
current: 'currentColor',
|
|
9
|
+
transparent: 'transparent',
|
|
10
|
+
black: '#000000',
|
|
11
|
+
white: '#ffffff',
|
|
12
|
+
slate: {
|
|
13
|
+
50: '#f8fafc', 100: '#f1f5f9', 200: '#e2e8f0', 300: '#cbd5e1', 400: '#94a3b8',
|
|
14
|
+
500: '#64748b', 600: '#475569', 700: '#334155', 800: '#1e293b', 900: '#0f172a', 950: '#020617',
|
|
15
|
+
},
|
|
16
|
+
gray: {
|
|
17
|
+
50: '#f9fafb', 100: '#f3f4f6', 200: '#e5e7eb', 300: '#d1d5db', 400: '#9ca3af',
|
|
18
|
+
500: '#6b7280', 600: '#4b5563', 700: '#374151', 800: '#1f2937', 900: '#111827', 950: '#030712',
|
|
19
|
+
},
|
|
20
|
+
zinc: {
|
|
21
|
+
50: '#fafafa', 100: '#f4f4f5', 200: '#e4e4e7', 300: '#d4d4d8', 400: '#a1a1aa',
|
|
22
|
+
500: '#71717a', 600: '#52525b', 700: '#3f3f46', 800: '#27272a', 900: '#18181b', 950: '#09090b',
|
|
23
|
+
},
|
|
24
|
+
neutral: {
|
|
25
|
+
50: '#fafafa', 100: '#f5f5f5', 200: '#e5e5e5', 300: '#d4d4d4', 400: '#a3a3a3',
|
|
26
|
+
500: '#737373', 600: '#525252', 700: '#404040', 800: '#262626', 900: '#171717', 950: '#0a0a0a',
|
|
27
|
+
},
|
|
28
|
+
stone: {
|
|
29
|
+
50: '#fafaf9', 100: '#f5f5f4', 200: '#e7e5e4', 300: '#d6d3d1', 400: '#a8a29e',
|
|
30
|
+
500: '#78716c', 600: '#57534e', 700: '#44403c', 800: '#292524', 900: '#1c1917', 950: '#0c0a09',
|
|
31
|
+
},
|
|
32
|
+
red: {
|
|
33
|
+
50: '#fef2f2', 100: '#fee2e2', 200: '#fecaca', 300: '#fca5a5', 400: '#f87171',
|
|
34
|
+
500: '#ef4444', 600: '#dc2626', 700: '#b91c1c', 800: '#991b1b', 900: '#7f1d1d', 950: '#450a0a',
|
|
35
|
+
},
|
|
36
|
+
orange: {
|
|
37
|
+
50: '#fff7ed', 100: '#ffedd5', 200: '#fed7aa', 300: '#fdba74', 400: '#fb923c',
|
|
38
|
+
500: '#f97316', 600: '#ea580c', 700: '#c2410c', 800: '#9a3412', 900: '#7c2d12', 950: '#431407',
|
|
39
|
+
},
|
|
40
|
+
amber: {
|
|
41
|
+
50: '#fffbeb', 100: '#fef3c7', 200: '#fde68a', 300: '#fcd34d', 400: '#fbbf24',
|
|
42
|
+
500: '#f59e0b', 600: '#d97706', 700: '#b45309', 800: '#92400e', 900: '#78350f', 950: '#451a03',
|
|
43
|
+
},
|
|
44
|
+
yellow: {
|
|
45
|
+
50: '#fefce8', 100: '#fef9c3', 200: '#fef08a', 300: '#fde047', 400: '#facc15',
|
|
46
|
+
500: '#eab308', 600: '#ca8a04', 700: '#a16207', 800: '#854d0e', 900: '#713f12', 950: '#422006',
|
|
47
|
+
},
|
|
48
|
+
lime: {
|
|
49
|
+
50: '#f7fee7', 100: '#ecfccb', 200: '#d9f99d', 300: '#bef264', 400: '#a3e635',
|
|
50
|
+
500: '#84cc16', 600: '#65a30d', 700: '#4d7c0f', 800: '#3f6212', 900: '#365314', 950: '#1a2e05',
|
|
51
|
+
},
|
|
52
|
+
green: {
|
|
53
|
+
50: '#f0fdf4', 100: '#dcfce7', 200: '#bbf7d0', 300: '#86efac', 400: '#4ade80',
|
|
54
|
+
500: '#22c55e', 600: '#16a34a', 700: '#15803d', 800: '#166534', 900: '#14532d', 950: '#052e16',
|
|
55
|
+
},
|
|
56
|
+
emerald: {
|
|
57
|
+
50: '#ecfdf5', 100: '#d1fae5', 200: '#a7f3d0', 300: '#6ee7b7', 400: '#34d399',
|
|
58
|
+
500: '#10b981', 600: '#059669', 700: '#047857', 800: '#065f46', 900: '#064e3b', 950: '#022c22',
|
|
59
|
+
},
|
|
60
|
+
teal: {
|
|
61
|
+
50: '#f0fdfa', 100: '#ccfbf1', 200: '#99f6e4', 300: '#5eead4', 400: '#2dd4bf',
|
|
62
|
+
500: '#14b8a6', 600: '#0d9488', 700: '#0f766e', 800: '#115e59', 900: '#134e4a', 950: '#042f2e',
|
|
63
|
+
},
|
|
64
|
+
cyan: {
|
|
65
|
+
50: '#ecfeff', 100: '#cffafe', 200: '#a5f3fc', 300: '#67e8f9', 400: '#22d3ee',
|
|
66
|
+
500: '#06b6d4', 600: '#0891b2', 700: '#0e7490', 800: '#155e75', 900: '#164e63', 950: '#083344',
|
|
67
|
+
},
|
|
68
|
+
sky: {
|
|
69
|
+
50: '#f0f9ff', 100: '#e0f2fe', 200: '#bae6fd', 300: '#7dd3fc', 400: '#38bdf8',
|
|
70
|
+
500: '#0ea5e9', 600: '#0284c7', 700: '#0369a1', 800: '#075985', 900: '#0c4a6e', 950: '#082f49',
|
|
71
|
+
},
|
|
72
|
+
blue: {
|
|
73
|
+
50: '#eff6ff', 100: '#dbeafe', 200: '#bfdbfe', 300: '#93c5fd', 400: '#60a5fa',
|
|
74
|
+
500: '#3b82f6', 600: '#2563eb', 700: '#1d4ed8', 800: '#1e40af', 900: '#1e3a8a', 950: '#172554',
|
|
75
|
+
},
|
|
76
|
+
indigo: {
|
|
77
|
+
50: '#eef2ff', 100: '#e0e7ff', 200: '#c7d2fe', 300: '#a5b4fc', 400: '#818cf8',
|
|
78
|
+
500: '#6366f1', 600: '#4f46e5', 700: '#4338ca', 800: '#3730a3', 900: '#312e81', 950: '#1e1b4b',
|
|
79
|
+
},
|
|
80
|
+
violet: {
|
|
81
|
+
50: '#f5f3ff', 100: '#ede9fe', 200: '#ddd6fe', 300: '#c4b5fd', 400: '#a78bfa',
|
|
82
|
+
500: '#8b5cf6', 600: '#7c3aed', 700: '#6d28d9', 800: '#5b21b6', 900: '#4c1d95', 950: '#2e1065',
|
|
83
|
+
},
|
|
84
|
+
purple: {
|
|
85
|
+
50: '#faf5ff', 100: '#f3e8ff', 200: '#e9d5ff', 300: '#d8b4fe', 400: '#c084fc',
|
|
86
|
+
500: '#a855f7', 600: '#9333ea', 700: '#7e22ce', 800: '#6b21a8', 900: '#581c87', 950: '#3b0764',
|
|
87
|
+
},
|
|
88
|
+
fuchsia: {
|
|
89
|
+
50: '#fdf4ff', 100: '#fae8ff', 200: '#f5d0fe', 300: '#f0abfc', 400: '#e879f9',
|
|
90
|
+
500: '#d946ef', 600: '#c026d3', 700: '#a21caf', 800: '#86198f', 900: '#701a75', 950: '#4a044e',
|
|
91
|
+
},
|
|
92
|
+
pink: {
|
|
93
|
+
50: '#fdf2f8', 100: '#fce7f3', 200: '#fbcfe8', 300: '#f9a8d4', 400: '#f472b6',
|
|
94
|
+
500: '#ec4899', 600: '#db2777', 700: '#be185d', 800: '#9d174d', 900: '#831843', 950: '#500724',
|
|
95
|
+
},
|
|
96
|
+
rose: {
|
|
97
|
+
50: '#fff1f2', 100: '#ffe4e6', 200: '#fecdd3', 300: '#fda4af', 400: '#fb7185',
|
|
98
|
+
500: '#f43f5e', 600: '#e11d48', 700: '#be123c', 800: '#9f1239', 900: '#881337', 950: '#4c0519',
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Resolve a color from Tailwind config
|
|
103
|
+
* Supports: primary, blue-500, slate-200, etc.
|
|
104
|
+
*/
|
|
105
|
+
export function resolveColor(colorName, tailwindConfig) {
|
|
106
|
+
// Merge Tailwind config colors with defaults
|
|
107
|
+
const colors = {
|
|
108
|
+
...DEFAULT_COLORS,
|
|
109
|
+
...tailwindConfig?.theme?.colors,
|
|
110
|
+
...tailwindConfig?.theme?.extend?.colors,
|
|
111
|
+
};
|
|
112
|
+
// Try direct match first (e.g., "primary")
|
|
113
|
+
if (colors[colorName]) {
|
|
114
|
+
const color = colors[colorName];
|
|
115
|
+
// If it's a string, return it
|
|
116
|
+
if (typeof color === 'string') {
|
|
117
|
+
return color;
|
|
118
|
+
}
|
|
119
|
+
// If it's an object with DEFAULT, use that
|
|
120
|
+
if (typeof color === 'object' && color.DEFAULT) {
|
|
121
|
+
return color.DEFAULT;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Try shade match (e.g., "blue-500")
|
|
125
|
+
const shadeMatch = colorName.match(/^(\w+)-(\d+)$/);
|
|
126
|
+
if (shadeMatch) {
|
|
127
|
+
const [, colorKey, shade] = shadeMatch;
|
|
128
|
+
if (colors[colorKey] && typeof colors[colorKey] === 'object') {
|
|
129
|
+
return colors[colorKey][shade] || null;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Resolve spacing value from Tailwind config
|
|
136
|
+
*/
|
|
137
|
+
export function resolveSpacing(value, tailwindConfig) {
|
|
138
|
+
if (!tailwindConfig?.theme) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const spacing = {
|
|
142
|
+
...tailwindConfig.theme.spacing,
|
|
143
|
+
...tailwindConfig.theme.extend?.spacing,
|
|
144
|
+
};
|
|
145
|
+
return spacing[value] || null;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Resolve font size from Tailwind config
|
|
149
|
+
*/
|
|
150
|
+
export function resolveFontSize(size, tailwindConfig) {
|
|
151
|
+
if (!tailwindConfig?.theme) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
const fontSize = {
|
|
155
|
+
...tailwindConfig.theme.fontSize,
|
|
156
|
+
...tailwindConfig.theme.extend?.fontSize,
|
|
157
|
+
};
|
|
158
|
+
const value = fontSize[size];
|
|
159
|
+
if (!value) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
// Font size can be a string or [size, lineHeight]
|
|
163
|
+
if (typeof value === 'string') {
|
|
164
|
+
return { fontSize: value };
|
|
165
|
+
}
|
|
166
|
+
if (Array.isArray(value)) {
|
|
167
|
+
return {
|
|
168
|
+
fontSize: value[0],
|
|
169
|
+
lineHeight: value[1]?.lineHeight || value[1],
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Resolve border radius from Tailwind config
|
|
176
|
+
*/
|
|
177
|
+
export function resolveBorderRadius(value, tailwindConfig) {
|
|
178
|
+
if (!tailwindConfig?.theme) {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
const borderRadius = {
|
|
182
|
+
...tailwindConfig.theme.borderRadius,
|
|
183
|
+
...tailwindConfig.theme.extend?.borderRadius,
|
|
184
|
+
};
|
|
185
|
+
return borderRadius[value] || null;
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=tailwind-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-config.js","sourceRoot":"","sources":["../../../src/sdk/workers/tailwind-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tailwind class-to-style converter for Cloudflare Workers
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from the shared library.
|
|
5
|
+
* Pure JavaScript - no Node.js dependencies.
|
|
6
|
+
*/
|
|
7
|
+
export { tw } from '../../lib/tailwind.js';
|
|
8
|
+
export type { TailwindConfig } from '../../lib/tailwind/types.js';
|
|
9
|
+
//# sourceMappingURL=tailwind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../../src/sdk/workers/tailwind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind.js","sourceRoot":"","sources":["../../../src/sdk/workers/tailwind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "loopwind",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "A CLI tool for AI code agents and developers for generating images and videos.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"./sdk/compiler": {
|
|
20
20
|
"types": "./dist/sdk/compiler.d.ts",
|
|
21
21
|
"default": "./dist/sdk/compiler.js"
|
|
22
|
+
},
|
|
23
|
+
"./sdk/workers": {
|
|
24
|
+
"types": "./dist/sdk/workers/index.d.ts",
|
|
25
|
+
"default": "./dist/sdk/workers/index.js"
|
|
22
26
|
}
|
|
23
27
|
},
|
|
24
28
|
"scripts": {
|
|
@@ -50,7 +54,7 @@
|
|
|
50
54
|
"url": "https://github.com/tomtev/loopwind/issues"
|
|
51
55
|
},
|
|
52
56
|
"dependencies": {
|
|
53
|
-
"@resvg/resvg-
|
|
57
|
+
"@resvg/resvg-wasm": "^2.6.2",
|
|
54
58
|
"@vitejs/plugin-react": "^5.1.1",
|
|
55
59
|
"boxen": "^7.1.1",
|
|
56
60
|
"chalk": "^5.3.0",
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Loopwind Cloudflare Workers Test
|
|
2
|
+
|
|
3
|
+
This project tests the loopwind SDK in a Cloudflare Workers environment.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install dependencies
|
|
9
|
+
npm install
|
|
10
|
+
|
|
11
|
+
# Test locally with Node.js (recommended)
|
|
12
|
+
node test-sdk.mjs
|
|
13
|
+
|
|
14
|
+
# Deploy to Cloudflare production
|
|
15
|
+
npm run deploy
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Local Development Limitations
|
|
19
|
+
|
|
20
|
+
**Note:** Local development with `wrangler dev` has WASM limitations that prevent full functionality. This is a known limitation of the local workerd runtime.
|
|
21
|
+
|
|
22
|
+
For local testing, use:
|
|
23
|
+
1. **Node.js test script:** `node test-sdk.mjs` (works fully)
|
|
24
|
+
2. **SVG format only:** `http://localhost:8787/?format=svg&title=Hello` (in wrangler dev)
|
|
25
|
+
|
|
26
|
+
## Production
|
|
27
|
+
|
|
28
|
+
When deployed to Cloudflare production, all features work:
|
|
29
|
+
- SVG rendering
|
|
30
|
+
- PNG rendering (with WASM)
|
|
31
|
+
|
|
32
|
+
## API
|
|
33
|
+
|
|
34
|
+
### GET /
|
|
35
|
+
|
|
36
|
+
Generate an image with query parameters:
|
|
37
|
+
- `title` - Main title text (default: "Hello from Loopwind!")
|
|
38
|
+
- `subtitle` - Subtitle text (default: "Running in Cloudflare Workers")
|
|
39
|
+
- `format` - Output format: `svg` or `png` (default: `svg`)
|
|
40
|
+
|
|
41
|
+
### GET /health
|
|
42
|
+
|
|
43
|
+
Health check endpoint returning JSON status.
|
|
44
|
+
|
|
45
|
+
## Example Usage
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Generate SVG
|
|
49
|
+
curl "https://your-worker.workers.dev/?title=Hello&format=svg" > image.svg
|
|
50
|
+
|
|
51
|
+
# Generate PNG
|
|
52
|
+
curl "https://your-worker.workers.dev/?title=Hello&format=png" > image.png
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Project Structure
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
test-cloudflare-worker/
|
|
59
|
+
├── src/
|
|
60
|
+
│ └── index.ts # Worker entry point
|
|
61
|
+
├── test-sdk.mjs # Node.js test script
|
|
62
|
+
├── wrangler.toml # Wrangler configuration
|
|
63
|
+
└── README.md
|
|
64
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
This folder contains the built output assets for the worker "loopwind-worker-test" generated at 2025-12-10T07:43:03.352Z.
|