@linktr.ee/linkapp 0.0.9 → 0.0.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/dev-server/classic/main.tsx +46 -8
- package/dev-server/classic.html +58 -0
- package/dev-server/components/ui/dialog.tsx +19 -42
- package/dev-server/components/ui/tabs.tsx +6 -6
- package/dev-server/featured/main.tsx +46 -8
- package/dev-server/featured.html +58 -0
- package/dev-server/lib/utils.ts +2 -2
- package/dev-server/preview/Preview.tsx +428 -15
- package/dev-server/vite.config.ts +11 -11
- package/dist/cli.js +5 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +3 -3
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +10 -4
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +15 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/components/ThemeStyle.d.ts +30 -0
- package/dist/components/ThemeStyle.d.ts.map +1 -0
- package/dist/components/ThemeStyle.js +33 -0
- package/dist/components/ThemeStyle.js.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -0
- package/dist/lib/build/detect-layouts.d.ts +2 -2
- package/dist/lib/build/detect-layouts.d.ts.map +1 -1
- package/dist/lib/build/detect-layouts.js +14 -25
- package/dist/lib/build/detect-layouts.js.map +1 -1
- package/dist/lib/config/load-config.d.ts +9 -0
- package/dist/lib/config/load-config.d.ts.map +1 -0
- package/dist/lib/config/load-config.js +31 -0
- package/dist/lib/config/load-config.js.map +1 -0
- package/dist/lib/deploy/generate-manifest-files.d.ts.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.js +20 -35
- package/dist/lib/deploy/generate-manifest-files.js.map +1 -1
- package/dist/lib/deploy/pack-project.d.ts.map +1 -1
- package/dist/lib/deploy/pack-project.js +32 -5
- package/dist/lib/deploy/pack-project.js.map +1 -1
- package/dist/lib/deploy/upload.d.ts +1 -0
- package/dist/lib/deploy/upload.d.ts.map +1 -1
- package/dist/lib/deploy/upload.js +17 -7
- 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 +4 -61
- package/dist/lib/deploy/validation.js.map +1 -1
- package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
- package/dist/lib/utils/setup-runtime.js +46 -19
- 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 +2 -2
- package/dist/lib/vite/config-factory.js.map +1 -1
- package/dist/lib/vite/plugins/asset-versioning.d.ts.map +1 -1
- package/dist/lib/vite/plugins/asset-versioning.js +4 -2
- package/dist/lib/vite/plugins/asset-versioning.js.map +1 -1
- package/dist/schema/config.schema.d.ts +126 -99
- package/dist/schema/config.schema.d.ts.map +1 -1
- package/dist/schema/config.schema.js +140 -20
- package/dist/schema/config.schema.js.map +1 -1
- package/dist/sdk/index.d.ts +21 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +21 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/send-message.d.ts +16 -0
- package/dist/sdk/send-message.d.ts.map +1 -0
- package/dist/sdk/send-message.js +34 -0
- package/dist/sdk/send-message.js.map +1 -0
- package/dist/sdk/use-open-popup.d.ts +23 -0
- package/dist/sdk/use-open-popup.d.ts.map +1 -0
- package/dist/sdk/use-open-popup.js +29 -0
- package/dist/sdk/use-open-popup.js.map +1 -0
- package/dist/types.d.ts +162 -30
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +41 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -3
- package/runtime/index.html +58 -0
|
@@ -3,11 +3,11 @@ declare const manifestSchema: z.ZodObject<{
|
|
|
3
3
|
name: z.ZodString;
|
|
4
4
|
tagline: z.ZodString;
|
|
5
5
|
description: z.ZodArray<z.ZodString>;
|
|
6
|
-
|
|
6
|
+
manifest_version: z.ZodString;
|
|
7
7
|
version: z.ZodString;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
supporting_links: z.ZodObject<{
|
|
9
|
+
terms_of_service: z.ZodString;
|
|
10
|
+
privacy_policy: z.ZodString;
|
|
11
11
|
documentation: z.ZodOptional<z.ZodString>;
|
|
12
12
|
website: z.ZodOptional<z.ZodString>;
|
|
13
13
|
}, z.core.$strip>;
|
|
@@ -15,9 +15,9 @@ declare const manifestSchema: z.ZodObject<{
|
|
|
15
15
|
grow: "grow";
|
|
16
16
|
sell: "sell";
|
|
17
17
|
share: "share";
|
|
18
|
-
|
|
18
|
+
learn: "learn";
|
|
19
19
|
}>;
|
|
20
|
-
|
|
20
|
+
search_terms: z.ZodArray<z.ZodString>;
|
|
21
21
|
author: z.ZodObject<{
|
|
22
22
|
name: z.ZodString;
|
|
23
23
|
accounts: z.ZodArray<z.ZodString>;
|
|
@@ -27,51 +27,28 @@ declare const manifestSchema: z.ZodObject<{
|
|
|
27
27
|
}, z.core.$strip>;
|
|
28
28
|
}, z.core.$strip>;
|
|
29
29
|
}, z.core.$strip>;
|
|
30
|
-
declare const settingsElementSchema: z.
|
|
31
|
-
id: z.ZodString;
|
|
32
|
-
inputType: z.ZodEnum<{
|
|
33
|
-
number: "number";
|
|
34
|
-
text: "text";
|
|
35
|
-
switch: "switch";
|
|
36
|
-
select: "select";
|
|
37
|
-
color: "color";
|
|
38
|
-
textarea: "textarea";
|
|
39
|
-
}>;
|
|
40
|
-
title: z.ZodString;
|
|
41
|
-
description: z.ZodOptional<z.ZodString>;
|
|
42
|
-
defaultValue: z.ZodOptional<z.ZodUnknown>;
|
|
43
|
-
label: z.ZodOptional<z.ZodString>;
|
|
44
|
-
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
45
|
-
label: z.ZodString;
|
|
46
|
-
value: z.ZodUnknown;
|
|
47
|
-
}, z.core.$strip>>>;
|
|
48
|
-
}, z.core.$strip>;
|
|
30
|
+
declare const settingsElementSchema: z.ZodType<any>;
|
|
49
31
|
declare const settingsSchema: z.ZodObject<{
|
|
50
32
|
title: z.ZodString;
|
|
51
|
-
|
|
52
|
-
|
|
33
|
+
icon: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
file: "file";
|
|
35
|
+
settings: "settings";
|
|
36
|
+
text_and_media: "text_and_media";
|
|
37
|
+
question: "question";
|
|
38
|
+
}>>;
|
|
39
|
+
uses_url: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
settings_tab_title: z.ZodOptional<z.ZodString>;
|
|
41
|
+
overview: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
title: z.ZodOptional<z.ZodString>;
|
|
43
|
+
description: z.ZodString;
|
|
44
|
+
}, z.core.$strip>>;
|
|
45
|
+
setup_instructions: z.ZodOptional<z.ZodObject<{
|
|
46
|
+
title: z.ZodOptional<z.ZodString>;
|
|
53
47
|
description: z.ZodString;
|
|
54
|
-
supportLink: z.ZodString;
|
|
55
|
-
}, z.core.$strip>;
|
|
56
|
-
elements: z.ZodArray<z.ZodObject<{
|
|
57
|
-
id: z.ZodString;
|
|
58
|
-
inputType: z.ZodEnum<{
|
|
59
|
-
number: "number";
|
|
60
|
-
text: "text";
|
|
61
|
-
switch: "switch";
|
|
62
|
-
select: "select";
|
|
63
|
-
color: "color";
|
|
64
|
-
textarea: "textarea";
|
|
65
|
-
}>;
|
|
66
|
-
title: z.ZodString;
|
|
67
|
-
description: z.ZodOptional<z.ZodString>;
|
|
68
|
-
defaultValue: z.ZodOptional<z.ZodUnknown>;
|
|
69
|
-
label: z.ZodOptional<z.ZodString>;
|
|
70
|
-
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
71
|
-
label: z.ZodString;
|
|
72
|
-
value: z.ZodUnknown;
|
|
73
|
-
}, z.core.$strip>>>;
|
|
74
48
|
}, z.core.$strip>>;
|
|
49
|
+
elements: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
|
|
50
|
+
has_settings: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
+
supports_featured_layout: z.ZodOptional<z.ZodBoolean>;
|
|
75
52
|
}, z.core.$strip>;
|
|
76
53
|
declare const urlMatchRulesSchema: z.ZodObject<{
|
|
77
54
|
hostnames: z.ZodArray<z.ZodString>;
|
|
@@ -88,11 +65,11 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
88
65
|
name: z.ZodString;
|
|
89
66
|
tagline: z.ZodString;
|
|
90
67
|
description: z.ZodArray<z.ZodString>;
|
|
91
|
-
|
|
68
|
+
manifest_version: z.ZodString;
|
|
92
69
|
version: z.ZodString;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
70
|
+
supporting_links: z.ZodObject<{
|
|
71
|
+
terms_of_service: z.ZodString;
|
|
72
|
+
privacy_policy: z.ZodString;
|
|
96
73
|
documentation: z.ZodOptional<z.ZodString>;
|
|
97
74
|
website: z.ZodOptional<z.ZodString>;
|
|
98
75
|
}, z.core.$strip>;
|
|
@@ -100,9 +77,9 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
100
77
|
grow: "grow";
|
|
101
78
|
sell: "sell";
|
|
102
79
|
share: "share";
|
|
103
|
-
|
|
80
|
+
learn: "learn";
|
|
104
81
|
}>;
|
|
105
|
-
|
|
82
|
+
search_terms: z.ZodArray<z.ZodString>;
|
|
106
83
|
author: z.ZodObject<{
|
|
107
84
|
name: z.ZodString;
|
|
108
85
|
accounts: z.ZodArray<z.ZodString>;
|
|
@@ -114,32 +91,27 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
114
91
|
}, z.core.$strip>;
|
|
115
92
|
settings: z.ZodObject<{
|
|
116
93
|
title: z.ZodString;
|
|
117
|
-
|
|
118
|
-
|
|
94
|
+
icon: z.ZodOptional<z.ZodEnum<{
|
|
95
|
+
file: "file";
|
|
96
|
+
settings: "settings";
|
|
97
|
+
text_and_media: "text_and_media";
|
|
98
|
+
question: "question";
|
|
99
|
+
}>>;
|
|
100
|
+
uses_url: z.ZodOptional<z.ZodBoolean>;
|
|
101
|
+
settings_tab_title: z.ZodOptional<z.ZodString>;
|
|
102
|
+
overview: z.ZodOptional<z.ZodObject<{
|
|
103
|
+
title: z.ZodOptional<z.ZodString>;
|
|
104
|
+
description: z.ZodString;
|
|
105
|
+
}, z.core.$strip>>;
|
|
106
|
+
setup_instructions: z.ZodOptional<z.ZodObject<{
|
|
107
|
+
title: z.ZodOptional<z.ZodString>;
|
|
119
108
|
description: z.ZodString;
|
|
120
|
-
supportLink: z.ZodString;
|
|
121
|
-
}, z.core.$strip>;
|
|
122
|
-
elements: z.ZodArray<z.ZodObject<{
|
|
123
|
-
id: z.ZodString;
|
|
124
|
-
inputType: z.ZodEnum<{
|
|
125
|
-
number: "number";
|
|
126
|
-
text: "text";
|
|
127
|
-
switch: "switch";
|
|
128
|
-
select: "select";
|
|
129
|
-
color: "color";
|
|
130
|
-
textarea: "textarea";
|
|
131
|
-
}>;
|
|
132
|
-
title: z.ZodString;
|
|
133
|
-
description: z.ZodOptional<z.ZodString>;
|
|
134
|
-
defaultValue: z.ZodOptional<z.ZodUnknown>;
|
|
135
|
-
label: z.ZodOptional<z.ZodString>;
|
|
136
|
-
options: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
137
|
-
label: z.ZodString;
|
|
138
|
-
value: z.ZodUnknown;
|
|
139
|
-
}, z.core.$strip>>>;
|
|
140
109
|
}, z.core.$strip>>;
|
|
110
|
+
elements: z.ZodArray<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
|
|
111
|
+
has_settings: z.ZodOptional<z.ZodBoolean>;
|
|
112
|
+
supports_featured_layout: z.ZodOptional<z.ZodBoolean>;
|
|
141
113
|
}, z.core.$strip>;
|
|
142
|
-
|
|
114
|
+
url_match_rules: z.ZodOptional<z.ZodObject<{
|
|
143
115
|
hostnames: z.ZodArray<z.ZodString>;
|
|
144
116
|
patterns: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
145
117
|
pathname: z.ZodString;
|
|
@@ -148,6 +120,37 @@ export declare const linkAppConfigSchema: z.ZodObject<{
|
|
|
148
120
|
pathname: z.ZodString;
|
|
149
121
|
}, z.core.$strip>>>;
|
|
150
122
|
}, z.core.$strip>>;
|
|
123
|
+
preview_props: z.ZodOptional<z.ZodObject<{
|
|
124
|
+
linkUrl: z.ZodString;
|
|
125
|
+
layout: z.ZodOptional<z.ZodEnum<{
|
|
126
|
+
featured: "featured";
|
|
127
|
+
stack: "stack";
|
|
128
|
+
grid: "grid";
|
|
129
|
+
carousel: "carousel";
|
|
130
|
+
}>>;
|
|
131
|
+
theme: z.ZodObject<{
|
|
132
|
+
isOutlineStyle: z.ZodBoolean;
|
|
133
|
+
cssVariables: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
134
|
+
textColor: z.ZodString;
|
|
135
|
+
backgroundColor: z.ZodString;
|
|
136
|
+
borderRadius: z.ZodString;
|
|
137
|
+
borderColor: z.ZodString;
|
|
138
|
+
backgroundHover: z.ZodString;
|
|
139
|
+
contrastColor: z.ZodString;
|
|
140
|
+
textHoverColor: z.ZodString;
|
|
141
|
+
}, z.core.$strip>;
|
|
142
|
+
locale: z.ZodString;
|
|
143
|
+
currency: z.ZodString;
|
|
144
|
+
username: z.ZodString;
|
|
145
|
+
viewport: z.ZodObject<{
|
|
146
|
+
width: z.ZodNumber;
|
|
147
|
+
height: z.ZodNumber;
|
|
148
|
+
}, z.core.$strip>;
|
|
149
|
+
position: z.ZodOptional<z.ZodObject<{
|
|
150
|
+
latitude: z.ZodNumber;
|
|
151
|
+
longitude: z.ZodNumber;
|
|
152
|
+
}, z.core.$strip>>;
|
|
153
|
+
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
151
154
|
}, z.core.$strip>;
|
|
152
155
|
export type LinkAppConfig = z.infer<typeof linkAppConfigSchema>;
|
|
153
156
|
export type LinkAppManifest = z.infer<typeof manifestSchema>;
|
|
@@ -172,16 +175,16 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
172
175
|
name: string;
|
|
173
176
|
tagline: string;
|
|
174
177
|
description: string[];
|
|
175
|
-
|
|
178
|
+
manifest_version: string;
|
|
176
179
|
version: string;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
+
supporting_links: {
|
|
181
|
+
terms_of_service: string;
|
|
182
|
+
privacy_policy: string;
|
|
180
183
|
documentation?: string | undefined;
|
|
181
184
|
website?: string | undefined;
|
|
182
185
|
};
|
|
183
|
-
category: "grow" | "sell" | "share" | "
|
|
184
|
-
|
|
186
|
+
category: "grow" | "sell" | "share" | "learn";
|
|
187
|
+
search_terms: string[];
|
|
185
188
|
author: {
|
|
186
189
|
name: string;
|
|
187
190
|
accounts: string[];
|
|
@@ -193,25 +196,22 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
193
196
|
};
|
|
194
197
|
settings: {
|
|
195
198
|
title: string;
|
|
196
|
-
|
|
197
|
-
|
|
199
|
+
elements: any[];
|
|
200
|
+
icon?: "file" | "settings" | "text_and_media" | "question" | undefined;
|
|
201
|
+
uses_url?: boolean | undefined;
|
|
202
|
+
settings_tab_title?: string | undefined;
|
|
203
|
+
overview?: {
|
|
198
204
|
description: string;
|
|
199
|
-
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
label?: string | undefined;
|
|
208
|
-
options?: {
|
|
209
|
-
label: string;
|
|
210
|
-
value: unknown;
|
|
211
|
-
}[] | undefined;
|
|
212
|
-
}[];
|
|
205
|
+
title?: string | undefined;
|
|
206
|
+
} | undefined;
|
|
207
|
+
setup_instructions?: {
|
|
208
|
+
description: string;
|
|
209
|
+
title?: string | undefined;
|
|
210
|
+
} | undefined;
|
|
211
|
+
has_settings?: boolean | undefined;
|
|
212
|
+
supports_featured_layout?: boolean | undefined;
|
|
213
213
|
};
|
|
214
|
-
|
|
214
|
+
url_match_rules?: {
|
|
215
215
|
hostnames: string[];
|
|
216
216
|
patterns?: {
|
|
217
217
|
pathname: string;
|
|
@@ -220,6 +220,33 @@ export declare function safeLyValidateLinkAppConfig(config: unknown): z.ZodSafeP
|
|
|
220
220
|
pathname: string;
|
|
221
221
|
}[] | undefined;
|
|
222
222
|
} | undefined;
|
|
223
|
+
preview_props?: {
|
|
224
|
+
[x: string]: unknown;
|
|
225
|
+
linkUrl: string;
|
|
226
|
+
theme: {
|
|
227
|
+
isOutlineStyle: boolean;
|
|
228
|
+
cssVariables: Record<string, string>;
|
|
229
|
+
textColor: string;
|
|
230
|
+
backgroundColor: string;
|
|
231
|
+
borderRadius: string;
|
|
232
|
+
borderColor: string;
|
|
233
|
+
backgroundHover: string;
|
|
234
|
+
contrastColor: string;
|
|
235
|
+
textHoverColor: string;
|
|
236
|
+
};
|
|
237
|
+
locale: string;
|
|
238
|
+
currency: string;
|
|
239
|
+
username: string;
|
|
240
|
+
viewport: {
|
|
241
|
+
width: number;
|
|
242
|
+
height: number;
|
|
243
|
+
};
|
|
244
|
+
layout?: "featured" | "stack" | "grid" | "carousel" | undefined;
|
|
245
|
+
position?: {
|
|
246
|
+
latitude: number;
|
|
247
|
+
longitude: number;
|
|
248
|
+
} | undefined;
|
|
249
|
+
} | undefined;
|
|
223
250
|
}>;
|
|
224
251
|
/**
|
|
225
252
|
* Type guard to check if a value is a valid LinkAppConfig
|
|
@@ -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;
|
|
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;;;;;;;;;;;;;;;;;;;;;iBAWlB,CAAA;AAGF,QAAA,MAAM,mBAAmB;;;;;;;;iBAgBvB,CAAA;AAyCF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAU9B,CAAA;AAGF,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;AAEnE;;;;;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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
3
|
* Zod schema for LinkApp configuration
|
|
4
|
-
*
|
|
4
|
+
* Uses snake_case naming to match API requirements
|
|
5
5
|
*/
|
|
6
6
|
const urlSchema = z.string().url();
|
|
7
7
|
const emailSchema = z.string().email();
|
|
8
8
|
const versionSchema = z.string().regex(/^\d+\.\d+\.\d+$/, 'Must be semver format (e.g., 1.0.0)');
|
|
9
9
|
// Supporting Links Schema
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const supporting_links_schema = z.object({
|
|
11
|
+
terms_of_service: urlSchema.describe('The URL of the terms of service'),
|
|
12
|
+
privacy_policy: urlSchema.describe('The URL of the privacy policy'),
|
|
13
13
|
documentation: urlSchema.optional().describe('The URL of the documentation'),
|
|
14
14
|
website: urlSchema.optional().describe('The URL of the website'),
|
|
15
15
|
});
|
|
@@ -38,32 +38,117 @@ const manifestSchema = z.object({
|
|
|
38
38
|
.array(z.string())
|
|
39
39
|
.min(1, 'At least one description paragraph is required')
|
|
40
40
|
.describe('Array of description paragraphs'),
|
|
41
|
-
|
|
41
|
+
manifest_version: versionSchema.describe('The manifest schema version'),
|
|
42
42
|
version: versionSchema.describe('The version of the linkapp'),
|
|
43
|
-
|
|
44
|
-
category: z.enum(['grow', 'sell', 'share', '
|
|
45
|
-
|
|
43
|
+
supporting_links: supporting_links_schema,
|
|
44
|
+
category: z.enum(['grow', 'sell', 'share', 'learn']).describe('The category of the link type'),
|
|
45
|
+
search_terms: z.array(z.string()).min(1, 'At least one search term is required'),
|
|
46
46
|
author: authorSchema,
|
|
47
47
|
});
|
|
48
|
+
// Enums matching the backend types
|
|
49
|
+
const settingsIconSchema = z.enum(['file', 'settings', 'text_and_media', 'question']);
|
|
50
|
+
const settingsElementInputSchema = z.enum([
|
|
51
|
+
'button',
|
|
52
|
+
'text',
|
|
53
|
+
'textarea',
|
|
54
|
+
'number',
|
|
55
|
+
'radio',
|
|
56
|
+
'checkbox',
|
|
57
|
+
'select',
|
|
58
|
+
'password',
|
|
59
|
+
'switch',
|
|
60
|
+
'linkBehavior',
|
|
61
|
+
'file',
|
|
62
|
+
'url',
|
|
63
|
+
'integration',
|
|
64
|
+
'embedOption',
|
|
65
|
+
'array',
|
|
66
|
+
]);
|
|
67
|
+
const integrationCapabilitySchema = z.enum(['MANAGE_EMAIL_SUBSCRIBERS']);
|
|
68
|
+
const interactionEventSchema = z.enum(['click']);
|
|
69
|
+
const actionTypeSchema = z.enum(['update-link']);
|
|
70
|
+
// Supporting schemas
|
|
71
|
+
const settingsElementActionSchema = z.object({
|
|
72
|
+
on: interactionEventSchema,
|
|
73
|
+
type: actionTypeSchema,
|
|
74
|
+
data: z.object({
|
|
75
|
+
link_type: z.string(),
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
78
|
+
const settingsElementValidationSchema = z.object({
|
|
79
|
+
required: z.boolean().optional(),
|
|
80
|
+
pattern: z.string().optional(),
|
|
81
|
+
minLength: z.number().optional(),
|
|
82
|
+
maxLength: z.number().optional(),
|
|
83
|
+
min: z.number().optional(),
|
|
84
|
+
max: z.number().optional(),
|
|
85
|
+
maxSize: z.number().optional(),
|
|
86
|
+
});
|
|
87
|
+
const settingsOverviewSchema = z.object({
|
|
88
|
+
title: z.string().optional(),
|
|
89
|
+
description: z.string().min(1, 'Overview description is required'),
|
|
90
|
+
});
|
|
91
|
+
const setupInstructionsSchema = z.object({
|
|
92
|
+
title: z.string().optional(),
|
|
93
|
+
description: z.string().min(1, 'Setup instructions description is required'),
|
|
94
|
+
});
|
|
95
|
+
const settingsElementOptionSchema = z.object({
|
|
96
|
+
value: z.string(),
|
|
97
|
+
label: z.string(),
|
|
98
|
+
});
|
|
99
|
+
const settingsElementLinkBehaviorLabelSchema = z.object({
|
|
100
|
+
linkOffLabel: z.string(),
|
|
101
|
+
embedLabel: z.string(),
|
|
102
|
+
});
|
|
103
|
+
const conditionalDisplaySchema = z.object({
|
|
104
|
+
dependsOn: z.string(),
|
|
105
|
+
value: z.union([z.string(), z.boolean()]),
|
|
106
|
+
operator: z.enum(['equals', 'notEquals', 'contains']).optional(),
|
|
107
|
+
});
|
|
108
|
+
const arrayOptionsSchema = z.object({
|
|
109
|
+
add_item_button_text: z.string().optional(),
|
|
110
|
+
add_item_title: z.string().optional(),
|
|
111
|
+
add_second_item_button_text: z.string().optional(),
|
|
112
|
+
edit_item_title: z.string().optional(),
|
|
113
|
+
item_format: z.string().optional(),
|
|
114
|
+
min: z.number().optional(),
|
|
115
|
+
max: z.number().optional(),
|
|
116
|
+
});
|
|
48
117
|
// Settings Element Schema
|
|
49
|
-
const settingsElementSchema = z
|
|
118
|
+
const settingsElementSchema = z
|
|
119
|
+
.object({
|
|
50
120
|
id: z.string().min(1, 'Element ID is required'),
|
|
51
|
-
inputType:
|
|
52
|
-
title: z.string().
|
|
121
|
+
inputType: settingsElementInputSchema,
|
|
122
|
+
title: z.string().optional(),
|
|
53
123
|
description: z.string().optional(),
|
|
54
|
-
defaultValue: z.
|
|
124
|
+
defaultValue: z.union([z.string(), z.array(z.string()), z.boolean()]).optional(),
|
|
55
125
|
label: z.string().optional(),
|
|
56
|
-
|
|
57
|
-
|
|
126
|
+
placeholder: z.string().optional(),
|
|
127
|
+
validation: settingsElementValidationSchema.optional(),
|
|
128
|
+
options: z.array(settingsElementOptionSchema).optional(),
|
|
129
|
+
linkBehaviorLabels: settingsElementLinkBehaviorLabelSchema.optional(),
|
|
130
|
+
accept: z.array(z.string()).optional(),
|
|
131
|
+
multiple: z.boolean().optional(),
|
|
132
|
+
action: settingsElementActionSchema.optional(),
|
|
133
|
+
capability: integrationCapabilitySchema.optional(),
|
|
134
|
+
vendor: z.string().optional(),
|
|
135
|
+
array_options: arrayOptionsSchema.optional(),
|
|
136
|
+
array_elements: z.lazy(() => z.array(settingsElementSchema)).optional(),
|
|
137
|
+
conditionalDisplay: conditionalDisplaySchema.optional(),
|
|
138
|
+
})
|
|
139
|
+
.strict();
|
|
58
140
|
// Settings Schema
|
|
59
141
|
const settingsSchema = z.object({
|
|
60
142
|
title: z.string().min(1, 'Settings title is required'),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
143
|
+
icon: settingsIconSchema.optional(),
|
|
144
|
+
uses_url: z.boolean().optional(),
|
|
145
|
+
settings_tab_title: z.string().optional(),
|
|
146
|
+
overview: settingsOverviewSchema.optional(),
|
|
147
|
+
setup_instructions: setupInstructionsSchema.optional(),
|
|
66
148
|
elements: z.array(settingsElementSchema).min(0),
|
|
149
|
+
has_settings: z.boolean().optional(),
|
|
150
|
+
// supports_featured_layout is auto-detected based on app/featured.tsx presence
|
|
151
|
+
supports_featured_layout: z.boolean().optional(),
|
|
67
152
|
});
|
|
68
153
|
// URL Match Rules Schema
|
|
69
154
|
const urlMatchRulesSchema = z.object({
|
|
@@ -79,6 +164,40 @@ const urlMatchRulesSchema = z.object({
|
|
|
79
164
|
}))
|
|
80
165
|
.optional(),
|
|
81
166
|
});
|
|
167
|
+
// Preview Props Schema - for development mode
|
|
168
|
+
// Note: Uses camelCase to match LinktreeContext interface
|
|
169
|
+
const themeSchema = z.object({
|
|
170
|
+
isOutlineStyle: z.boolean(),
|
|
171
|
+
cssVariables: z.record(z.string(), z.string()),
|
|
172
|
+
// Legacy properties (deprecated - maintained for backward compatibility)
|
|
173
|
+
textColor: z.string(),
|
|
174
|
+
backgroundColor: z.string(),
|
|
175
|
+
borderRadius: z.string(),
|
|
176
|
+
borderColor: z.string(),
|
|
177
|
+
backgroundHover: z.string(),
|
|
178
|
+
contrastColor: z.string(),
|
|
179
|
+
textHoverColor: z.string(),
|
|
180
|
+
});
|
|
181
|
+
const viewportSchema = z.object({
|
|
182
|
+
width: z.number(),
|
|
183
|
+
height: z.number(),
|
|
184
|
+
});
|
|
185
|
+
const positionSchema = z.object({
|
|
186
|
+
latitude: z.number(),
|
|
187
|
+
longitude: z.number(),
|
|
188
|
+
});
|
|
189
|
+
const preview_props_schema = z
|
|
190
|
+
.object({
|
|
191
|
+
linkUrl: z.string().url(),
|
|
192
|
+
layout: z.enum(['stack', 'grid', 'carousel', 'featured']).optional(),
|
|
193
|
+
theme: themeSchema,
|
|
194
|
+
locale: z.string(),
|
|
195
|
+
currency: z.string(),
|
|
196
|
+
username: z.string(),
|
|
197
|
+
viewport: viewportSchema,
|
|
198
|
+
position: positionSchema.optional(),
|
|
199
|
+
})
|
|
200
|
+
.catchall(z.unknown()); // Allow additional user-defined settings
|
|
82
201
|
// Main LinkApp Config Schema
|
|
83
202
|
export const linkAppConfigSchema = z.object({
|
|
84
203
|
id: z
|
|
@@ -88,7 +207,8 @@ export const linkAppConfigSchema = z.object({
|
|
|
88
207
|
.describe('Unique identifier for the linkapp'),
|
|
89
208
|
manifest: manifestSchema,
|
|
90
209
|
settings: settingsSchema,
|
|
91
|
-
|
|
210
|
+
url_match_rules: urlMatchRulesSchema.optional(),
|
|
211
|
+
preview_props: preview_props_schema.optional(),
|
|
92
212
|
});
|
|
93
213
|
/**
|
|
94
214
|
* Validates a LinkApp configuration object
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkApp SDK for iframe communication with parent Linktree window
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* import { useOpenPopup } from '@linktr.ee/linkapp/sdk'
|
|
7
|
+
*
|
|
8
|
+
* function FeaturedLayout() {
|
|
9
|
+
* const openPopup = useOpenPopup()
|
|
10
|
+
*
|
|
11
|
+
* return (
|
|
12
|
+
* <button onClick={() => openPopup({ itemId: '123' })}>
|
|
13
|
+
* View More
|
|
14
|
+
* </button>
|
|
15
|
+
* )
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export { useOpenPopup } from './use-open-popup.js';
|
|
20
|
+
export { sendMessage } from './send-message.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkApp SDK for iframe communication with parent Linktree window
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* import { useOpenPopup } from '@linktr.ee/linkapp/sdk'
|
|
7
|
+
*
|
|
8
|
+
* function FeaturedLayout() {
|
|
9
|
+
* const openPopup = useOpenPopup()
|
|
10
|
+
*
|
|
11
|
+
* return (
|
|
12
|
+
* <button onClick={() => openPopup({ itemId: '123' })}>
|
|
13
|
+
* View More
|
|
14
|
+
* </button>
|
|
15
|
+
* )
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export { useOpenPopup } from './use-open-popup.js';
|
|
20
|
+
export { sendMessage } from './send-message.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends a postMessage from the LinkApp iframe to the parent window
|
|
3
|
+
*
|
|
4
|
+
* @param type - The message type (e.g., 'OPEN_POPUP')
|
|
5
|
+
* @param payload - The message payload
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* sendMessage('OPEN_POPUP', { data: { itemId: '123' } })
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Note: This only works when the LinkApp is embedded in an iframe within Linktree.
|
|
13
|
+
* The parent window must implement a message listener to handle these messages.
|
|
14
|
+
*/
|
|
15
|
+
export declare function sendMessage(type: string, payload: unknown): void;
|
|
16
|
+
//# sourceMappingURL=send-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-message.d.ts","sourceRoot":"","sources":["../../src/sdk/send-message.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBhE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends a postMessage from the LinkApp iframe to the parent window
|
|
3
|
+
*
|
|
4
|
+
* @param type - The message type (e.g., 'OPEN_POPUP')
|
|
5
|
+
* @param payload - The message payload
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* sendMessage('OPEN_POPUP', { data: { itemId: '123' } })
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* Note: This only works when the LinkApp is embedded in an iframe within Linktree.
|
|
13
|
+
* The parent window must implement a message listener to handle these messages.
|
|
14
|
+
*/
|
|
15
|
+
export function sendMessage(type, payload) {
|
|
16
|
+
// Check if running in an iframe
|
|
17
|
+
if (typeof window === 'undefined') {
|
|
18
|
+
console.warn('[LinkApp SDK] sendMessage called in non-browser environment');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (window === window.parent) {
|
|
22
|
+
console.warn('[LinkApp SDK] sendMessage called outside of iframe context');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const message = {
|
|
26
|
+
source: 'linkapp',
|
|
27
|
+
type: type,
|
|
28
|
+
payload: payload,
|
|
29
|
+
};
|
|
30
|
+
// Send to parent window
|
|
31
|
+
// Using '*' as targetOrigin for now - parent should validate message.source
|
|
32
|
+
window.parent.postMessage(message, '*');
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=send-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-message.js","sourceRoot":"","sources":["../../src/sdk/send-message.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAgB;IACxD,gCAAgC;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;QAC3E,OAAM;IACR,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;QAC1E,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAmB;QAC9B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,IAA8B;QACpC,OAAO,EAAE,OAAoC;KAC9C,CAAA;IAED,wBAAwB;IACxB,4EAA4E;IAC5E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACzC,CAAC"}
|