@linktr.ee/linkapp 0.0.48 → 0.0.49
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/README.md +1 -1
- package/dev-server/components/form/array-field.tsx +115 -0
- package/dev-server/components/form/file-field.tsx +48 -0
- package/dev-server/components/form/form-element.tsx +304 -0
- package/dev-server/components/form/link-behavior-field.tsx +68 -0
- package/dev-server/components/form/location-field.tsx +60 -0
- package/dev-server/components/settings-preview.tsx +138 -302
- package/dev-server/components/ui/checkbox.tsx +29 -0
- package/dev-server/components/ui/dialog.tsx +2 -10
- package/dev-server/components/ui/field.tsx +24 -49
- package/dev-server/components/ui/input.tsx +20 -21
- package/dev-server/components/ui/label.tsx +4 -4
- package/dev-server/components/ui/radio-group.tsx +37 -0
- package/dev-server/components/ui/select.tsx +153 -0
- package/dev-server/components/ui/switch.tsx +31 -0
- package/dev-server/components/ui/tabs.tsx +1 -1
- package/dev-server/components/ui/textarea.tsx +18 -19
- package/dev-server/env.d.ts +4 -1
- package/dev-server/expanded/main.tsx +20 -22
- package/dev-server/expanded.html +0 -1
- package/dev-server/featured/main.tsx +29 -36
- package/dev-server/featured-carousel.html +0 -1
- package/dev-server/featured.html +0 -1
- package/dev-server/index.html +1 -7
- package/dev-server/lib/utils.ts +3 -3
- package/dev-server/package.json +3 -3
- package/dev-server/postcss/tailwind-source-fallback.js +2 -7
- package/dev-server/postcss.config.mjs +2 -2
- package/dev-server/preview/Preview.tsx +310 -350
- package/dev-server/preview/main.tsx +8 -8
- package/dev-server/preview/preview.css +0 -1
- package/dev-server/public/site.webmanifest +1 -1
- package/dev-server/rsbuild.config.ts +1 -1
- package/dev-server/shared/dev-parent-simulator.ts +219 -0
- package/dev-server/shared/theme-presets.ts +71 -75
- package/dev-server/shared/theme-utils.ts +11 -11
- package/dist/cli.js +18 -12
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +27 -42
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +26 -16
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/deploy.d.ts +1 -11
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +3 -13
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +132 -388
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +17 -29
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +6 -11
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/rollback.d.ts +10 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +148 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +96 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/test-url-match-rules.d.ts.map +1 -1
- package/dist/commands/test-url-match-rules.js +20 -26
- package/dist/commands/test-url-match-rules.js.map +1 -1
- package/dist/lib/auth/device-flow.d.ts +1 -1
- package/dist/lib/auth/device-flow.d.ts.map +1 -1
- package/dist/lib/auth/device-flow.js +3 -3
- package/dist/lib/auth/device-flow.js.map +1 -1
- package/dist/lib/auth/token-storage.d.ts.map +1 -1
- package/dist/lib/auth/token-storage.js +14 -37
- package/dist/lib/auth/token-storage.js.map +1 -1
- package/dist/lib/build/detect-layouts.d.ts.map +1 -1
- package/dist/lib/build/detect-layouts.js +27 -13
- package/dist/lib/build/detect-layouts.js.map +1 -1
- package/dist/lib/config/load-config.d.ts.map +1 -1
- package/dist/lib/config/load-config.js +0 -2
- package/dist/lib/config/load-config.js.map +1 -1
- package/dist/lib/deploy/deploy-output.d.ts +2 -1
- package/dist/lib/deploy/deploy-output.d.ts.map +1 -1
- package/dist/lib/deploy/deploy-output.js +9 -1
- package/dist/lib/deploy/deploy-output.js.map +1 -1
- package/dist/lib/deploy/deploy-phases.d.ts +2 -0
- package/dist/lib/deploy/deploy-phases.d.ts.map +1 -1
- package/dist/lib/deploy/deploy-phases.js +9 -23
- package/dist/lib/deploy/deploy-phases.js.map +1 -1
- package/dist/lib/deploy/deploy-utils.d.ts +15 -7
- package/dist/lib/deploy/deploy-utils.d.ts.map +1 -1
- package/dist/lib/deploy/deploy-utils.js +49 -36
- package/dist/lib/deploy/deploy-utils.js.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.d.ts.map +1 -1
- package/dist/lib/deploy/generate-manifest-files.js +13 -39
- 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 +34 -20
- package/dist/lib/deploy/pack-project.js.map +1 -1
- package/dist/lib/deploy/slot-manager.d.ts +54 -0
- package/dist/lib/deploy/slot-manager.d.ts.map +1 -0
- package/dist/lib/deploy/slot-manager.js +72 -0
- package/dist/lib/deploy/slot-manager.js.map +1 -0
- package/dist/lib/deploy/test-url-match-rules.d.ts +10 -2
- 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 +1 -0
- package/dist/lib/deploy/upload.d.ts.map +1 -1
- package/dist/lib/deploy/upload.js +15 -24
- 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 +43 -48
- package/dist/lib/deploy/validation.js.map +1 -1
- package/dist/lib/rsbuild/config-factory.d.ts.map +1 -1
- package/dist/lib/rsbuild/config-factory.js +10 -17
- package/dist/lib/rsbuild/config-factory.js.map +1 -1
- package/dist/lib/rsbuild/plugins/asset-versioning.d.ts.map +1 -1
- package/dist/lib/rsbuild/plugins/asset-versioning.js +4 -14
- package/dist/lib/rsbuild/plugins/asset-versioning.js.map +1 -1
- package/dist/lib/rsbuild/plugins/brotli-compression.d.ts.map +1 -1
- package/dist/lib/rsbuild/plugins/brotli-compression.js +4 -4
- package/dist/lib/rsbuild/plugins/brotli-compression.js.map +1 -1
- package/dist/lib/rsbuild/plugins/copy-public.d.ts.map +1 -1
- package/dist/lib/rsbuild/plugins/copy-public.js.map +1 -1
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.d.ts.map +1 -1
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js +1 -3
- package/dist/lib/rsbuild/postcss/tailwind-source-fallback.js.map +1 -1
- package/dist/lib/utils/console.d.ts +8 -0
- package/dist/lib/utils/console.d.ts.map +1 -0
- package/dist/lib/utils/console.js +10 -0
- package/dist/lib/utils/console.js.map +1 -0
- package/dist/lib/utils/filesystem.d.ts +9 -0
- package/dist/lib/utils/filesystem.d.ts.map +1 -0
- package/dist/lib/utils/filesystem.js +30 -0
- package/dist/lib/utils/filesystem.js.map +1 -0
- package/dist/lib/utils/formatters.d.ts +8 -0
- package/dist/lib/utils/formatters.d.ts.map +1 -0
- package/dist/lib/utils/formatters.js +22 -0
- package/dist/lib/utils/formatters.js.map +1 -0
- package/dist/lib/utils/index.d.ts +7 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +7 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/setup-runtime.d.ts.map +1 -1
- package/dist/lib/utils/setup-runtime.js +22 -63
- package/dist/lib/utils/setup-runtime.js.map +1 -1
- package/dist/schema/config.schema.d.ts +9 -48
- package/dist/schema/config.schema.d.ts.map +1 -1
- package/dist/schema/config.schema.js +119 -120
- package/dist/schema/config.schema.js.map +1 -1
- package/dist/sdk/hooks/mocks.d.ts +9 -0
- package/dist/sdk/hooks/mocks.d.ts.map +1 -0
- package/dist/sdk/hooks/mocks.js +17 -0
- package/dist/sdk/hooks/mocks.js.map +1 -0
- package/dist/sdk/hooks/use-audience-manager.d.ts +44 -0
- package/dist/sdk/hooks/use-audience-manager.d.ts.map +1 -0
- package/dist/sdk/hooks/use-audience-manager.js +109 -0
- package/dist/sdk/hooks/use-audience-manager.js.map +1 -0
- package/dist/sdk/hooks/use-ip.d.ts +45 -0
- package/dist/sdk/hooks/use-ip.d.ts.map +1 -0
- package/dist/sdk/hooks/use-ip.js +46 -0
- package/dist/sdk/hooks/use-ip.js.map +1 -0
- package/dist/sdk/hooks/use-sdk-request.d.ts +46 -0
- package/dist/sdk/hooks/use-sdk-request.d.ts.map +1 -0
- package/dist/sdk/hooks/use-sdk-request.js +65 -0
- package/dist/sdk/hooks/use-sdk-request.js.map +1 -0
- package/dist/sdk/hooks/use-theme.d.ts +45 -0
- package/dist/sdk/hooks/use-theme.d.ts.map +1 -0
- package/dist/sdk/hooks/use-theme.js +97 -0
- package/dist/sdk/hooks/use-theme.js.map +1 -0
- package/dist/sdk/hooks/use-visitor.d.ts +41 -0
- package/dist/sdk/hooks/use-visitor.d.ts.map +1 -0
- package/dist/sdk/hooks/use-visitor.js +42 -0
- package/dist/sdk/hooks/use-visitor.js.map +1 -0
- package/dist/sdk/hooks/validation.d.ts +8 -0
- package/dist/sdk/hooks/validation.d.ts.map +1 -0
- package/dist/sdk/hooks/validation.js +13 -0
- package/dist/sdk/hooks/validation.js.map +1 -0
- package/dist/sdk/index.d.ts +17 -5
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +16 -5
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/message-bus.d.ts +59 -0
- package/dist/sdk/message-bus.d.ts.map +1 -0
- package/dist/sdk/message-bus.js +152 -0
- package/dist/sdk/message-bus.js.map +1 -0
- package/dist/sdk/messages.d.ts +121 -0
- package/dist/sdk/messages.d.ts.map +1 -0
- package/dist/sdk/messages.js +9 -0
- package/dist/sdk/messages.js.map +1 -0
- package/dist/sdk/send-message.d.ts +1 -1
- package/dist/sdk/send-message.js +18 -18
- package/dist/sdk/send-message.js.map +1 -1
- package/dist/sdk/use-expand-link-app.d.ts +3 -3
- package/dist/sdk/use-expand-link-app.d.ts.map +1 -1
- package/dist/sdk/use-expand-link-app.js +9 -5
- package/dist/sdk/use-expand-link-app.js.map +1 -1
- package/dist/types.d.ts +235 -55
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -3
- package/dist/types.js.map +1 -1
- package/package.json +3 -9
|
@@ -1,24 +1,30 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { KEBAB_CASE_ID_ERROR_MESSAGE, KEBAB_CASE_ID_REGEX } from '../lib/deploy/deploy-utils.js';
|
|
2
3
|
/**
|
|
3
4
|
* Zod schema for LinkApp configuration
|
|
4
5
|
* Uses snake_case naming to match API requirements
|
|
5
6
|
*/
|
|
6
7
|
const urlSchema = z.string().url();
|
|
7
8
|
const emailSchema = z.string().email();
|
|
8
|
-
const versionSchema = z
|
|
9
|
+
const versionSchema = z.string().regex(/^\d+\.\d+\.\d+$/, 'Must be semver format (e.g., 1.0.0)');
|
|
10
|
+
// Kebab-case ID schema for explicit LinkApp ID
|
|
11
|
+
const kebabCaseIdSchema = z
|
|
9
12
|
.string()
|
|
10
|
-
.
|
|
13
|
+
.min(1, 'ID must be at least 1 character')
|
|
14
|
+
.max(64, 'ID must be at most 64 characters')
|
|
15
|
+
.regex(KEBAB_CASE_ID_REGEX, KEBAB_CASE_ID_ERROR_MESSAGE)
|
|
16
|
+
.describe('The explicit LinkApp ID in kebab-case format');
|
|
11
17
|
// Supporting Links Schema
|
|
12
18
|
const supporting_links_schema = z.object({
|
|
13
|
-
terms_of_service: urlSchema.describe(
|
|
14
|
-
privacy_policy: urlSchema.describe(
|
|
15
|
-
documentation: urlSchema.optional().describe(
|
|
16
|
-
website: urlSchema.optional().describe(
|
|
19
|
+
terms_of_service: urlSchema.describe('The URL of the terms of service'),
|
|
20
|
+
privacy_policy: urlSchema.describe('The URL of the privacy policy'),
|
|
21
|
+
documentation: urlSchema.optional().describe('The URL of the documentation'),
|
|
22
|
+
website: urlSchema.optional().describe('The URL of the website'),
|
|
17
23
|
});
|
|
18
24
|
// Author Schema
|
|
19
25
|
const authorSchema = z.object({
|
|
20
|
-
name: z.string().min(1,
|
|
21
|
-
accounts: z.array(z.string()).min(1,
|
|
26
|
+
name: z.string().min(1, 'Author name is required'),
|
|
27
|
+
accounts: z.array(z.string()).min(1, 'At least one account is required'),
|
|
22
28
|
contact: z.object({
|
|
23
29
|
url: urlSchema,
|
|
24
30
|
email: emailSchema,
|
|
@@ -26,102 +32,71 @@ const authorSchema = z.object({
|
|
|
26
32
|
});
|
|
27
33
|
// Link Type Category V2 Schema
|
|
28
34
|
const linkTypeCategoryV2Schema = z.enum([
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
'tours-and-shows',
|
|
36
|
+
'social-media',
|
|
37
|
+
'text',
|
|
38
|
+
'audio',
|
|
39
|
+
'document',
|
|
40
|
+
'video',
|
|
41
|
+
'promotions',
|
|
42
|
+
'communities',
|
|
43
|
+
'digital-products',
|
|
44
|
+
'physical-products',
|
|
45
|
+
'fundraising',
|
|
46
|
+
'details',
|
|
47
|
+
'forms',
|
|
48
|
+
'scheduling',
|
|
43
49
|
]);
|
|
44
50
|
// Manifest Schema
|
|
45
51
|
const manifestSchema = z.object({
|
|
52
|
+
id: kebabCaseIdSchema
|
|
53
|
+
.optional()
|
|
54
|
+
.describe('Explicit LinkApp ID in kebab-case. If omitted, derived from kebab-cased name. Cannot be changed after first deployment.'),
|
|
46
55
|
name: z
|
|
47
56
|
.string()
|
|
48
|
-
.min(3,
|
|
49
|
-
.max(50,
|
|
50
|
-
.describe("The name of the
|
|
57
|
+
.min(3, 'Name must be at least 3 characters')
|
|
58
|
+
.max(50, 'Name must be at most 50 characters')
|
|
59
|
+
.describe("The display name of the LinkApp. Used to derive ID if 'id' field is not specified."),
|
|
51
60
|
tagline: z
|
|
52
61
|
.string()
|
|
53
|
-
.min(3,
|
|
54
|
-
.max(200,
|
|
55
|
-
.describe(
|
|
62
|
+
.min(3, 'Tagline must be at least 3 characters')
|
|
63
|
+
.max(200, 'Tagline must be at most 200 characters')
|
|
64
|
+
.describe('A short tagline for the link type'),
|
|
56
65
|
description: z
|
|
57
66
|
.array(z.string())
|
|
58
|
-
.min(1,
|
|
59
|
-
.describe(
|
|
60
|
-
manifest_version: versionSchema.describe(
|
|
61
|
-
version: versionSchema.describe(
|
|
67
|
+
.min(1, 'At least one description paragraph is required')
|
|
68
|
+
.describe('Array of description paragraphs'),
|
|
69
|
+
manifest_version: versionSchema.describe('The manifest schema version'),
|
|
70
|
+
version: versionSchema.describe('The version of the linkapp'),
|
|
62
71
|
supporting_links: supporting_links_schema,
|
|
63
|
-
category: z
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
.optional()
|
|
68
|
-
.describe("The version 2 category of the link type"),
|
|
69
|
-
categoryV2Order: z
|
|
70
|
-
.number()
|
|
71
|
-
.optional()
|
|
72
|
-
.describe("The sort order for categoryV2"),
|
|
73
|
-
search_terms: z
|
|
74
|
-
.array(z.string())
|
|
75
|
-
.min(1, "At least one search term is required"),
|
|
72
|
+
category: z.enum(['grow', 'sell', 'share', 'learn']).describe('The category of the link type'),
|
|
73
|
+
categoryV2: linkTypeCategoryV2Schema.optional().describe('The version 2 category of the link type'),
|
|
74
|
+
categoryV2Order: z.number().optional().describe('The sort order for categoryV2'),
|
|
75
|
+
search_terms: z.array(z.string()).min(1, 'At least one search term is required'),
|
|
76
76
|
author: authorSchema,
|
|
77
77
|
});
|
|
78
78
|
// Enums matching the backend types
|
|
79
|
-
const settingsIconSchema = z.enum([
|
|
80
|
-
"file",
|
|
81
|
-
"settings",
|
|
82
|
-
"text_and_media",
|
|
83
|
-
"question",
|
|
84
|
-
]);
|
|
85
|
-
const featuredChinPositionSchema = z.enum([
|
|
86
|
-
"minimal",
|
|
87
|
-
"above",
|
|
88
|
-
"below",
|
|
89
|
-
"overlayBelow",
|
|
90
|
-
"overlayAbove",
|
|
91
|
-
]);
|
|
92
|
-
const sheetBehaviorSchema = z.enum([
|
|
93
|
-
"none",
|
|
94
|
-
"expandGeneric",
|
|
95
|
-
"expandVideo",
|
|
96
|
-
"default",
|
|
97
|
-
]);
|
|
98
|
-
const featuredHeadClickBehaviorSchema = z.enum([
|
|
99
|
-
"linkOff",
|
|
100
|
-
"expand",
|
|
101
|
-
"custom",
|
|
102
|
-
"inlineVideoPlayer",
|
|
103
|
-
"default",
|
|
104
|
-
]);
|
|
79
|
+
const settingsIconSchema = z.enum(['file', 'settings', 'text_and_media', 'text', 'coupon', 'question-mark', 'reviews']);
|
|
105
80
|
const settingsElementInputSchema = z.enum([
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
81
|
+
'button',
|
|
82
|
+
'text',
|
|
83
|
+
'textarea',
|
|
84
|
+
'number',
|
|
85
|
+
'radio',
|
|
86
|
+
'checkbox',
|
|
87
|
+
'select',
|
|
88
|
+
'switch',
|
|
89
|
+
'linkBehavior',
|
|
90
|
+
'file',
|
|
91
|
+
'url',
|
|
92
|
+
'email',
|
|
93
|
+
'integration',
|
|
94
|
+
'array',
|
|
95
|
+
'location',
|
|
121
96
|
]);
|
|
122
|
-
const integrationCapabilitySchema = z.enum([
|
|
123
|
-
const interactionEventSchema = z.enum([
|
|
124
|
-
const actionTypeSchema = z.enum([
|
|
97
|
+
const integrationCapabilitySchema = z.enum(['MANAGE_EMAIL_SUBSCRIBERS', 'MANAGE_CALENDAR_BOOKINGS', 'SEARCH']);
|
|
98
|
+
const interactionEventSchema = z.enum(['click']);
|
|
99
|
+
const actionTypeSchema = z.enum(['update-link']);
|
|
125
100
|
// Supporting schemas
|
|
126
101
|
const settingsElementActionSchema = z.object({
|
|
127
102
|
on: interactionEventSchema,
|
|
@@ -137,15 +112,23 @@ const settingsElementValidationSchema = z.object({
|
|
|
137
112
|
maxLength: z.number().optional(),
|
|
138
113
|
min: z.number().optional(),
|
|
139
114
|
max: z.number().optional(),
|
|
115
|
+
// Array item limits (legacy names - deprecated)
|
|
116
|
+
minSize: z.number().optional(),
|
|
140
117
|
maxSize: z.number().optional(),
|
|
118
|
+
// Array item limits (preferred names)
|
|
119
|
+
minItems: z.number().optional(),
|
|
120
|
+
maxItems: z.number().optional(),
|
|
121
|
+
// File size limit in bytes
|
|
122
|
+
maxFileSize: z.number().optional(),
|
|
141
123
|
});
|
|
142
124
|
const settingsOverviewSchema = z.object({
|
|
143
125
|
title: z.string().optional(),
|
|
144
|
-
description: z.string().min(1,
|
|
126
|
+
description: z.string().min(1, 'Overview description is required'),
|
|
127
|
+
supportLink: z.string().url().optional(),
|
|
145
128
|
});
|
|
146
129
|
const setupInstructionsSchema = z.object({
|
|
147
130
|
title: z.string().optional(),
|
|
148
|
-
description: z.string().min(1,
|
|
131
|
+
description: z.string().min(1, 'Setup instructions description is required'),
|
|
149
132
|
});
|
|
150
133
|
const settingsElementOptionSchema = z.object({
|
|
151
134
|
value: z.string(),
|
|
@@ -155,10 +138,22 @@ const settingsElementLinkBehaviorLabelSchema = z.object({
|
|
|
155
138
|
linkOffLabel: z.string(),
|
|
156
139
|
embedLabel: z.string(),
|
|
157
140
|
});
|
|
141
|
+
// Conditional visibility (preferred format)
|
|
142
|
+
const conditionalSchema = z.object({
|
|
143
|
+
fieldId: z.string(),
|
|
144
|
+
values: z.array(z.union([z.string(), z.boolean()])),
|
|
145
|
+
});
|
|
146
|
+
// Conditional display (deprecated legacy format)
|
|
158
147
|
const conditionalDisplaySchema = z.object({
|
|
159
148
|
dependsOn: z.string(),
|
|
160
149
|
value: z.union([z.string(), z.boolean()]),
|
|
161
|
-
operator: z.enum([
|
|
150
|
+
operator: z.enum(['equals', 'notEquals', 'contains']).optional(),
|
|
151
|
+
});
|
|
152
|
+
// Enhanced radio element with title and description
|
|
153
|
+
const radioElementSchema = z.object({
|
|
154
|
+
id: z.string(),
|
|
155
|
+
title: z.string(),
|
|
156
|
+
description: z.string().optional(),
|
|
162
157
|
});
|
|
163
158
|
const arrayOptionsSchema = z.object({
|
|
164
159
|
add_item_button_text: z.string().optional(),
|
|
@@ -169,20 +164,34 @@ const arrayOptionsSchema = z.object({
|
|
|
169
164
|
min: z.number().optional(),
|
|
170
165
|
max: z.number().optional(),
|
|
171
166
|
});
|
|
167
|
+
// Place Value Schema - for location input type
|
|
168
|
+
const placeValueSchema = z.object({
|
|
169
|
+
placeId: z.string().min(1, 'Place ID is required'),
|
|
170
|
+
name: z.string().min(1, 'Place name is required'),
|
|
171
|
+
address: z.string().min(1, 'Address is required'),
|
|
172
|
+
lat: z.number().min(-90).max(90),
|
|
173
|
+
lng: z.number().min(-180).max(180),
|
|
174
|
+
photos: z.array(z.string()).optional(),
|
|
175
|
+
rating: z.number().min(0).max(5).optional(),
|
|
176
|
+
userRatingsTotal: z.number().min(0).optional(),
|
|
177
|
+
types: z.array(z.string()).optional(),
|
|
178
|
+
website: z.string().url().optional(),
|
|
179
|
+
phoneNumber: z.string().optional(),
|
|
180
|
+
});
|
|
172
181
|
// Settings Element Schema
|
|
173
182
|
const settingsElementSchema = z
|
|
174
183
|
.object({
|
|
175
|
-
id: z.string().min(1,
|
|
184
|
+
id: z.string().min(1, 'Element ID is required'),
|
|
176
185
|
inputType: settingsElementInputSchema,
|
|
177
186
|
title: z.string().optional(),
|
|
178
187
|
description: z.string().optional(),
|
|
179
|
-
defaultValue: z
|
|
180
|
-
.union([z.string(), z.array(z.string()), z.boolean()])
|
|
181
|
-
.optional(),
|
|
188
|
+
defaultValue: z.union([z.string(), z.array(z.string()), z.boolean(), placeValueSchema]).optional(),
|
|
182
189
|
label: z.string().optional(),
|
|
183
190
|
placeholder: z.string().optional(),
|
|
184
191
|
validation: settingsElementValidationSchema.optional(),
|
|
185
192
|
options: z.array(settingsElementOptionSchema).optional(),
|
|
193
|
+
// Enhanced radio options with title and description
|
|
194
|
+
radio_elements: z.array(radioElementSchema).optional(),
|
|
186
195
|
linkBehaviorLabels: settingsElementLinkBehaviorLabelSchema.optional(),
|
|
187
196
|
accept: z.array(z.string()).optional(),
|
|
188
197
|
multiple: z.boolean().optional(),
|
|
@@ -191,12 +200,15 @@ const settingsElementSchema = z
|
|
|
191
200
|
vendor: z.string().optional(),
|
|
192
201
|
array_options: arrayOptionsSchema.optional(),
|
|
193
202
|
array_elements: z.lazy(() => z.array(settingsElementSchema)).optional(),
|
|
203
|
+
// Conditional visibility (preferred format)
|
|
204
|
+
conditional: conditionalSchema.optional(),
|
|
205
|
+
// Legacy conditional display (deprecated)
|
|
194
206
|
conditionalDisplay: conditionalDisplaySchema.optional(),
|
|
195
207
|
})
|
|
196
208
|
.strict();
|
|
197
209
|
// Settings Schema
|
|
198
210
|
const settingsSchema = z.object({
|
|
199
|
-
title: z.string().min(1,
|
|
211
|
+
title: z.string().min(1, 'Settings title is required'),
|
|
200
212
|
icon: settingsIconSchema.optional(),
|
|
201
213
|
uses_url: z.boolean().optional(),
|
|
202
214
|
has_url: z.boolean().optional(),
|
|
@@ -205,24 +217,20 @@ const settingsSchema = z.object({
|
|
|
205
217
|
setup_instructions: setupInstructionsSchema.optional(),
|
|
206
218
|
elements: z.array(settingsElementSchema).min(0),
|
|
207
219
|
has_settings: z.boolean().optional(),
|
|
208
|
-
//
|
|
220
|
+
// Explicitly specify if LinkApp supports featured layout (both iframe and headless modes)
|
|
209
221
|
supports_featured_layout: z.boolean().optional(),
|
|
210
|
-
featured_chin_position: featuredChinPositionSchema.optional(),
|
|
211
|
-
featured_head_allow_unlocked_aspect_ratio: z.boolean().optional(),
|
|
212
|
-
sheet_behavior: sheetBehaviorSchema.optional(),
|
|
213
|
-
featured_head_click_behavior: featuredHeadClickBehaviorSchema.optional(),
|
|
214
222
|
});
|
|
215
223
|
// URL Match Rules Schema
|
|
216
224
|
const urlMatchRulesSchema = z.object({
|
|
217
|
-
hostnames: z.array(z.string()).min(1,
|
|
225
|
+
hostnames: z.array(z.string()).min(1, 'At least one hostname is required'),
|
|
218
226
|
patterns: z
|
|
219
227
|
.array(z.object({
|
|
220
|
-
pathname: z.string().min(1,
|
|
228
|
+
pathname: z.string().min(1, 'Pathname pattern is required'),
|
|
221
229
|
}))
|
|
222
230
|
.optional(),
|
|
223
231
|
notPatterns: z
|
|
224
232
|
.array(z.object({
|
|
225
|
-
pathname: z.string().min(1,
|
|
233
|
+
pathname: z.string().min(1, 'Pathname pattern is required'),
|
|
226
234
|
}))
|
|
227
235
|
.optional(),
|
|
228
236
|
});
|
|
@@ -254,19 +262,10 @@ const preview_props_schema = z
|
|
|
254
262
|
__linkUrl: z.string().optional(),
|
|
255
263
|
__thumbnail: z.string().optional(),
|
|
256
264
|
__linkParams: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
257
|
-
__layout: z.enum([
|
|
258
|
-
groupLayoutOption: z
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
"grid",
|
|
262
|
-
"featured",
|
|
263
|
-
"carousel",
|
|
264
|
-
"featuredSubscribe",
|
|
265
|
-
"showcase",
|
|
266
|
-
])
|
|
267
|
-
.optional(),
|
|
268
|
-
displayType: z.enum(["none", "accordion", "dialog"]).optional(),
|
|
269
|
-
linkTitle: z.string().optional(),
|
|
265
|
+
__layout: z.enum(['classic', 'featured']).optional(),
|
|
266
|
+
groupLayoutOption: z.enum(['stack', 'grid', 'featured', 'carousel', 'featuredSubscribe', 'showcase']).optional(),
|
|
267
|
+
displayType: z.enum(['none', 'accordion', 'dialog']).optional(),
|
|
268
|
+
linkTitle: z.string(),
|
|
270
269
|
// Extension environment
|
|
271
270
|
__environment: z
|
|
272
271
|
.object({
|
|
@@ -279,7 +278,7 @@ const preview_props_schema = z
|
|
|
279
278
|
})
|
|
280
279
|
.optional(),
|
|
281
280
|
// Layout and theme
|
|
282
|
-
layout: z.enum([
|
|
281
|
+
layout: z.enum(['stack', 'grid', 'carousel', 'featured']).optional(),
|
|
283
282
|
theme: themeSchema.optional(),
|
|
284
283
|
})
|
|
285
284
|
.catchall(z.unknown());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../src/schema/config.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock data for SDK hooks in dev mode (when not running in iframe)
|
|
3
|
+
*/
|
|
4
|
+
import type { IPData, VisitorData } from '../messages.js';
|
|
5
|
+
/** Mock visitor data for dev mode */
|
|
6
|
+
export declare const MOCK_VISITOR: VisitorData;
|
|
7
|
+
/** Mock IP data for dev mode */
|
|
8
|
+
export declare const MOCK_IP: IPData;
|
|
9
|
+
//# sourceMappingURL=mocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/sdk/hooks/mocks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEzD,qCAAqC;AACrC,eAAO,MAAM,YAAY,EAAE,WAO1B,CAAA;AAED,gCAAgC;AAChC,eAAO,MAAM,OAAO,EAAE,MAGrB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock data for SDK hooks in dev mode (when not running in iframe)
|
|
3
|
+
*/
|
|
4
|
+
/** Mock visitor data for dev mode */
|
|
5
|
+
export const MOCK_VISITOR = {
|
|
6
|
+
mobileDetected: typeof navigator !== 'undefined' &&
|
|
7
|
+
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
|
|
8
|
+
userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : 'Unknown',
|
|
9
|
+
isFollowing: false,
|
|
10
|
+
followerEmail: undefined,
|
|
11
|
+
};
|
|
12
|
+
/** Mock IP data for dev mode */
|
|
13
|
+
export const MOCK_IP = {
|
|
14
|
+
countryCode: 'US',
|
|
15
|
+
city: 'san francisco',
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=mocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../src/sdk/hooks/mocks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qCAAqC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,cAAc,EACZ,OAAO,SAAS,KAAK,WAAW;QAChC,gEAAgE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;IAC5F,SAAS,EAAE,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;IAC7E,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,SAAS;CACzB,CAAA;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,OAAO,GAAW;IAC7B,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,eAAe;CACtB,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useAudienceManager hook - Subscribe visitors to the profile owner's audience
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* import { useAudienceManager } from '@linktr.ee/linkapp/sdk'
|
|
7
|
+
*
|
|
8
|
+
* function SubscribeForm() {
|
|
9
|
+
* const [email, setEmail] = useState('')
|
|
10
|
+
* const { subscribe, isSubscribing, error } = useAudienceManager()
|
|
11
|
+
*
|
|
12
|
+
* const handleSubmit = async (e: React.FormEvent) => {
|
|
13
|
+
* e.preventDefault()
|
|
14
|
+
* const result = await subscribe(email)
|
|
15
|
+
* if (result.success) {
|
|
16
|
+
* setEmail('')
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <form onSubmit={handleSubmit}>
|
|
22
|
+
* <input type="email" value={email} onChange={(e) => setEmail(e.target.value)} />
|
|
23
|
+
* <button disabled={isSubscribing}>{isSubscribing ? 'Subscribing...' : 'Subscribe'}</button>
|
|
24
|
+
* {error && <p>{error}</p>}
|
|
25
|
+
* </form>
|
|
26
|
+
* )
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import type { SubscribeResult } from '../messages.js';
|
|
31
|
+
export interface UseAudienceManagerResult {
|
|
32
|
+
subscribe: (email: string) => Promise<SubscribeResult>;
|
|
33
|
+
isSubscribing: boolean;
|
|
34
|
+
error: string | null;
|
|
35
|
+
clearError: () => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Hook to manage audience subscriptions
|
|
39
|
+
*
|
|
40
|
+
* Flow: validate email → request captcha → submit subscription
|
|
41
|
+
* In dev mode, simulates successful subscription.
|
|
42
|
+
*/
|
|
43
|
+
export declare function useAudienceManager(): UseAudienceManagerResult;
|
|
44
|
+
//# sourceMappingURL=use-audience-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-audience-manager.d.ts","sourceRoot":"","sources":["../../../src/sdk/hooks/use-audience-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,KAAK,EAA0B,eAAe,EAA0B,MAAM,gBAAgB,CAAA;AAGrG,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACtD,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CA6E7D"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useAudienceManager hook - Subscribe visitors to the profile owner's audience
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* import { useAudienceManager } from '@linktr.ee/linkapp/sdk'
|
|
7
|
+
*
|
|
8
|
+
* function SubscribeForm() {
|
|
9
|
+
* const [email, setEmail] = useState('')
|
|
10
|
+
* const { subscribe, isSubscribing, error } = useAudienceManager()
|
|
11
|
+
*
|
|
12
|
+
* const handleSubmit = async (e: React.FormEvent) => {
|
|
13
|
+
* e.preventDefault()
|
|
14
|
+
* const result = await subscribe(email)
|
|
15
|
+
* if (result.success) {
|
|
16
|
+
* setEmail('')
|
|
17
|
+
* }
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* return (
|
|
21
|
+
* <form onSubmit={handleSubmit}>
|
|
22
|
+
* <input type="email" value={email} onChange={(e) => setEmail(e.target.value)} />
|
|
23
|
+
* <button disabled={isSubscribing}>{isSubscribing ? 'Subscribing...' : 'Subscribe'}</button>
|
|
24
|
+
* {error && <p>{error}</p>}
|
|
25
|
+
* </form>
|
|
26
|
+
* )
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import { useCallback, useState } from 'react';
|
|
31
|
+
import { messageBus } from '../message-bus.js';
|
|
32
|
+
import { devDelay, isValidEmail } from './validation.js';
|
|
33
|
+
/** Create error result and set error state */
|
|
34
|
+
const createError = (error, errorCode) => ({
|
|
35
|
+
success: false,
|
|
36
|
+
error,
|
|
37
|
+
errorCode,
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* Hook to manage audience subscriptions
|
|
41
|
+
*
|
|
42
|
+
* Flow: validate email → request captcha → submit subscription
|
|
43
|
+
* In dev mode, simulates successful subscription.
|
|
44
|
+
*/
|
|
45
|
+
export function useAudienceManager() {
|
|
46
|
+
const [isSubscribing, setIsSubscribing] = useState(false);
|
|
47
|
+
const [error, setError] = useState(null);
|
|
48
|
+
const clearError = useCallback(() => setError(null), []);
|
|
49
|
+
const subscribe = useCallback(async (email) => {
|
|
50
|
+
// Validate email
|
|
51
|
+
if (!email || !isValidEmail(email)) {
|
|
52
|
+
const result = createError('Please enter a valid email address', 'INVALID_EMAIL');
|
|
53
|
+
setError(result.error);
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
// Dev mode: simulate success
|
|
57
|
+
if (!messageBus.isInIframe()) {
|
|
58
|
+
setIsSubscribing(true);
|
|
59
|
+
await devDelay();
|
|
60
|
+
setIsSubscribing(false);
|
|
61
|
+
setError(null);
|
|
62
|
+
return { success: true };
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
setIsSubscribing(true);
|
|
66
|
+
setError(null);
|
|
67
|
+
// Step 1: Get captcha token
|
|
68
|
+
const captchaResponse = await messageBus.request({
|
|
69
|
+
source: 'linkapp',
|
|
70
|
+
type: 'REQUEST_CAPTCHA',
|
|
71
|
+
payload: {
|
|
72
|
+
requestId: messageBus.generateRequestId(),
|
|
73
|
+
action: 'subscribe',
|
|
74
|
+
},
|
|
75
|
+
}, 'CAPTCHA_RESPONSE', 15000);
|
|
76
|
+
if (!captchaResponse.payload.success || !captchaResponse.payload.token) {
|
|
77
|
+
const result = createError(captchaResponse.payload.error || 'Failed to verify you are human', 'CAPTCHA_FAILED');
|
|
78
|
+
setError(result.error);
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
// Step 2: Submit subscription
|
|
82
|
+
const subscribeResponse = await messageBus.request({
|
|
83
|
+
source: 'linkapp',
|
|
84
|
+
type: 'SUBMIT_SUBSCRIBE',
|
|
85
|
+
payload: {
|
|
86
|
+
requestId: messageBus.generateRequestId(),
|
|
87
|
+
email,
|
|
88
|
+
captchaToken: captchaResponse.payload.token,
|
|
89
|
+
},
|
|
90
|
+
}, 'SUBSCRIBE_RESULT', 10000);
|
|
91
|
+
const { success, error: respError, errorCode } = subscribeResponse.payload;
|
|
92
|
+
if (!success && respError)
|
|
93
|
+
setError(respError);
|
|
94
|
+
else
|
|
95
|
+
setError(null);
|
|
96
|
+
return { success, error: respError, errorCode };
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
const errorMessage = err instanceof Error ? err.message : 'Subscription failed';
|
|
100
|
+
setError(errorMessage);
|
|
101
|
+
return createError(errorMessage);
|
|
102
|
+
}
|
|
103
|
+
finally {
|
|
104
|
+
setIsSubscribing(false);
|
|
105
|
+
}
|
|
106
|
+
}, []);
|
|
107
|
+
return { subscribe, isSubscribing, error, clearError };
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=use-audience-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-audience-manager.js","sourceRoot":"","sources":["../../../src/sdk/hooks/use-audience-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AASxD,8CAA8C;AAC9C,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,SAAwC,EAAmB,EAAE,CAAC,CAAC;IACjG,OAAO,EAAE,KAAK;IACd,KAAK;IACL,SAAS;CACV,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAExD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,KAAa,EAA4B,EAAE;QAC9E,iBAAiB;QACjB,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,WAAW,CAAC,oCAAoC,EAAE,eAAe,CAAC,CAAA;YACjF,QAAQ,CAAC,MAAM,CAAC,KAAM,CAAC,CAAA;YACvB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;YAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACtB,MAAM,QAAQ,EAAE,CAAA;YAChB,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC;QAED,IAAI,CAAC;YACH,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACtB,QAAQ,CAAC,IAAI,CAAC,CAAA;YAEd,4BAA4B;YAC5B,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,OAAO,CAC9C;gBACE,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE;oBACP,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE;oBACzC,MAAM,EAAE,WAAW;iBACpB;aACF,EACD,kBAAkB,EAClB,KAAK,CACN,CAAA;YAED,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACvE,MAAM,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,IAAI,gCAAgC,EAAE,gBAAgB,CAAC,CAAA;gBAC/G,QAAQ,CAAC,MAAM,CAAC,KAAM,CAAC,CAAA;gBACvB,OAAO,MAAM,CAAA;YACf,CAAC;YAED,8BAA8B;YAC9B,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,OAAO,CAChD;gBACE,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE;oBACP,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE;oBACzC,KAAK;oBACL,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK;iBAC5C;aACF,EACD,kBAAkB,EAClB,KAAK,CACN,CAAA;YAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAA;YAC1E,IAAI,CAAC,OAAO,IAAI,SAAS;gBAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;;gBACzC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAEnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAA;YAC/E,QAAQ,CAAC,YAAY,CAAC,CAAA;YACtB,OAAO,WAAW,CAAC,YAAY,CAAC,CAAA;QAClC,CAAC;gBAAS,CAAC;YACT,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AACxD,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useIP hook - Request and access IP/geolocation data from the parent profile page
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* import { useIP } from '@linktr.ee/linkapp/sdk'
|
|
7
|
+
*
|
|
8
|
+
* function MyComponent() {
|
|
9
|
+
* const { ip, isLoading, error } = useIP()
|
|
10
|
+
* const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
11
|
+
*
|
|
12
|
+
* if (isLoading) return <div>Loading...</div>
|
|
13
|
+
* if (error) return <div>Error: {error.message}</div>
|
|
14
|
+
*
|
|
15
|
+
* return (
|
|
16
|
+
* <div>
|
|
17
|
+
* <p>Country: {ip?.countryCode}</p>
|
|
18
|
+
* <p>City: {ip?.city}</p>
|
|
19
|
+
* <p>Timezone: {timezone}</p>
|
|
20
|
+
* </div>
|
|
21
|
+
* )
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import type { IPData } from '../messages.js';
|
|
26
|
+
export interface UseIPResult {
|
|
27
|
+
/** IP/geolocation data, null if not yet loaded or error */
|
|
28
|
+
ip: IPData | null;
|
|
29
|
+
/** Whether the request is in progress */
|
|
30
|
+
isLoading: boolean;
|
|
31
|
+
/** Error if the request failed */
|
|
32
|
+
error: Error | null;
|
|
33
|
+
/** Manually refetch IP data */
|
|
34
|
+
refetch: () => Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Hook to request and access IP/geolocation data from the parent profile page
|
|
38
|
+
*
|
|
39
|
+
* Sends REQUEST_IP message on mount and stores the response.
|
|
40
|
+
* In dev mode (not in iframe), returns mock data.
|
|
41
|
+
*
|
|
42
|
+
* Note: For timezone, use `Intl.DateTimeFormat().resolvedOptions().timeZone` directly.
|
|
43
|
+
*/
|
|
44
|
+
export declare function useIP(): UseIPResult;
|
|
45
|
+
//# sourceMappingURL=use-ip.d.ts.map
|