@linktr.ee/linkapp 0.0.21 → 0.0.23
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/README.md +5 -5
- package/dev-server/components/SettingsPreview.tsx +330 -0
- package/dev-server/components/ui/dialog.tsx +6 -3
- package/dev-server/env.d.ts +8 -0
- package/dev-server/featured/main.tsx +48 -43
- 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 +7 -4
- package/dev-server/postcss/tailwind-source-fallback.js +94 -0
- package/dev-server/postcss.config.mjs +30 -0
- package/dev-server/preview/Preview.tsx +182 -381
- package/dev-server/preview/preview.css +22 -34
- 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/rsbuild.config.ts +45 -0
- package/dev-server/shared/theme-presets.ts +315 -0
- package/dev-server/shared/theme-utils.ts +38 -0
- package/dev-server/sheet/main.tsx +44 -0
- package/dev-server/sheet.html +56 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +20 -12
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +55 -36
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +74 -59
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +564 -43
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +19 -9
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +9 -4
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/test-url-match-rules.d.ts.map +1 -1
- package/dist/commands/test-url-match-rules.js +24 -13
- 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/build/detect-layouts.d.ts +1 -1
- package/dist/lib/build/detect-layouts.d.ts.map +1 -1
- package/dist/lib/build/detect-layouts.js +8 -7
- package/dist/lib/build/detect-layouts.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 +2 -2
- 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/deploy/validation.d.ts.map +1 -1
- package/dist/lib/deploy/validation.js +8 -5
- package/dist/lib/deploy/validation.js.map +1 -1
- package/dist/lib/rsbuild/config-factory.d.ts +24 -0
- package/dist/lib/rsbuild/config-factory.d.ts.map +1 -0
- package/dist/lib/rsbuild/config-factory.js +135 -0
- package/dist/lib/rsbuild/config-factory.js.map +1 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.d.ts +11 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.d.ts.map +1 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.js +62 -0
- package/dist/lib/rsbuild/plugins/asset-versioning.js.map +1 -0
- package/dist/lib/rsbuild/plugins/copy-public.d.ts +11 -0
- package/dist/lib/rsbuild/plugins/copy-public.d.ts.map +1 -0
- package/dist/lib/rsbuild/plugins/copy-public.js +32 -0
- package/dist/lib/rsbuild/plugins/copy-public.js.map +1 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.d.ts +12 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.d.ts.map +1 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js +60 -0
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js.map +1 -0
- package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
- package/dist/lib/utils/setup-runtime.js +78 -17
- 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 +8 -3
- package/dist/lib/vite/config-factory.js.map +1 -1
- package/dist/lib/vite/plugins/copy-public.d.ts +12 -0
- package/dist/lib/vite/plugins/copy-public.d.ts.map +1 -0
- package/dist/lib/vite/plugins/copy-public.js +31 -0
- package/dist/lib/vite/plugins/copy-public.js.map +1 -0
- package/dist/schema/config.schema.d.ts +121 -32
- package/dist/schema/config.schema.d.ts.map +1 -1
- package/dist/schema/config.schema.js +28 -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 +7 -4
- package/runtime/index.html +19 -36
- package/dev-server/classic/main.tsx +0 -62
- package/dev-server/classic.html +0 -70
- package/dev-server/vite.config.ts +0 -29
|
@@ -21,7 +21,11 @@ function generateMainTsx(projectPath) {
|
|
|
21
21
|
: "";
|
|
22
22
|
// Generate layouts object
|
|
23
23
|
const layoutsObj = layouts
|
|
24
|
-
.map((layout) =>
|
|
24
|
+
.map((layout) => {
|
|
25
|
+
// Quote keys that contain hyphens
|
|
26
|
+
const key = layout.name.includes('-') ? `'${layout.name}'` : layout.name;
|
|
27
|
+
return ` ${key}: ${layout.displayName},`;
|
|
28
|
+
})
|
|
25
29
|
.join("\n");
|
|
26
30
|
// Generate the wrapper logic - use Layout if it exists, otherwise render directly
|
|
27
31
|
const renderLogic = hasLayout
|
|
@@ -29,7 +33,7 @@ function generateMainTsx(projectPath) {
|
|
|
29
33
|
<LayoutComponent {...data} />
|
|
30
34
|
</Layout>`
|
|
31
35
|
: ` <LayoutComponent {...data} />`;
|
|
32
|
-
return `import { StrictMode
|
|
36
|
+
return `import { StrictMode } from 'react'
|
|
33
37
|
import { createRoot } from 'react-dom/client'
|
|
34
38
|
${layoutImport}
|
|
35
39
|
${imports}
|
|
@@ -46,10 +50,22 @@ type ExtensionData = {
|
|
|
46
50
|
__thumbnail?: string
|
|
47
51
|
__linkParams?: any
|
|
48
52
|
__environment?: any
|
|
53
|
+
__layout?: string
|
|
54
|
+
groupLayoutOption?: string
|
|
55
|
+
__theme?: {
|
|
56
|
+
cssVariables: Record<string, string>
|
|
57
|
+
}
|
|
49
58
|
displayType?: string
|
|
50
59
|
[key: string]: any
|
|
51
60
|
}
|
|
52
61
|
|
|
62
|
+
// Declare global window property for theme application
|
|
63
|
+
declare global {
|
|
64
|
+
interface Window {
|
|
65
|
+
__linkapp_applyTheme?: (variables: Record<string, string>) => void
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
53
69
|
const rootElement = document.getElementById('root')
|
|
54
70
|
if (!rootElement) {
|
|
55
71
|
throw new Error('Root element not found')
|
|
@@ -58,20 +74,25 @@ if (!rootElement) {
|
|
|
58
74
|
// Detect if we're running inside an iframe (production on Linktree)
|
|
59
75
|
const isInIframe = window.parent !== window
|
|
60
76
|
|
|
61
|
-
// Mock context for development mode
|
|
77
|
+
// Mock context for development mode (minimal theme data)
|
|
78
|
+
const mockThemeVars = {
|
|
79
|
+
'--button-style-text': '#000000',
|
|
80
|
+
'--button-style-background': '#ffffff',
|
|
81
|
+
'--button-style-inner-radius': '12px',
|
|
82
|
+
'--button-style-border-color': '#e5e7eb',
|
|
83
|
+
'--button-style-background-hover': '#f3f4f6',
|
|
84
|
+
'--button-style-contrast-color': '#ffffff',
|
|
85
|
+
'--profileBackground': '#ffffff',
|
|
86
|
+
}
|
|
87
|
+
|
|
62
88
|
const mockContext: ExtensionData = {
|
|
63
89
|
linkUrl: 'https://example.com/demo',
|
|
64
90
|
showTitle: true,
|
|
91
|
+
__theme: {
|
|
92
|
+
cssVariables: mockThemeVars,
|
|
93
|
+
},
|
|
65
94
|
theme: {
|
|
66
|
-
cssVariables:
|
|
67
|
-
'--button-style-text': '#000000',
|
|
68
|
-
'--button-style-background': '#ffffff',
|
|
69
|
-
'--button-style-inner-radius': '12px',
|
|
70
|
-
'--button-style-border-color': '#e5e7eb',
|
|
71
|
-
'--button-style-background-hover': '#f3f4f6',
|
|
72
|
-
'--button-style-contrast-color': '#ffffff',
|
|
73
|
-
'--profileBackground': '#ffffff',
|
|
74
|
-
},
|
|
95
|
+
cssVariables: mockThemeVars,
|
|
75
96
|
textColor: '#000000',
|
|
76
97
|
backgroundColor: '#ffffff',
|
|
77
98
|
borderRadius: '12px',
|
|
@@ -83,10 +104,33 @@ const mockContext: ExtensionData = {
|
|
|
83
104
|
}
|
|
84
105
|
|
|
85
106
|
function App({ data }: { data: ExtensionData }) {
|
|
86
|
-
// Get layout from query
|
|
107
|
+
// Get layout and groupLayoutOption from extension data (production), query parameters (dev), or defaults
|
|
87
108
|
const params = new URLSearchParams(window.location.search)
|
|
88
|
-
const
|
|
89
|
-
const
|
|
109
|
+
const baseLayout = data.__layout || params.get('layout') || 'classic'
|
|
110
|
+
const groupLayoutOption = data.groupLayoutOption || params.get('groupLayoutOption')
|
|
111
|
+
|
|
112
|
+
// Simple layout selection: sheet.tsx OR featured.tsx OR featured-carousel.tsx
|
|
113
|
+
let layoutName: string
|
|
114
|
+
|
|
115
|
+
if (baseLayout === 'classic') {
|
|
116
|
+
layoutName = 'sheet'
|
|
117
|
+
} else if (baseLayout === 'featured' && groupLayoutOption === 'carousel') {
|
|
118
|
+
layoutName = 'featured-carousel'
|
|
119
|
+
} else {
|
|
120
|
+
layoutName = 'featured'
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const LayoutComponent = layouts[layoutName] || layouts.sheet
|
|
124
|
+
|
|
125
|
+
// Debug logging (only in development or when component is missing)
|
|
126
|
+
if (!isInIframe || !LayoutComponent) {
|
|
127
|
+
console.log('[LinkApp] Layout selection:', {
|
|
128
|
+
__layout: data.__layout,
|
|
129
|
+
groupLayoutOption: data.groupLayoutOption,
|
|
130
|
+
selectedLayout: layoutName,
|
|
131
|
+
availableLayouts: Object.keys(layouts),
|
|
132
|
+
})
|
|
133
|
+
}
|
|
90
134
|
|
|
91
135
|
if (!LayoutComponent) {
|
|
92
136
|
return (
|
|
@@ -112,12 +156,29 @@ const postExtensionReadyMessage = () => {
|
|
|
112
156
|
height: height,
|
|
113
157
|
},
|
|
114
158
|
}
|
|
115
|
-
console.log('[LinkApp] Posting extension-ready message with height:', height)
|
|
116
159
|
window.parent.postMessage(message, '*')
|
|
117
160
|
}
|
|
118
161
|
|
|
162
|
+
type RootInstance = ReturnType<typeof createRoot>
|
|
163
|
+
|
|
164
|
+
type LinkappWindow = Window & {
|
|
165
|
+
__linkappRoot?: RootInstance | undefined
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const linkappWindow = window as LinkappWindow
|
|
169
|
+
|
|
170
|
+
// Create root once and reuse it across reloads
|
|
171
|
+
const root =
|
|
172
|
+
linkappWindow.__linkappRoot ?? createRoot(rootElement)
|
|
173
|
+
|
|
174
|
+
linkappWindow.__linkappRoot = root
|
|
175
|
+
|
|
119
176
|
const renderApp = (data: ExtensionData) => {
|
|
120
|
-
|
|
177
|
+
// Apply theme CSS variables if provided
|
|
178
|
+
if (data.__theme?.cssVariables && window.__linkapp_applyTheme) {
|
|
179
|
+
window.__linkapp_applyTheme(data.__theme.cssVariables)
|
|
180
|
+
}
|
|
181
|
+
|
|
121
182
|
root.render(
|
|
122
183
|
<StrictMode>
|
|
123
184
|
<App data={data} />
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-runtime.js","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,SAAS,eAAe,CAAC,WAAmB;IAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAClC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAEtC,6CAA6C;IAC7C,MAAM,OAAO,GAAG,OAAO;SACpB,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,UAAU,MAAM,CAAC,WAAW,iBAAiB,MAAM,CAAC,QAAQ,GAAG,CAClE;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,2CAA2C;IAC3C,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,EAAE,CAAC;IAEP,0BAA0B;IAC1B,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"setup-runtime.js","sourceRoot":"","sources":["../../../src/lib/utils/setup-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/vite/config-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAOxC,UAAU,iBAAiB;IACzB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"config-factory.d.ts","sourceRoot":"","sources":["../../../src/lib/vite/config-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAOxC,UAAU,iBAAiB;IACzB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAmEzE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import react from '@vitejs/plugin-react';
|
|
2
|
-
import tailwindcss from '@tailwindcss/vite';
|
|
3
2
|
import { resolve, join } from 'node:path';
|
|
4
3
|
import { assetVersioning } from './plugins/asset-versioning.js';
|
|
5
4
|
import { setupRuntime } from '../utils/setup-runtime.js';
|
|
5
|
+
import { copyPublicDirectory } from './plugins/copy-public.js';
|
|
6
6
|
export function createViteConfig(options) {
|
|
7
7
|
const { mode, port = 3000, host = 'localhost', open = false, sourcemap = false, profile = false } = options;
|
|
8
8
|
const isDev = mode === 'development';
|
|
@@ -13,7 +13,8 @@ export function createViteConfig(options) {
|
|
|
13
13
|
mode,
|
|
14
14
|
base: './',
|
|
15
15
|
root: join(projectRoot, '.linkapp'),
|
|
16
|
-
|
|
16
|
+
publicDir: join(projectRoot, 'public'),
|
|
17
|
+
plugins: [react()],
|
|
17
18
|
resolve: {
|
|
18
19
|
alias: {
|
|
19
20
|
'@': resolve(projectRoot),
|
|
@@ -22,6 +23,7 @@ export function createViteConfig(options) {
|
|
|
22
23
|
build: {
|
|
23
24
|
outDir: join(projectRoot, 'dist'),
|
|
24
25
|
emptyOutDir: true,
|
|
26
|
+
copyPublicDir: true,
|
|
25
27
|
sourcemap: sourcemap ? 'hidden' : false,
|
|
26
28
|
minify: !isDev,
|
|
27
29
|
rollupOptions: {
|
|
@@ -43,7 +45,10 @@ export function createViteConfig(options) {
|
|
|
43
45
|
};
|
|
44
46
|
// Add production-only plugins
|
|
45
47
|
if (!isDev) {
|
|
46
|
-
config.plugins?.push(
|
|
48
|
+
config.plugins?.push(copyPublicDirectory({
|
|
49
|
+
publicDir: join(projectRoot, 'public'),
|
|
50
|
+
outDir: join(projectRoot, 'dist'),
|
|
51
|
+
}), assetVersioning({
|
|
47
52
|
manifestPath: 'build-manifest.json',
|
|
48
53
|
}));
|
|
49
54
|
// Add bundle analyzer if requested
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-factory.js","sourceRoot":"","sources":["../../../src/lib/vite/config-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"config-factory.js","sourceRoot":"","sources":["../../../src/lib/vite/config-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,sBAAsB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAW9D,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,WAAW,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IAE3G,MAAM,KAAK,GAAG,IAAI,KAAK,aAAa,CAAA;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAEjC,wCAAwC;IACxC,YAAY,CAAC,WAAW,CAAC,CAAA;IAEzB,MAAM,MAAM,GAAiB;QAC3B,IAAI;QACJ,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;QACtC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;aAC1B;SACF;QACD,KAAK,EAAE;YACL,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;YACjC,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YACvC,MAAM,EAAE,CAAC,KAAK;YACd,aAAa,EAAE;gBACb,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC;gBAClD,MAAM,EAAE;oBACN,cAAc,EAAE,kBAAkB;oBAClC,cAAc,EAAE,kBAAkB;oBAClC,cAAc,EAAE,qBAAqB;iBACtC;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,KAAK;SAClB;KACF,CAAA;IAED,8BAA8B;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,EAAE,IAAI,CAClB,mBAAmB,CAAC;YAClB,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;YACtC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;SAClC,CAAC,EACF,eAAe,CAAC;YACd,YAAY,EAAE,qBAAqB;SACpC,CAAC,CACH,CAAA;QAED,mCAAmC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,uEAAuE;YACvE,kFAAkF;YAClF,OAAO,CAAC,IAAI,CACV,8GAA8G,CAC/G,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
interface CopyPublicOptions {
|
|
3
|
+
publicDir: string;
|
|
4
|
+
outDir: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Vite plugin that ensures public directory files are copied to dist
|
|
8
|
+
* This is a workaround for cases where Vite's copyPublicDir doesn't work as expected
|
|
9
|
+
*/
|
|
10
|
+
export declare function copyPublicDirectory(options: CopyPublicOptions): Plugin;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=copy-public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-public.d.ts","sourceRoot":"","sources":["../../../../src/lib/vite/plugins/copy-public.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAGlC,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA0BtE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cpSync, existsSync } from 'node:fs';
|
|
2
|
+
/**
|
|
3
|
+
* Vite plugin that ensures public directory files are copied to dist
|
|
4
|
+
* This is a workaround for cases where Vite's copyPublicDir doesn't work as expected
|
|
5
|
+
*/
|
|
6
|
+
export function copyPublicDirectory(options) {
|
|
7
|
+
return {
|
|
8
|
+
name: 'linkapp:copy-public',
|
|
9
|
+
writeBundle() {
|
|
10
|
+
const { publicDir, outDir } = options;
|
|
11
|
+
if (!existsSync(publicDir)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
cpSync(publicDir, outDir, {
|
|
16
|
+
recursive: true,
|
|
17
|
+
force: true,
|
|
18
|
+
filter: (src) => {
|
|
19
|
+
// Skip hidden files and directories
|
|
20
|
+
const basename = src.split('/').pop() || '';
|
|
21
|
+
return !basename.startsWith('.');
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.warn('Failed to copy public directory:', error);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=copy-public.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-public.js","sourceRoot":"","sources":["../../../../src/lib/vite/plugins/copy-public.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAO5C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA0B;IAC5D,OAAO;QACL,IAAI,EAAE,qBAAqB;QAE3B,WAAW;YACT,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAErC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,OAAM;YACR,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE;oBACxB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;wBACd,oCAAoC;wBACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;wBAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAClC,CAAC;iBACF,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -60,8 +60,74 @@ declare const urlMatchRulesSchema: z.ZodObject<{
|
|
|
60
60
|
pathname: z.ZodString;
|
|
61
61
|
}, z.core.$strip>>>;
|
|
62
62
|
}, z.core.$strip>;
|
|
63
|
+
declare const themeSchema: z.ZodObject<{
|
|
64
|
+
isOutlineStyle: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
+
cssVariables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
66
|
+
textColor: z.ZodString;
|
|
67
|
+
backgroundColor: z.ZodString;
|
|
68
|
+
borderRadius: z.ZodString;
|
|
69
|
+
borderColor: z.ZodString;
|
|
70
|
+
backgroundHover: z.ZodString;
|
|
71
|
+
contrastColor: z.ZodString;
|
|
72
|
+
textHoverColor: z.ZodString;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
declare const viewportSchema: z.ZodObject<{
|
|
75
|
+
width: z.ZodNumber;
|
|
76
|
+
height: z.ZodNumber;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
declare const positionSchema: z.ZodObject<{
|
|
79
|
+
latitude: z.ZodNumber;
|
|
80
|
+
longitude: z.ZodNumber;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
declare const preview_props_schema: z.ZodObject<{
|
|
83
|
+
__linkUrl: z.ZodOptional<z.ZodString>;
|
|
84
|
+
__thumbnail: z.ZodOptional<z.ZodString>;
|
|
85
|
+
__linkParams: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
86
|
+
__layout: z.ZodOptional<z.ZodEnum<{
|
|
87
|
+
featured: "featured";
|
|
88
|
+
classic: "classic";
|
|
89
|
+
}>>;
|
|
90
|
+
groupLayoutOption: z.ZodOptional<z.ZodEnum<{
|
|
91
|
+
featured: "featured";
|
|
92
|
+
stack: "stack";
|
|
93
|
+
grid: "grid";
|
|
94
|
+
carousel: "carousel";
|
|
95
|
+
featuredSubscribe: "featuredSubscribe";
|
|
96
|
+
showcase: "showcase";
|
|
97
|
+
}>>;
|
|
98
|
+
displayType: z.ZodOptional<z.ZodEnum<{
|
|
99
|
+
none: "none";
|
|
100
|
+
accordion: "accordion";
|
|
101
|
+
dialog: "dialog";
|
|
102
|
+
}>>;
|
|
103
|
+
linkTitle: z.ZodOptional<z.ZodString>;
|
|
104
|
+
__environment: z.ZodOptional<z.ZodObject<{
|
|
105
|
+
GRAPH_ENDPOINT: z.ZodOptional<z.ZodString>;
|
|
106
|
+
RECAPTCHA_SITE_KEY: z.ZodOptional<z.ZodString>;
|
|
107
|
+
GRAPHQL_CLIENT_NAME: z.ZodOptional<z.ZodString>;
|
|
108
|
+
GRAPHQL_CLIENT_VERSION: z.ZodOptional<z.ZodString>;
|
|
109
|
+
COUNTRY_CODE: z.ZodOptional<z.ZodString>;
|
|
110
|
+
PROFILE: z.ZodOptional<z.ZodString>;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
layout: z.ZodOptional<z.ZodEnum<{
|
|
113
|
+
featured: "featured";
|
|
114
|
+
stack: "stack";
|
|
115
|
+
grid: "grid";
|
|
116
|
+
carousel: "carousel";
|
|
117
|
+
}>>;
|
|
118
|
+
theme: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
isOutlineStyle: z.ZodOptional<z.ZodBoolean>;
|
|
120
|
+
cssVariables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
121
|
+
textColor: z.ZodString;
|
|
122
|
+
backgroundColor: z.ZodString;
|
|
123
|
+
borderRadius: z.ZodString;
|
|
124
|
+
borderColor: z.ZodString;
|
|
125
|
+
backgroundHover: z.ZodString;
|
|
126
|
+
contrastColor: z.ZodString;
|
|
127
|
+
textHoverColor: z.ZodString;
|
|
128
|
+
}, z.core.$strip>>;
|
|
129
|
+
}, z.core.$catchall<z.ZodUnknown>>;
|
|
63
130
|
export declare const linkAppConfigSchema: z.ZodObject<{
|
|
64
|
-
id: z.ZodString;
|
|
65
131
|
manifest: z.ZodObject<{
|
|
66
132
|
name: z.ZodString;
|
|
67
133
|
tagline: z.ZodString;
|
|
@@ -123,15 +189,43 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
123
189
|
}, z.core.$strip>>>;
|
|
124
190
|
}, z.core.$strip>>;
|
|
125
191
|
preview_props: z.ZodOptional<z.ZodObject<{
|
|
126
|
-
|
|
192
|
+
__linkUrl: z.ZodOptional<z.ZodString>;
|
|
193
|
+
__thumbnail: z.ZodOptional<z.ZodString>;
|
|
194
|
+
__linkParams: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
195
|
+
__layout: z.ZodOptional<z.ZodEnum<{
|
|
196
|
+
featured: "featured";
|
|
197
|
+
classic: "classic";
|
|
198
|
+
}>>;
|
|
199
|
+
groupLayoutOption: z.ZodOptional<z.ZodEnum<{
|
|
200
|
+
featured: "featured";
|
|
201
|
+
stack: "stack";
|
|
202
|
+
grid: "grid";
|
|
203
|
+
carousel: "carousel";
|
|
204
|
+
featuredSubscribe: "featuredSubscribe";
|
|
205
|
+
showcase: "showcase";
|
|
206
|
+
}>>;
|
|
207
|
+
displayType: z.ZodOptional<z.ZodEnum<{
|
|
208
|
+
none: "none";
|
|
209
|
+
accordion: "accordion";
|
|
210
|
+
dialog: "dialog";
|
|
211
|
+
}>>;
|
|
212
|
+
linkTitle: z.ZodOptional<z.ZodString>;
|
|
213
|
+
__environment: z.ZodOptional<z.ZodObject<{
|
|
214
|
+
GRAPH_ENDPOINT: z.ZodOptional<z.ZodString>;
|
|
215
|
+
RECAPTCHA_SITE_KEY: z.ZodOptional<z.ZodString>;
|
|
216
|
+
GRAPHQL_CLIENT_NAME: z.ZodOptional<z.ZodString>;
|
|
217
|
+
GRAPHQL_CLIENT_VERSION: z.ZodOptional<z.ZodString>;
|
|
218
|
+
COUNTRY_CODE: z.ZodOptional<z.ZodString>;
|
|
219
|
+
PROFILE: z.ZodOptional<z.ZodString>;
|
|
220
|
+
}, z.core.$strip>>;
|
|
127
221
|
layout: z.ZodOptional<z.ZodEnum<{
|
|
128
222
|
featured: "featured";
|
|
129
223
|
stack: "stack";
|
|
130
224
|
grid: "grid";
|
|
131
225
|
carousel: "carousel";
|
|
132
226
|
}>>;
|
|
133
|
-
theme: z.ZodObject<{
|
|
134
|
-
isOutlineStyle: z.ZodBoolean
|
|
227
|
+
theme: z.ZodOptional<z.ZodObject<{
|
|
228
|
+
isOutlineStyle: z.ZodOptional<z.ZodBoolean>;
|
|
135
229
|
cssVariables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
136
230
|
textColor: z.ZodString;
|
|
137
231
|
backgroundColor: z.ZodString;
|
|
@@ -140,25 +234,19 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
140
234
|
backgroundHover: z.ZodString;
|
|
141
235
|
contrastColor: z.ZodString;
|
|
142
236
|
textHoverColor: z.ZodString;
|
|
143
|
-
}, z.core.$strip>;
|
|
144
|
-
locale: z.ZodString;
|
|
145
|
-
currency: z.ZodString;
|
|
146
|
-
username: z.ZodString;
|
|
147
|
-
viewport: z.ZodObject<{
|
|
148
|
-
width: z.ZodNumber;
|
|
149
|
-
height: z.ZodNumber;
|
|
150
|
-
}, z.core.$strip>;
|
|
151
|
-
position: z.ZodOptional<z.ZodObject<{
|
|
152
|
-
latitude: z.ZodNumber;
|
|
153
|
-
longitude: z.ZodNumber;
|
|
154
237
|
}, z.core.$strip>>;
|
|
155
238
|
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
156
239
|
}, z.core.$strip>;
|
|
240
|
+
export { preview_props_schema, themeSchema, viewportSchema, positionSchema };
|
|
157
241
|
export type LinkAppConfig = z.infer<typeof linkAppConfigSchema>;
|
|
158
242
|
export type LinkAppManifest = z.infer<typeof manifestSchema>;
|
|
159
243
|
export type LinkAppSettings = z.infer<typeof settingsSchema>;
|
|
160
244
|
export type UrlMatchRules = z.infer<typeof urlMatchRulesSchema>;
|
|
161
245
|
export type SettingsElement = z.infer<typeof settingsElementSchema>;
|
|
246
|
+
export type PreviewProps = z.infer<typeof preview_props_schema>;
|
|
247
|
+
export type LinkAppTheme = z.infer<typeof themeSchema>;
|
|
248
|
+
export type Viewport = z.infer<typeof viewportSchema>;
|
|
249
|
+
export type Position = z.infer<typeof positionSchema>;
|
|
162
250
|
/**
|
|
163
251
|
* Validates a LinkApp configuration object
|
|
164
252
|
* @param config - The configuration object to validate
|
|
@@ -172,7 +260,6 @@ export declare function validateLinkAppConfig(config: unknown): LinkAppConfig;
|
|
|
172
260
|
* @returns Success object with data or error object with issues
|
|
173
261
|
*/
|
|
174
262
|
export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeParseResult<{
|
|
175
|
-
id: string;
|
|
176
263
|
manifest: {
|
|
177
264
|
name: string;
|
|
178
265
|
tagline: string;
|
|
@@ -225,9 +312,23 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
225
312
|
} | undefined;
|
|
226
313
|
preview_props?: {
|
|
227
314
|
[x: string]: unknown;
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
315
|
+
__linkUrl?: string | undefined;
|
|
316
|
+
__thumbnail?: string | undefined;
|
|
317
|
+
__linkParams?: Record<string, unknown> | null | undefined;
|
|
318
|
+
__layout?: "featured" | "classic" | undefined;
|
|
319
|
+
groupLayoutOption?: "featured" | "stack" | "grid" | "carousel" | "featuredSubscribe" | "showcase" | undefined;
|
|
320
|
+
displayType?: "none" | "accordion" | "dialog" | undefined;
|
|
321
|
+
linkTitle?: string | undefined;
|
|
322
|
+
__environment?: {
|
|
323
|
+
GRAPH_ENDPOINT?: string | undefined;
|
|
324
|
+
RECAPTCHA_SITE_KEY?: string | undefined;
|
|
325
|
+
GRAPHQL_CLIENT_NAME?: string | undefined;
|
|
326
|
+
GRAPHQL_CLIENT_VERSION?: string | undefined;
|
|
327
|
+
COUNTRY_CODE?: string | undefined;
|
|
328
|
+
PROFILE?: string | undefined;
|
|
329
|
+
} | undefined;
|
|
330
|
+
layout?: "featured" | "stack" | "grid" | "carousel" | undefined;
|
|
331
|
+
theme?: {
|
|
231
332
|
cssVariables: Record<string, string>;
|
|
232
333
|
textColor: string;
|
|
233
334
|
backgroundColor: string;
|
|
@@ -236,18 +337,7 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
236
337
|
backgroundHover: string;
|
|
237
338
|
contrastColor: string;
|
|
238
339
|
textHoverColor: string;
|
|
239
|
-
|
|
240
|
-
locale: string;
|
|
241
|
-
currency: string;
|
|
242
|
-
username: string;
|
|
243
|
-
viewport: {
|
|
244
|
-
width: number;
|
|
245
|
-
height: number;
|
|
246
|
-
};
|
|
247
|
-
layout?: "featured" | "stack" | "grid" | "carousel" | undefined;
|
|
248
|
-
position?: {
|
|
249
|
-
latitude: number;
|
|
250
|
-
longitude: number;
|
|
340
|
+
isOutlineStyle?: boolean | undefined;
|
|
251
341
|
} | undefined;
|
|
252
342
|
} | undefined;
|
|
253
343
|
}>;
|
|
@@ -255,5 +345,4 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
255
345
|
* Type guard to check if a value is a valid LinkAppConfig
|
|
256
346
|
*/
|
|
257
347
|
export declare function isLinkAppConfig(value: unknown): value is LinkAppConfig;
|
|
258
|
-
export {};
|
|
259
348
|
//# sourceMappingURL=config.schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA8BvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBlB,CAAA;AAqFF,QAAA,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAqB/B,CAAA;AAGX,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;iBAYlB,CAAA;AAGF,QAAA,MAAM,mBAAmB;;;;;;;;iBAgBvB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA8BvB,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBlB,CAAA;AAqFF,QAAA,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAqB/B,CAAA;AAGX,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;iBAYlB,CAAA;AAGF,QAAA,MAAM,mBAAmB;;;;;;;;iBAgBvB,CAAA;AAGF,QAAA,MAAM,WAAW;;;;;;;;;;iBAWf,CAAA;AAEF,QAAA,MAAM,cAAc;;;iBAGlB,CAAA;AAEF,QAAA,MAAM,cAAc;;;iBAGlB,CAAA;AAGF,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAyBF,CAAA;AAGxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK9B,CAAA;AAGF,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,CAAA;AAG5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAErD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE"}
|
|
@@ -28,7 +28,7 @@ const manifestSchema = z.object({
|
|
|
28
28
|
.string()
|
|
29
29
|
.min(3, 'Name must be at least 3 characters')
|
|
30
30
|
.max(50, 'Name must be at most 50 characters')
|
|
31
|
-
.describe('The name of the link type'),
|
|
31
|
+
.describe('The name of the link type (will be kebab-cased to generate the LinkApp ID)'),
|
|
32
32
|
tagline: z
|
|
33
33
|
.string()
|
|
34
34
|
.min(3, 'Tagline must be at least 3 characters')
|
|
@@ -165,10 +165,9 @@ const urlMatchRulesSchema = z.object({
|
|
|
165
165
|
}))
|
|
166
166
|
.optional(),
|
|
167
167
|
});
|
|
168
|
-
//
|
|
169
|
-
// Note: Uses camelCase to match LinktreeContext interface
|
|
168
|
+
// Theme Schema
|
|
170
169
|
const themeSchema = z.object({
|
|
171
|
-
isOutlineStyle: z.boolean(),
|
|
170
|
+
isOutlineStyle: z.boolean().optional(),
|
|
172
171
|
cssVariables: z.record(z.string(), z.string()),
|
|
173
172
|
// Legacy properties (deprecated - maintained for backward compatibility)
|
|
174
173
|
textColor: z.string(),
|
|
@@ -187,30 +186,42 @@ const positionSchema = z.object({
|
|
|
187
186
|
latitude: z.number(),
|
|
188
187
|
longitude: z.number(),
|
|
189
188
|
});
|
|
189
|
+
// Preview Props Schema - for development mode
|
|
190
190
|
const preview_props_schema = z
|
|
191
191
|
.object({
|
|
192
|
-
|
|
192
|
+
// Extension data
|
|
193
|
+
__linkUrl: z.string().optional(),
|
|
194
|
+
__thumbnail: z.string().optional(),
|
|
195
|
+
__linkParams: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
196
|
+
__layout: z.enum(['classic', 'featured']).optional(),
|
|
197
|
+
groupLayoutOption: z.enum(['stack', 'grid', 'featured', 'carousel', 'featuredSubscribe', 'showcase']).optional(),
|
|
198
|
+
displayType: z.enum(['none', 'accordion', 'dialog']).optional(),
|
|
199
|
+
linkTitle: z.string().optional(),
|
|
200
|
+
// Extension environment
|
|
201
|
+
__environment: z
|
|
202
|
+
.object({
|
|
203
|
+
GRAPH_ENDPOINT: z.string().optional(),
|
|
204
|
+
RECAPTCHA_SITE_KEY: z.string().optional(),
|
|
205
|
+
GRAPHQL_CLIENT_NAME: z.string().optional(),
|
|
206
|
+
GRAPHQL_CLIENT_VERSION: z.string().optional(),
|
|
207
|
+
COUNTRY_CODE: z.string().optional(),
|
|
208
|
+
PROFILE: z.string().optional(),
|
|
209
|
+
})
|
|
210
|
+
.optional(),
|
|
211
|
+
// Layout and theme
|
|
193
212
|
layout: z.enum(['stack', 'grid', 'carousel', 'featured']).optional(),
|
|
194
|
-
theme: themeSchema,
|
|
195
|
-
locale: z.string(),
|
|
196
|
-
currency: z.string(),
|
|
197
|
-
username: z.string(),
|
|
198
|
-
viewport: viewportSchema,
|
|
199
|
-
position: positionSchema.optional(),
|
|
213
|
+
theme: themeSchema.optional(),
|
|
200
214
|
})
|
|
201
|
-
.catchall(z.unknown());
|
|
215
|
+
.catchall(z.unknown());
|
|
202
216
|
// Main LinkApp Config Schema
|
|
203
217
|
export const linkAppConfigSchema = z.object({
|
|
204
|
-
id: z
|
|
205
|
-
.string()
|
|
206
|
-
.min(1, 'LinkApp ID is required')
|
|
207
|
-
.regex(/^[a-z0-9-]+$/, 'LinkApp ID must contain only lowercase letters, numbers, and hyphens')
|
|
208
|
-
.describe('Unique identifier for the linkapp'),
|
|
209
218
|
manifest: manifestSchema,
|
|
210
219
|
settings: settingsSchema,
|
|
211
220
|
url_match_rules: urlMatchRulesSchema.optional(),
|
|
212
221
|
preview_props: preview_props_schema.optional(),
|
|
213
222
|
});
|
|
223
|
+
// Export schemas for external use
|
|
224
|
+
export { preview_props_schema, themeSchema, viewportSchema, positionSchema };
|
|
214
225
|
/**
|
|
215
226
|
* Validates a LinkApp configuration object
|
|
216
227
|
* @param config - The configuration object to validate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;GAGG;AAEH,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AAClC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;AACtC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,qCAAqC,CAAC,CAAA;AAEhG,0BAA0B;AAC1B,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACvE,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACnE,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC5E,OAAO,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACjE,CAAC,CAAA;AAEF,gBAAgB;AAChB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,kCAAkC,CAAC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,WAAW;KACnB,CAAC;CACH,CAAC,CAAA;AAEF,kBAAkB;AAClB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,oCAAoC,CAAC;SAC5C,GAAG,CAAC,EAAE,EAAE,oCAAoC,CAAC;SAC7C,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"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"}
|