@linktr.ee/linkapp 0.0.21 → 0.0.22
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/dev-server/classic/main.tsx +313 -29
- package/dev-server/classic.html +21 -35
- package/dev-server/components/SettingsPreview.tsx +330 -0
- package/dev-server/components/ui/dialog.tsx +6 -3
- package/dev-server/featured/main.tsx +313 -29
- package/dev-server/featured.html +21 -35
- package/dev-server/index.html +8 -1
- package/dev-server/lib/utils.ts +6 -0
- package/dev-server/package-lock.json +245 -287
- package/dev-server/package.json +5 -1
- package/dev-server/postcss.config.mjs +5 -0
- package/dev-server/preview/Preview.tsx +95 -69
- package/dev-server/preview/preview.css +20 -35
- package/dev-server/public/apple-touch-icon.png +0 -0
- package/dev-server/public/favicon-96x96.png +0 -0
- package/dev-server/public/favicon.ico +0 -0
- package/dev-server/public/favicon.svg +6 -0
- package/dev-server/public/site.webmanifest +21 -0
- package/dev-server/public/web-app-manifest-192x192.png +0 -0
- package/dev-server/public/web-app-manifest-512x512.png +0 -0
- package/dev-server/vite-env.d.ts +8 -0
- package/dev-server/vite.config.ts +5 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +19 -17
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +110 -2
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/test-url-match-rules.js +1 -1
- package/dist/commands/test-url-match-rules.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/lib/auth/device-flow.d.ts +1 -6
- package/dist/lib/auth/device-flow.d.ts.map +1 -1
- package/dist/lib/auth/device-flow.js +3 -9
- package/dist/lib/auth/device-flow.js.map +1 -1
- package/dist/lib/auth/token-storage.d.ts +0 -5
- package/dist/lib/auth/token-storage.d.ts.map +1 -1
- package/dist/lib/auth/token-storage.js +16 -14
- package/dist/lib/auth/token-storage.js.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.js +1 -1
- package/dist/lib/deploy/generate-manifest-files.js.map +1 -1
- package/dist/lib/deploy/pack-project.js +1 -1
- package/dist/lib/deploy/pack-project.js.map +1 -1
- package/dist/lib/deploy/test-url-match-rules.d.ts +2 -1
- package/dist/lib/deploy/test-url-match-rules.d.ts.map +1 -1
- package/dist/lib/deploy/test-url-match-rules.js +1 -1
- package/dist/lib/deploy/test-url-match-rules.js.map +1 -1
- package/dist/lib/deploy/upload.d.ts.map +1 -1
- package/dist/lib/deploy/upload.js +7 -3
- package/dist/lib/deploy/upload.js.map +1 -1
- package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
- package/dist/lib/utils/setup-runtime.js +29 -2
- package/dist/lib/utils/setup-runtime.js.map +1 -1
- package/dist/lib/vite/config-factory.d.ts.map +1 -1
- package/dist/lib/vite/config-factory.js +3 -2
- package/dist/lib/vite/config-factory.js.map +1 -1
- package/dist/schema/config.schema.d.ts +104 -32
- package/dist/schema/config.schema.d.ts.map +1 -1
- package/dist/schema/config.schema.js +27 -17
- package/dist/schema/config.schema.js.map +1 -1
- package/dist/types.d.ts +6 -57
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -2
- package/runtime/index.html +19 -36
package/dev-server/package.json
CHANGED
|
@@ -8,19 +8,23 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
11
|
+
"@radix-ui/react-portal": "^1.1.4",
|
|
11
12
|
"@radix-ui/react-tabs": "^1.1.7",
|
|
13
|
+
"@tailwindcss/vite": "^4.1.14",
|
|
12
14
|
"class-variance-authority": "^0.7.1",
|
|
13
15
|
"clsx": "^2.1.1",
|
|
16
|
+
"iframe-resizer-react": "^1.1.0",
|
|
14
17
|
"lucide-react": "^0.545.0",
|
|
15
18
|
"react": "^19.1.0",
|
|
16
19
|
"react-dom": "^19.1.0",
|
|
17
20
|
"tailwind-merge": "^3.3.1"
|
|
18
21
|
},
|
|
19
22
|
"devDependencies": {
|
|
20
|
-
"@tailwindcss/
|
|
23
|
+
"@tailwindcss/postcss": "^4.1.14",
|
|
21
24
|
"@types/react": "^19.2.2",
|
|
22
25
|
"@types/react-dom": "^19",
|
|
23
26
|
"@vitejs/plugin-react": "^4.3.4",
|
|
27
|
+
"postcss": "^8.5.6",
|
|
24
28
|
"tailwindcss": "^4",
|
|
25
29
|
"tw-animate-css": "^1.4.0",
|
|
26
30
|
"typescript": "^5",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Portal } from "@radix-ui/react-portal";
|
|
2
|
-
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import IframeResizer, { IFrameComponent } from "iframe-resizer-react";
|
|
3
4
|
import {
|
|
4
5
|
Dialog,
|
|
5
6
|
DialogContent,
|
|
@@ -12,7 +13,8 @@ import {
|
|
|
12
13
|
TabsList,
|
|
13
14
|
TabsTrigger,
|
|
14
15
|
} from "../components/ui/tabs";
|
|
15
|
-
import { cn } from "../lib/utils";
|
|
16
|
+
import { cn, renderCssVariables } from "../lib/utils";
|
|
17
|
+
import { SettingsPreview } from "../components/SettingsPreview";
|
|
16
18
|
|
|
17
19
|
// Theme presets for testing
|
|
18
20
|
// Based on actual CSS variables from live Linktree profiles
|
|
@@ -276,13 +278,13 @@ const THEME_PRESETS = {
|
|
|
276
278
|
"--button-style-shadow": "none",
|
|
277
279
|
"--button-style-shadow-color": "#000000",
|
|
278
280
|
"--button-style-contrast-color": "#d1fae5",
|
|
279
|
-
"--button-style-radius": "
|
|
280
|
-
"--button-style-inner-radius": "
|
|
281
|
+
"--button-style-radius": "28px",
|
|
282
|
+
"--button-style-inner-radius": "28px",
|
|
281
283
|
"--button-style-skeleton-color": "rgba(5, 150, 105, 0.1)",
|
|
282
284
|
"--link-gap": "14px",
|
|
283
285
|
"--link-inner-padding": "7px",
|
|
284
286
|
"--link-preview-thumbnail-width": "160px",
|
|
285
|
-
"--linkRadius": "
|
|
287
|
+
"--linkRadius": "28px",
|
|
286
288
|
"--profile-container-desktop-width": "580px",
|
|
287
289
|
"--profileBackground": "#ecfdf5",
|
|
288
290
|
"--background-contrast-color": "#1f2937",
|
|
@@ -328,73 +330,68 @@ const THEME_PRESETS = {
|
|
|
328
330
|
},
|
|
329
331
|
};
|
|
330
332
|
|
|
331
|
-
|
|
332
|
-
const [selectedTab, setSelectedTab] = useState<"classic" | "featured">(
|
|
333
|
-
"classic",
|
|
334
|
-
);
|
|
335
|
-
const [selectedTheme, setSelectedTheme] =
|
|
336
|
-
useState<keyof typeof THEME_PRESETS>("default");
|
|
337
|
-
const classicIframeRef = useRef<HTMLIFrameElement>(null);
|
|
338
|
-
const featuredIframeRef = useRef<HTMLIFrameElement>(null);
|
|
333
|
+
let iframeCount = 0;
|
|
339
334
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
335
|
+
export default function Preview() {
|
|
336
|
+
// Initialize state from localStorage
|
|
337
|
+
const [selectedTab, setSelectedTab] = useState<"classic" | "featured" | "settings">(() => {
|
|
338
|
+
const saved = localStorage.getItem("linkapp-preview-tab");
|
|
339
|
+
return (saved as "classic" | "featured" | "settings") || "classic";
|
|
340
|
+
});
|
|
341
|
+
const [selectedTheme, setSelectedTheme] = useState<keyof typeof THEME_PRESETS>(() => {
|
|
342
|
+
const saved = localStorage.getItem("linkapp-preview-theme");
|
|
343
|
+
return (saved as keyof typeof THEME_PRESETS) || "default";
|
|
344
|
+
});
|
|
347
345
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
payload: {
|
|
352
|
-
name: themeName,
|
|
353
|
-
variables: theme.variables,
|
|
354
|
-
},
|
|
355
|
-
};
|
|
346
|
+
// Generate unique IDs for iframes
|
|
347
|
+
const classicIframeId = useMemo(() => `preview-iframe-classic-${iframeCount++}`, []);
|
|
348
|
+
const featuredIframeId = useMemo(() => `preview-iframe-featured-${iframeCount++}`, []);
|
|
356
349
|
|
|
357
|
-
|
|
358
|
-
},
|
|
359
|
-
[],
|
|
360
|
-
);
|
|
361
|
-
|
|
362
|
-
// Send theme update when theme changes or iframes load
|
|
350
|
+
// Save selected tab to localStorage
|
|
363
351
|
useEffect(() => {
|
|
364
|
-
|
|
365
|
-
|
|
352
|
+
localStorage.setItem("linkapp-preview-tab", selectedTab);
|
|
353
|
+
}, [selectedTab]);
|
|
366
354
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
355
|
+
// Save selected theme to localStorage
|
|
356
|
+
useEffect(() => {
|
|
357
|
+
localStorage.setItem("linkapp-preview-theme", selectedTheme);
|
|
358
|
+
}, [selectedTheme]);
|
|
371
359
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
360
|
+
// Handle iframe resize events
|
|
361
|
+
const handleResized = useCallback(
|
|
362
|
+
(ev: { iframe: IFrameComponent; height: number; width: number; type: string }): void => {
|
|
363
|
+
// IframeResizer automatically handles height adjustments
|
|
364
|
+
// This callback is mainly for debugging or additional logic if needed
|
|
365
|
+
if (!ev.height) {
|
|
366
|
+
console.warn('Preview iframe reported zero height');
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
[]
|
|
370
|
+
);
|
|
375
371
|
|
|
376
|
-
// Listen for iframe load events
|
|
377
|
-
classicIframe?.addEventListener("load", handleClassicLoad);
|
|
378
|
-
featuredIframe?.addEventListener("load", handleFeaturedLoad);
|
|
379
372
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}, [selectedTheme, sendThemeUpdate]);
|
|
373
|
+
const renderedCssVariables = useMemo(() => {
|
|
374
|
+
const themeVariables = THEME_PRESETS[selectedTheme] || THEME_PRESETS.default
|
|
375
|
+
return renderCssVariables(themeVariables.variables);
|
|
376
|
+
}, [selectedTheme])
|
|
385
377
|
|
|
386
378
|
return (
|
|
379
|
+
<>
|
|
380
|
+
<style>{`:root {
|
|
381
|
+
${renderedCssVariables}
|
|
382
|
+
}`}</style>
|
|
383
|
+
|
|
387
384
|
<div
|
|
388
385
|
className={cn("min-h-screen", {
|
|
389
386
|
"bg-black/50": selectedTab === "classic",
|
|
390
|
-
"bg-
|
|
387
|
+
"bg-linktree-frame": selectedTab === "featured",
|
|
391
388
|
})}
|
|
392
389
|
id="preview"
|
|
393
390
|
>
|
|
394
391
|
<Tabs
|
|
395
392
|
value={selectedTab}
|
|
396
393
|
onValueChange={(value) =>
|
|
397
|
-
setSelectedTab(value as "classic" | "featured")
|
|
394
|
+
setSelectedTab(value as "classic" | "featured" | "settings")
|
|
398
395
|
}
|
|
399
396
|
>
|
|
400
397
|
<Portal>
|
|
@@ -405,6 +402,7 @@ export default function Preview() {
|
|
|
405
402
|
<TabsList>
|
|
406
403
|
<TabsTrigger value="classic">Classic</TabsTrigger>
|
|
407
404
|
<TabsTrigger value="featured">Featured</TabsTrigger>
|
|
405
|
+
<TabsTrigger value="settings">Settings</TabsTrigger>
|
|
408
406
|
</TabsList>
|
|
409
407
|
|
|
410
408
|
{/* Theme Switcher */}
|
|
@@ -436,20 +434,37 @@ export default function Preview() {
|
|
|
436
434
|
{/* Classic Modal - Always Open */}
|
|
437
435
|
<Dialog open={true} modal={false}>
|
|
438
436
|
<DialogContent
|
|
439
|
-
className="max-w-[
|
|
437
|
+
className="h-[calc(100dvh-2rem)] max-w-[608px] md:min-h-[25vh] md:h-[80%] md:max-h-[900px] overflow-auto"
|
|
440
438
|
showCloseButton={false}
|
|
441
439
|
>
|
|
442
440
|
<DialogHeader className="sticky top-0 bg-white px-4">
|
|
443
|
-
<
|
|
441
|
+
<div className="grid h-[64px] grid-cols-[32px_auto_32px] items-center gap-4">
|
|
442
|
+
<button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
|
|
443
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className=" " role="img" aria-hidden="true"><path fill="currentColor" d="m10.65 3.85.35.36.7-.71-.35-.35-3-3h-.7l-3 3-.36.35.71.7.35-.35L7.5 1.71V10h1V1.7l2.15 2.15ZM1 5.5l.5-.5H4v1H2v9h12V6h-2V5h2.5l.5.5v10l-.5.5h-13l-.5-.5v-10Z"></path></svg>
|
|
444
|
+
</button>
|
|
445
|
+
|
|
446
|
+
<DialogTitle className="self-center truncate py-3 text-center">
|
|
447
|
+
Classic
|
|
448
|
+
</DialogTitle>
|
|
449
|
+
|
|
450
|
+
<button className="flex size-8 items-center justify-center rounded-sm focus-visible:outline-none">
|
|
451
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" className=" " role="img" aria-hidden="true"><path fill="currentColor" d="m13.63 3.12.37-.38-.74-.74-.38.37.75.75ZM2.37 12.89l-.37.37.74.74.38-.37-.75-.75Zm.75-10.52L2.74 2 2 2.74l.37.38.75-.75Zm9.76 11.26.38.37.74-.74-.37-.38-.75.75Zm0-11.26L2.38 12.9l.74.74 10.5-10.51-.74-.75Zm-10.5.75 10.5 10.5.75-.73L3.12 2.37l-.75.75Z"></path></svg>
|
|
452
|
+
</button>
|
|
453
|
+
</div>
|
|
444
454
|
</DialogHeader>
|
|
445
455
|
|
|
446
|
-
<div className="
|
|
447
|
-
<
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
456
|
+
<div className="flex h-[calc(100%-64px)] flex-1 flex-col justify-between overflow-hidden">
|
|
457
|
+
<div className="h-full overflow-y-auto overflow-x-hidden">
|
|
458
|
+
<IframeResizer
|
|
459
|
+
key={`classic-${selectedTheme}`}
|
|
460
|
+
id={classicIframeId}
|
|
461
|
+
src={`/classic?theme=${selectedTheme}`}
|
|
462
|
+
style={{ height: '0px', width: '1px', minWidth: '100%', border: 0, borderRadius: '0.5rem' }}
|
|
463
|
+
checkOrigin={false}
|
|
464
|
+
onResized={handleResized}
|
|
465
|
+
heightCalculationMethod="max"
|
|
466
|
+
/>
|
|
467
|
+
</div>
|
|
453
468
|
</div>
|
|
454
469
|
</DialogContent>
|
|
455
470
|
</Dialog>
|
|
@@ -457,19 +472,30 @@ export default function Preview() {
|
|
|
457
472
|
|
|
458
473
|
<TabsContent value="featured" className="m-0 flex justify-center p-8">
|
|
459
474
|
{/* Featured Iframe - Max Width 524px */}
|
|
460
|
-
<div className="w-full max-w-[580px]
|
|
475
|
+
<div className="w-full max-w-[580px] flex flex-col px-[28px] py-7 items-center bg-linktree-profile-bg">
|
|
476
|
+
|
|
461
477
|
<div className="w-full max-w-[524px]">
|
|
462
|
-
<
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
478
|
+
<div className="bg-linktree-button-bg hover:bg-linktree-button-bg-hover border-linktree-button-border text-linktree-button-text rounded-linktree-button shadow-linktree-button">
|
|
479
|
+
<IframeResizer
|
|
480
|
+
key={`featured-${selectedTheme}`}
|
|
481
|
+
id={featuredIframeId}
|
|
482
|
+
src={`/featured?theme=${selectedTheme}`}
|
|
483
|
+
style={{ height: '0px', width: '1px', minWidth: '100%', border: 0, borderRadius: '0.5rem' }}
|
|
484
|
+
checkOrigin={false}
|
|
485
|
+
onResized={handleResized}
|
|
486
|
+
heightCalculationMethod="max"
|
|
487
|
+
/>
|
|
488
|
+
</div>
|
|
468
489
|
</div>
|
|
469
490
|
</div>
|
|
470
491
|
</TabsContent>
|
|
492
|
+
|
|
493
|
+
<TabsContent value="settings" className="m-0">
|
|
494
|
+
<SettingsPreview settings={__SETTINGS_CONFIG__} />
|
|
495
|
+
</TabsContent>
|
|
471
496
|
</div>
|
|
472
497
|
</Tabs>
|
|
473
498
|
</div>
|
|
499
|
+
</>
|
|
474
500
|
);
|
|
475
501
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
@import "tailwindcss";
|
|
2
2
|
@import "tw-animate-css";
|
|
3
3
|
|
|
4
|
-
@custom-variant dark (&:is(.dark *));
|
|
5
|
-
|
|
6
4
|
@theme inline {
|
|
7
5
|
--color-background: var(--background);
|
|
8
6
|
--color-foreground: var(--foreground);
|
|
@@ -41,6 +39,26 @@
|
|
|
41
39
|
--radius-md: calc(var(--radius) - 2px);
|
|
42
40
|
--radius-lg: var(--radius);
|
|
43
41
|
--radius-xl: calc(var(--radius) + 4px);
|
|
42
|
+
|
|
43
|
+
--color-linktree-button-bg: var(--button-style-background);
|
|
44
|
+
--color-linktree-button-bg-hover: var(--button-style-background-hover);
|
|
45
|
+
--color-linktree-button-text: var(--button-style-text);
|
|
46
|
+
--color-linktree-button-border: var(--button-style-border-color);
|
|
47
|
+
--color-linktree-button-contrast: var(--button-style-contrast-color);
|
|
48
|
+
--color-linktree-profile-bg: var(--profileBackground);
|
|
49
|
+
--color-linktree-body-text: var(--bodyText);
|
|
50
|
+
--color-linktree-link-bg: var(--linkBackground);
|
|
51
|
+
--color-linktree-link-text: var(--linkText);
|
|
52
|
+
--color-linktree-link-bg-hover: var(--linkHoverBackground);
|
|
53
|
+
--color-linktree-link-hover-text: var(--linkHoverText);
|
|
54
|
+
--color-linktree-frame: var(--desktop-frame-color);
|
|
55
|
+
--radius-linktree-button: var(--button-style-radius);
|
|
56
|
+
--radius-linktree-button-inner: var(--button-style-inner-radius);
|
|
57
|
+
--spacing-linktree-link-gap: var(--link-gap);
|
|
58
|
+
--spacing-linktree-inner-padding: var(--link-inner-padding);
|
|
59
|
+
--font-linktree-primary: var(--profileFontFamilyPrimary);
|
|
60
|
+
--font-linktree-secondary: var(--profileFontFamilySecondary);
|
|
61
|
+
--shadow-linktree-button: var(--button-style-shadow);
|
|
44
62
|
}
|
|
45
63
|
|
|
46
64
|
:root {
|
|
@@ -78,39 +96,6 @@
|
|
|
78
96
|
--sidebar-ring: oklch(0.708 0 0);
|
|
79
97
|
}
|
|
80
98
|
|
|
81
|
-
.dark {
|
|
82
|
-
--background: oklch(0.145 0 0);
|
|
83
|
-
--foreground: oklch(0.985 0 0);
|
|
84
|
-
--card: oklch(0.205 0 0);
|
|
85
|
-
--card-foreground: oklch(0.985 0 0);
|
|
86
|
-
--popover: oklch(0.205 0 0);
|
|
87
|
-
--popover-foreground: oklch(0.985 0 0);
|
|
88
|
-
--primary: oklch(0.922 0 0);
|
|
89
|
-
--primary-foreground: oklch(0.205 0 0);
|
|
90
|
-
--secondary: oklch(0.269 0 0);
|
|
91
|
-
--secondary-foreground: oklch(0.985 0 0);
|
|
92
|
-
--muted: oklch(0.269 0 0);
|
|
93
|
-
--muted-foreground: oklch(0.708 0 0);
|
|
94
|
-
--accent: oklch(0.269 0 0);
|
|
95
|
-
--accent-foreground: oklch(0.985 0 0);
|
|
96
|
-
--destructive: oklch(0.704 0.191 22.216);
|
|
97
|
-
--border: oklch(1 0 0 / 10%);
|
|
98
|
-
--input: oklch(1 0 0 / 15%);
|
|
99
|
-
--ring: oklch(0.556 0 0);
|
|
100
|
-
--chart-1: oklch(0.488 0.243 264.376);
|
|
101
|
-
--chart-2: oklch(0.696 0.17 162.48);
|
|
102
|
-
--chart-3: oklch(0.769 0.188 70.08);
|
|
103
|
-
--chart-4: oklch(0.627 0.265 303.9);
|
|
104
|
-
--chart-5: oklch(0.645 0.246 16.439);
|
|
105
|
-
--sidebar: oklch(0.205 0 0);
|
|
106
|
-
--sidebar-foreground: oklch(0.985 0 0);
|
|
107
|
-
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
108
|
-
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
109
|
-
--sidebar-accent: oklch(0.269 0 0);
|
|
110
|
-
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
111
|
-
--sidebar-border: oklch(1 0 0 / 10%);
|
|
112
|
-
--sidebar-ring: oklch(0.556 0 0);
|
|
113
|
-
}
|
|
114
99
|
|
|
115
100
|
@layer base {
|
|
116
101
|
* {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500"><svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect width="500" height="500" rx="132" fill="#45E55F"></rect>
|
|
3
|
+
<path d="M226.993 168.546L173.931 114L143.128 145.546L198.786 198.607H120.499V242.395H199.157L143.128 296.822L173.931 327.745L249.993 251.312L326.055 327.745L356.859 296.941L300.829 242.515H379.501V198.607H301.214L356.872 145.546L326.069 114L273.007 168.546V91H226.993V168.546ZM273.007 305.102H226.993V409H273.007V305.102Z" fill="black"></path>
|
|
4
|
+
</svg><style>@media (prefers-color-scheme: light) { :root { filter: none; } }
|
|
5
|
+
@media (prefers-color-scheme: dark) { :root { filter: none; } }
|
|
6
|
+
</style></svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Linktree",
|
|
3
|
+
"short_name": "Linktree",
|
|
4
|
+
"icons": [
|
|
5
|
+
{
|
|
6
|
+
"src": "/web-app-manifest-192x192.png",
|
|
7
|
+
"sizes": "192x192",
|
|
8
|
+
"type": "image/png",
|
|
9
|
+
"purpose": "maskable"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"src": "/web-app-manifest-512x512.png",
|
|
13
|
+
"sizes": "512x512",
|
|
14
|
+
"type": "image/png",
|
|
15
|
+
"purpose": "maskable"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"theme_color": "#ffffff",
|
|
19
|
+
"background_color": "#ffffff",
|
|
20
|
+
"display": "standalone"
|
|
21
|
+
}
|
|
Binary file
|
|
Binary file
|
|
@@ -17,6 +17,11 @@ export default defineConfig({
|
|
|
17
17
|
'@/lib': resolve(__dirname, 'lib'),
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
|
+
// Define fallback values - these will be overridden by dev.ts
|
|
21
|
+
define: {
|
|
22
|
+
__PREVIEW_PROPS__: 'undefined',
|
|
23
|
+
__SETTINGS_CONFIG__: 'undefined',
|
|
24
|
+
},
|
|
20
25
|
build: {
|
|
21
26
|
rollupOptions: {
|
|
22
27
|
input: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAYA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAYA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,iBAsLzD"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -12,16 +12,21 @@ import { buildCommand } from './build.js';
|
|
|
12
12
|
export async function deployCommand(options) {
|
|
13
13
|
const env = options.qa ? 'QA' : 'Production';
|
|
14
14
|
const startTime = Date.now();
|
|
15
|
-
console.log(pc.bold(pc.cyan(`\n→ Deploying to ${env}`)));
|
|
16
|
-
console.log(pc.dim('─'.repeat(50)) + '\n');
|
|
17
15
|
try {
|
|
18
16
|
const config = await getAppConfig(options.qa ? 'qa' : 'production');
|
|
19
17
|
const projectPath = options.path ?? process.cwd();
|
|
18
|
+
// Get LinkApp ID from config (check root first, then .config for backward compatibility)
|
|
19
|
+
const rootConfigPath = join(projectPath, 'linkapp.config.ts');
|
|
20
|
+
const nestedConfigPath = join(projectPath, '.config', 'linkapp.config.ts');
|
|
21
|
+
const configPath = existsSync(rootConfigPath) ? rootConfigPath : nestedConfigPath;
|
|
22
|
+
const linkAppId = await getLinkAppId(configPath);
|
|
23
|
+
console.log(pc.bold(pc.cyan(`\n→ Deploying ${linkAppId} to ${env}`)));
|
|
24
|
+
console.log(pc.dim('─'.repeat(50)) + '\n');
|
|
20
25
|
// Check authentication
|
|
21
26
|
const accessToken = getToken(config.auth.audience);
|
|
22
27
|
if (!accessToken) {
|
|
23
28
|
console.log(pc.red('✗ Not authenticated'));
|
|
24
|
-
console.log(pc.dim(` → Run: ${pc.cyan(`linkapp login${options.qa ? ' --qa' : ''}`)}\n`));
|
|
29
|
+
console.log(pc.dim(` → Run: ${pc.cyan(`npx @linktr.ee/linkapp login${options.qa ? ' --qa' : ''}`)}\n`));
|
|
25
30
|
process.exit(1);
|
|
26
31
|
}
|
|
27
32
|
// Run build if needed
|
|
@@ -51,11 +56,6 @@ export async function deployCommand(options) {
|
|
|
51
56
|
s.start('Generating manifest files');
|
|
52
57
|
await generateManifestFiles(projectPath);
|
|
53
58
|
s.stop('Manifest files generated');
|
|
54
|
-
// Get LinkApp ID from config (check root first, then .config for backward compatibility)
|
|
55
|
-
const rootConfigPath = join(projectPath, 'linkapp.config.ts');
|
|
56
|
-
const nestedConfigPath = join(projectPath, '.config', 'linkapp.config.ts');
|
|
57
|
-
const configPath = existsSync(rootConfigPath) ? rootConfigPath : nestedConfigPath;
|
|
58
|
-
const linkAppId = await getLinkAppId(configPath);
|
|
59
59
|
// Check if LinkApp exists
|
|
60
60
|
s.start('Checking LinkApp status');
|
|
61
61
|
const apiUrl = options.endpoint ?? `${config.link_types_url}/link-types`;
|
|
@@ -123,9 +123,7 @@ export async function deployCommand(options) {
|
|
|
123
123
|
console.log(pc.bold('Next steps:'));
|
|
124
124
|
// Step 1: Build is happening
|
|
125
125
|
if (result.build?.id) {
|
|
126
|
-
const buildUrl =
|
|
127
|
-
? `https://buildkite.com/linktree/link-types-ci-service/builds/${result.build.id}`
|
|
128
|
-
: `https://linkapp-ci.replit.app/?linkTypeId=${result.linkType.linkTypeId}&buildId=${result.build.id}`;
|
|
126
|
+
const buildUrl = `https://linkapp-ci.replit.app/?linkTypeId=${result.linkType.linkTypeId}&buildId=${result.build.id}`;
|
|
129
127
|
console.log(pc.cyan(` 1. Building your LinkApp (this may take a few minutes):`));
|
|
130
128
|
console.log(pc.dim(` ${buildUrl}`));
|
|
131
129
|
console.log();
|
|
@@ -170,7 +168,7 @@ export async function deployCommand(options) {
|
|
|
170
168
|
}
|
|
171
169
|
}
|
|
172
170
|
async function getLinkAppId(configPath) {
|
|
173
|
-
// Load the TypeScript config
|
|
171
|
+
// Load the TypeScript config and derive ID from manifest name (kebab-case)
|
|
174
172
|
const { createJiti } = await import('jiti');
|
|
175
173
|
const jiti = createJiti(import.meta.url, {
|
|
176
174
|
interopDefault: true,
|
|
@@ -178,16 +176,20 @@ async function getLinkAppId(configPath) {
|
|
|
178
176
|
});
|
|
179
177
|
try {
|
|
180
178
|
const config = jiti(configPath);
|
|
181
|
-
if (!config?.
|
|
182
|
-
throw new Error('
|
|
179
|
+
if (!config?.manifest?.name) {
|
|
180
|
+
throw new Error('manifest.name is required in configuration');
|
|
183
181
|
}
|
|
184
|
-
|
|
182
|
+
// Derive ID from name using kebab-case (matches backend behavior)
|
|
183
|
+
return config.manifest.name
|
|
184
|
+
.toLowerCase()
|
|
185
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
186
|
+
.replace(/^-+|-+$/g, ''); // Remove leading/trailing hyphens
|
|
185
187
|
}
|
|
186
188
|
catch (error) {
|
|
187
|
-
if (error instanceof Error && error.message.includes('
|
|
189
|
+
if (error instanceof Error && error.message.includes('manifest.name is required')) {
|
|
188
190
|
throw error;
|
|
189
191
|
}
|
|
190
|
-
throw new Error(`Failed to load
|
|
192
|
+
throw new Error(`Failed to load manifest.name from config: ${error instanceof Error ? error.message : error}`);
|
|
191
193
|
}
|
|
192
194
|
}
|
|
193
195
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAYzC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAE5B,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAYA,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAmDD,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBAqJnD"}
|