launchframe 0.1.9 → 0.1.11
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "launchframe",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Point Launchframe at SaaS sites you admire and get back a drop-in shadcn/ui design system (tokens, Tailwind theme, CSS variables, AI handoff) you can build your own UI on top of.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Evan Gruhlkey",
|
package/packages/extract/emit.ts
CHANGED
|
@@ -485,7 +485,7 @@ You must use the attached \`output/${system.runId}/\` folder.
|
|
|
485
485
|
|
|
486
486
|
- Read REPORT.md and tokens.json before writing UI. Merge tailwind.config.ts and globals.css into my project (preserve my paths unless I say otherwise).
|
|
487
487
|
- Style with semantic tokens: bg-background, text-foreground, text-muted-foreground, border-border, bg-primary, text-primary-foreground, bg-card, text-card-foreground, etc. Prefer these over ad-hoc hex; mirror pages may use --mirror-* variables until merged.
|
|
488
|
-
- If reference/ and mirror/ exist for my source URL: treat them as mandatory context. Preserve **exact DOM nesting and sibling order** from
|
|
488
|
+
- If reference/ and mirror/ exist for my source URL: treat them as mandatory context. Preserve **exact DOM nesting and sibling order** from \`dom-structure.json\` (and cross-check \`page.html\`). Align components to \`data-mirror-section\` and the mirror scaffold. Wire copy from visible-text.* and media from media.json unless I say to rewrite for a different product.
|
|
489
489
|
- If I am building a NEW product unrelated to the crawl: keep layout inspiration from mirror/reference but REPLACE product names, claims, and sensitive copy with my copy. Never impersonate another brand.
|
|
490
490
|
|
|
491
491
|
My product / intent: [describe goal — faithful mirror of URL vs new product in same layout; tone and CTA]
|
|
@@ -33,6 +33,7 @@ import { chromium, type Browser } from "playwright";
|
|
|
33
33
|
import { harvestTokens } from "./browser-extract.js";
|
|
34
34
|
import { crawlLayout } from "./dom-crawler.js";
|
|
35
35
|
import { emitAll } from "./emit.js";
|
|
36
|
+
import { emitMirror } from "./mirror-emit.js";
|
|
36
37
|
import { emitPageReference } from "./reference-dump.js";
|
|
37
38
|
import { synthesize } from "./synthesize.js";
|
|
38
39
|
import type { ExtractionRun, RawTokens, SiteCapture, SiteLayout } from "./types.js";
|
|
@@ -214,7 +215,7 @@ async function captureOne(
|
|
|
214
215
|
});
|
|
215
216
|
const page = await ctx.newPage();
|
|
216
217
|
try {
|
|
217
|
-
const response = await page.goto(url, { waitUntil: "
|
|
218
|
+
const response = await page.goto(url, { waitUntil: "load", timeout: 60_000 });
|
|
218
219
|
if (!response || response.status() >= 400) {
|
|
219
220
|
throw new Error(`HTTP ${response?.status() ?? "unknown"}`);
|
|
220
221
|
}
|