@linkforty/core 1.0.0 → 1.2.0
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/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/database.d.ts.map +1 -1
- package/dist/lib/database.js +154 -0
- package/dist/lib/database.js.map +1 -1
- package/dist/lib/event-emitter.d.ts +46 -0
- package/dist/lib/event-emitter.d.ts.map +1 -0
- package/dist/lib/event-emitter.js +29 -0
- package/dist/lib/event-emitter.js.map +1 -0
- package/dist/lib/fingerprint.d.ts +64 -0
- package/dist/lib/fingerprint.d.ts.map +1 -0
- package/dist/lib/fingerprint.js +387 -0
- package/dist/lib/fingerprint.js.map +1 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/webhook.d.ts +18 -0
- package/dist/lib/webhook.d.ts.map +1 -0
- package/dist/lib/webhook.js +150 -0
- package/dist/lib/webhook.js.map +1 -0
- package/dist/routes/debug.d.ts +7 -0
- package/dist/routes/debug.d.ts.map +1 -0
- package/dist/routes/debug.js +321 -0
- package/dist/routes/debug.js.map +1 -0
- package/dist/routes/index.d.ts +5 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +11 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/links.d.ts.map +1 -1
- package/dist/routes/links.js +21 -3
- package/dist/routes/links.js.map +1 -1
- package/dist/routes/preview.d.ts +3 -0
- package/dist/routes/preview.d.ts.map +1 -0
- package/dist/routes/preview.js +225 -0
- package/dist/routes/preview.js.map +1 -0
- package/dist/routes/qr.d.ts +6 -0
- package/dist/routes/qr.d.ts.map +1 -0
- package/dist/routes/qr.js +136 -0
- package/dist/routes/qr.js.map +1 -0
- package/dist/routes/redirect.d.ts.map +1 -1
- package/dist/routes/redirect.js +167 -11
- package/dist/routes/redirect.js.map +1 -1
- package/dist/routes/sdk.d.ts +7 -0
- package/dist/routes/sdk.d.ts.map +1 -0
- package/dist/routes/sdk.js +265 -0
- package/dist/routes/sdk.js.map +1 -0
- package/dist/routes/webhooks.d.ts +3 -0
- package/dist/routes/webhooks.d.ts.map +1 -0
- package/dist/routes/webhooks.js +212 -0
- package/dist/routes/webhooks.js.map +1 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +11 -7
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.debugRoutes = debugRoutes;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const database_js_1 = require("../lib/database.js");
|
|
6
|
+
const utils_js_1 = require("../lib/utils.js");
|
|
7
|
+
const event_emitter_js_1 = require("../lib/event-emitter.js");
|
|
8
|
+
/**
|
|
9
|
+
* Device simulation request schema
|
|
10
|
+
*/
|
|
11
|
+
const simulateRequestSchema = zod_1.z.object({
|
|
12
|
+
linkId: zod_1.z.string().uuid(),
|
|
13
|
+
userId: zod_1.z.string().uuid(),
|
|
14
|
+
deviceType: zod_1.z.enum(['ios', 'android', 'web']).optional(),
|
|
15
|
+
userAgent: zod_1.z.string().optional(),
|
|
16
|
+
country: zod_1.z.string().length(2).optional(), // ISO country code
|
|
17
|
+
language: zod_1.z.string().optional(), // e.g., "en", "es", "fr"
|
|
18
|
+
ipAddress: zod_1.z.string().ip().optional(),
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* Debugging routes for testing and validation
|
|
22
|
+
* Premium Cloud-only feature
|
|
23
|
+
*/
|
|
24
|
+
async function debugRoutes(fastify) {
|
|
25
|
+
/**
|
|
26
|
+
* POST /api/debug/simulate
|
|
27
|
+
* Simulate a link click with custom device parameters
|
|
28
|
+
* Returns detailed information about redirect decision without logging
|
|
29
|
+
*/
|
|
30
|
+
fastify.post('/api/debug/simulate', async (request) => {
|
|
31
|
+
const data = simulateRequestSchema.parse(request.body);
|
|
32
|
+
// Fetch the link
|
|
33
|
+
const linkResult = await database_js_1.db.query(`SELECT * FROM links WHERE id = $1 AND user_id = $2`, [data.linkId, data.userId]);
|
|
34
|
+
if (linkResult.rows.length === 0) {
|
|
35
|
+
throw new Error('Link not found');
|
|
36
|
+
}
|
|
37
|
+
const link = linkResult.rows[0];
|
|
38
|
+
// Determine device type
|
|
39
|
+
let deviceType;
|
|
40
|
+
if (data.deviceType) {
|
|
41
|
+
deviceType = data.deviceType;
|
|
42
|
+
}
|
|
43
|
+
else if (data.userAgent) {
|
|
44
|
+
deviceType = (0, utils_js_1.detectDevice)(data.userAgent);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
deviceType = 'web'; // Default
|
|
48
|
+
}
|
|
49
|
+
// Simulate targeting rules evaluation
|
|
50
|
+
const targetingRules = link.targeting_rules || {};
|
|
51
|
+
const simulatedCountry = data.country || 'US';
|
|
52
|
+
const simulatedLanguage = data.language || 'en';
|
|
53
|
+
let targetingMatched = true;
|
|
54
|
+
const targetingDetails = {
|
|
55
|
+
countryMatch: null,
|
|
56
|
+
deviceMatch: null,
|
|
57
|
+
languageMatch: null,
|
|
58
|
+
};
|
|
59
|
+
// Check country targeting
|
|
60
|
+
if (targetingRules.countries && targetingRules.countries.length > 0) {
|
|
61
|
+
targetingDetails.countryMatch = targetingRules.countries.includes(simulatedCountry);
|
|
62
|
+
if (!targetingDetails.countryMatch) {
|
|
63
|
+
targetingMatched = false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Check device targeting
|
|
67
|
+
if (targetingRules.devices && targetingRules.devices.length > 0) {
|
|
68
|
+
targetingDetails.deviceMatch = targetingRules.devices.includes(deviceType);
|
|
69
|
+
if (!targetingDetails.deviceMatch) {
|
|
70
|
+
targetingMatched = false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Check language targeting
|
|
74
|
+
if (targetingRules.languages && targetingRules.languages.length > 0) {
|
|
75
|
+
const primaryLang = simulatedLanguage.split('-')[0];
|
|
76
|
+
targetingDetails.languageMatch = targetingRules.languages.some((lang) => lang.toLowerCase().startsWith(primaryLang.toLowerCase()));
|
|
77
|
+
if (!targetingDetails.languageMatch) {
|
|
78
|
+
targetingMatched = false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Determine redirect URL based on device type
|
|
82
|
+
let redirectUrl = link.original_url;
|
|
83
|
+
let redirectReason = 'original_url (default)';
|
|
84
|
+
if (deviceType === 'ios' && link.ios_url) {
|
|
85
|
+
redirectUrl = link.ios_url;
|
|
86
|
+
redirectReason = 'ios_url (iOS device detected)';
|
|
87
|
+
}
|
|
88
|
+
else if (deviceType === 'android' && link.android_url) {
|
|
89
|
+
redirectUrl = link.android_url;
|
|
90
|
+
redirectReason = 'android_url (Android device detected)';
|
|
91
|
+
}
|
|
92
|
+
else if (deviceType === 'web' && link.web_fallback_url) {
|
|
93
|
+
redirectUrl = link.web_fallback_url;
|
|
94
|
+
redirectReason = 'web_fallback_url (Web device detected)';
|
|
95
|
+
}
|
|
96
|
+
// Add UTM parameters if present
|
|
97
|
+
let finalUrl = redirectUrl;
|
|
98
|
+
const utmParameters = link.utm_parameters || {};
|
|
99
|
+
if (Object.keys(utmParameters).length > 0) {
|
|
100
|
+
const url = new URL(redirectUrl);
|
|
101
|
+
if (utmParameters.source)
|
|
102
|
+
url.searchParams.set('utm_source', utmParameters.source);
|
|
103
|
+
if (utmParameters.medium)
|
|
104
|
+
url.searchParams.set('utm_medium', utmParameters.medium);
|
|
105
|
+
if (utmParameters.campaign)
|
|
106
|
+
url.searchParams.set('utm_campaign', utmParameters.campaign);
|
|
107
|
+
if (utmParameters.term)
|
|
108
|
+
url.searchParams.set('utm_term', utmParameters.term);
|
|
109
|
+
if (utmParameters.content)
|
|
110
|
+
url.searchParams.set('utm_content', utmParameters.content);
|
|
111
|
+
finalUrl = url.toString();
|
|
112
|
+
}
|
|
113
|
+
// Return detailed simulation results
|
|
114
|
+
return {
|
|
115
|
+
simulation: {
|
|
116
|
+
linkId: link.id,
|
|
117
|
+
shortCode: link.short_code,
|
|
118
|
+
title: link.title,
|
|
119
|
+
isActive: link.is_active,
|
|
120
|
+
expiresAt: link.expires_at,
|
|
121
|
+
},
|
|
122
|
+
input: {
|
|
123
|
+
deviceType: data.deviceType || 'auto-detected',
|
|
124
|
+
userAgent: data.userAgent || 'Not provided',
|
|
125
|
+
country: simulatedCountry,
|
|
126
|
+
language: simulatedLanguage,
|
|
127
|
+
ipAddress: data.ipAddress || 'Not provided',
|
|
128
|
+
},
|
|
129
|
+
detection: {
|
|
130
|
+
detectedDevice: deviceType,
|
|
131
|
+
detectionMethod: data.deviceType
|
|
132
|
+
? 'manual (provided in request)'
|
|
133
|
+
: data.userAgent
|
|
134
|
+
? 'user-agent parsing'
|
|
135
|
+
: 'default (web)',
|
|
136
|
+
},
|
|
137
|
+
targeting: {
|
|
138
|
+
hasRules: Object.keys(targetingRules).length > 0,
|
|
139
|
+
rules: targetingRules,
|
|
140
|
+
matched: targetingMatched,
|
|
141
|
+
details: targetingDetails,
|
|
142
|
+
},
|
|
143
|
+
redirect: {
|
|
144
|
+
wouldRedirect: link.is_active && targetingMatched,
|
|
145
|
+
finalUrl: targetingMatched ? finalUrl : null,
|
|
146
|
+
redirectReason: targetingMatched ? redirectReason : 'Targeting rules not matched',
|
|
147
|
+
utmParametersAdded: Object.keys(utmParameters).length > 0,
|
|
148
|
+
utmParameters: utmParameters,
|
|
149
|
+
},
|
|
150
|
+
warnings: [
|
|
151
|
+
...(!link.is_active ? ['Link is inactive - would return 404'] : []),
|
|
152
|
+
...(link.expires_at && new Date(link.expires_at) < new Date()
|
|
153
|
+
? ['Link has expired - would return 404']
|
|
154
|
+
: []),
|
|
155
|
+
...(!targetingMatched ? ['Targeting rules not matched - would return 404'] : []),
|
|
156
|
+
],
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
/**
|
|
160
|
+
* GET /api/debug/user-agents
|
|
161
|
+
* Get a list of common User-Agent strings for testing
|
|
162
|
+
*/
|
|
163
|
+
fastify.get('/api/debug/user-agents', async () => {
|
|
164
|
+
return {
|
|
165
|
+
ios: [
|
|
166
|
+
{
|
|
167
|
+
name: 'iPhone 15 Pro - iOS 17 - Safari',
|
|
168
|
+
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1',
|
|
169
|
+
device: 'ios',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: 'iPhone 14 - iOS 16 - Safari',
|
|
173
|
+
userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1',
|
|
174
|
+
device: 'ios',
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
name: 'iPad Pro - iOS 17 - Safari',
|
|
178
|
+
userAgent: 'Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1',
|
|
179
|
+
device: 'ios',
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
android: [
|
|
183
|
+
{
|
|
184
|
+
name: 'Samsung Galaxy S23 - Android 13 - Chrome',
|
|
185
|
+
userAgent: 'Mozilla/5.0 (Linux; Android 13; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36',
|
|
186
|
+
device: 'android',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
name: 'Google Pixel 8 - Android 14 - Chrome',
|
|
190
|
+
userAgent: 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36',
|
|
191
|
+
device: 'android',
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
name: 'OnePlus 11 - Android 13 - Chrome',
|
|
195
|
+
userAgent: 'Mozilla/5.0 (Linux; Android 13; CPH2449) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36',
|
|
196
|
+
device: 'android',
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
web: [
|
|
200
|
+
{
|
|
201
|
+
name: 'Chrome on Windows',
|
|
202
|
+
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
|
|
203
|
+
device: 'web',
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: 'Safari on macOS',
|
|
207
|
+
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15',
|
|
208
|
+
device: 'web',
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: 'Firefox on Linux',
|
|
212
|
+
userAgent: 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0',
|
|
213
|
+
device: 'web',
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
};
|
|
217
|
+
});
|
|
218
|
+
/**
|
|
219
|
+
* GET /api/debug/countries
|
|
220
|
+
* Get a list of common countries for testing
|
|
221
|
+
*/
|
|
222
|
+
fastify.get('/api/debug/countries', async () => {
|
|
223
|
+
return {
|
|
224
|
+
countries: [
|
|
225
|
+
{ code: 'US', name: 'United States' },
|
|
226
|
+
{ code: 'GB', name: 'United Kingdom' },
|
|
227
|
+
{ code: 'CA', name: 'Canada' },
|
|
228
|
+
{ code: 'AU', name: 'Australia' },
|
|
229
|
+
{ code: 'DE', name: 'Germany' },
|
|
230
|
+
{ code: 'FR', name: 'France' },
|
|
231
|
+
{ code: 'ES', name: 'Spain' },
|
|
232
|
+
{ code: 'IT', name: 'Italy' },
|
|
233
|
+
{ code: 'JP', name: 'Japan' },
|
|
234
|
+
{ code: 'CN', name: 'China' },
|
|
235
|
+
{ code: 'IN', name: 'India' },
|
|
236
|
+
{ code: 'BR', name: 'Brazil' },
|
|
237
|
+
{ code: 'MX', name: 'Mexico' },
|
|
238
|
+
{ code: 'KR', name: 'South Korea' },
|
|
239
|
+
{ code: 'SG', name: 'Singapore' },
|
|
240
|
+
],
|
|
241
|
+
};
|
|
242
|
+
});
|
|
243
|
+
/**
|
|
244
|
+
* GET /api/debug/languages
|
|
245
|
+
* Get a list of common languages for testing
|
|
246
|
+
*/
|
|
247
|
+
fastify.get('/api/debug/languages', async () => {
|
|
248
|
+
return {
|
|
249
|
+
languages: [
|
|
250
|
+
{ code: 'en', name: 'English' },
|
|
251
|
+
{ code: 'es', name: 'Spanish' },
|
|
252
|
+
{ code: 'fr', name: 'French' },
|
|
253
|
+
{ code: 'de', name: 'German' },
|
|
254
|
+
{ code: 'it', name: 'Italian' },
|
|
255
|
+
{ code: 'pt', name: 'Portuguese' },
|
|
256
|
+
{ code: 'ja', name: 'Japanese' },
|
|
257
|
+
{ code: 'zh', name: 'Chinese' },
|
|
258
|
+
{ code: 'ko', name: 'Korean' },
|
|
259
|
+
{ code: 'ar', name: 'Arabic' },
|
|
260
|
+
{ code: 'ru', name: 'Russian' },
|
|
261
|
+
{ code: 'hi', name: 'Hindi' },
|
|
262
|
+
],
|
|
263
|
+
};
|
|
264
|
+
});
|
|
265
|
+
/**
|
|
266
|
+
* WebSocket: /api/debug/live
|
|
267
|
+
* Real-time click event streaming
|
|
268
|
+
* Clients can subscribe to live click events filtered by userId and optionally linkId
|
|
269
|
+
*/
|
|
270
|
+
fastify.get('/api/debug/live', { websocket: true }, (connection, request) => {
|
|
271
|
+
const { userId, linkId } = request.query;
|
|
272
|
+
if (!userId) {
|
|
273
|
+
connection.socket.send(JSON.stringify({
|
|
274
|
+
type: 'error',
|
|
275
|
+
message: 'userId query parameter is required',
|
|
276
|
+
}));
|
|
277
|
+
connection.socket.close();
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
// Send welcome message
|
|
281
|
+
connection.socket.send(JSON.stringify({
|
|
282
|
+
type: 'connected',
|
|
283
|
+
message: 'Connected to live request inspector',
|
|
284
|
+
filters: {
|
|
285
|
+
userId,
|
|
286
|
+
linkId: linkId || 'all',
|
|
287
|
+
},
|
|
288
|
+
}));
|
|
289
|
+
// Subscribe to click events
|
|
290
|
+
const unsubscribe = (0, event_emitter_js_1.subscribeToClickEvents)((eventData) => {
|
|
291
|
+
// Filter by userId
|
|
292
|
+
if (eventData.userId !== userId) {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
// Filter by linkId if provided
|
|
296
|
+
if (linkId && eventData.linkId !== linkId) {
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
// Send event to client
|
|
300
|
+
try {
|
|
301
|
+
connection.socket.send(JSON.stringify({
|
|
302
|
+
type: 'click_event',
|
|
303
|
+
data: eventData,
|
|
304
|
+
}));
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
console.error('Failed to send WebSocket message:', error);
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
// Handle client disconnect
|
|
311
|
+
connection.socket.on('close', () => {
|
|
312
|
+
unsubscribe();
|
|
313
|
+
});
|
|
314
|
+
// Handle errors
|
|
315
|
+
connection.socket.on('error', (error) => {
|
|
316
|
+
console.error('WebSocket error:', error);
|
|
317
|
+
unsubscribe();
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/routes/debug.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/index.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export { redirectRoutes } from './redirect.js';
|
|
2
2
|
export { linkRoutes } from './links.js';
|
|
3
3
|
export { analyticsRoutes } from './analytics.js';
|
|
4
|
+
export { sdkRoutes } from './sdk.js';
|
|
5
|
+
export { qrRoutes } from './qr.js';
|
|
6
|
+
export { webhookRoutes } from './webhooks.js';
|
|
7
|
+
export { previewRoutes } from './preview.js';
|
|
8
|
+
export { debugRoutes } from './debug.js';
|
|
4
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/routes/index.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.analyticsRoutes = exports.linkRoutes = exports.redirectRoutes = void 0;
|
|
3
|
+
exports.debugRoutes = exports.previewRoutes = exports.webhookRoutes = exports.qrRoutes = exports.sdkRoutes = exports.analyticsRoutes = exports.linkRoutes = exports.redirectRoutes = void 0;
|
|
4
4
|
var redirect_js_1 = require("./redirect.js");
|
|
5
5
|
Object.defineProperty(exports, "redirectRoutes", { enumerable: true, get: function () { return redirect_js_1.redirectRoutes; } });
|
|
6
6
|
var links_js_1 = require("./links.js");
|
|
7
7
|
Object.defineProperty(exports, "linkRoutes", { enumerable: true, get: function () { return links_js_1.linkRoutes; } });
|
|
8
8
|
var analytics_js_1 = require("./analytics.js");
|
|
9
9
|
Object.defineProperty(exports, "analyticsRoutes", { enumerable: true, get: function () { return analytics_js_1.analyticsRoutes; } });
|
|
10
|
+
var sdk_js_1 = require("./sdk.js");
|
|
11
|
+
Object.defineProperty(exports, "sdkRoutes", { enumerable: true, get: function () { return sdk_js_1.sdkRoutes; } });
|
|
12
|
+
var qr_js_1 = require("./qr.js");
|
|
13
|
+
Object.defineProperty(exports, "qrRoutes", { enumerable: true, get: function () { return qr_js_1.qrRoutes; } });
|
|
14
|
+
var webhooks_js_1 = require("./webhooks.js");
|
|
15
|
+
Object.defineProperty(exports, "webhookRoutes", { enumerable: true, get: function () { return webhooks_js_1.webhookRoutes; } });
|
|
16
|
+
var preview_js_1 = require("./preview.js");
|
|
17
|
+
Object.defineProperty(exports, "previewRoutes", { enumerable: true, get: function () { return preview_js_1.previewRoutes; } });
|
|
18
|
+
var debug_js_1 = require("./debug.js");
|
|
19
|
+
Object.defineProperty(exports, "debugRoutes", { enumerable: true, get: function () { return debug_js_1.debugRoutes; } });
|
|
10
20
|
//# sourceMappingURL=index.js.map
|
package/dist/routes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,uCAAwC;AAA/B,sGAAA,UAAU,OAAA;AACnB,+CAAiD;AAAxC,+GAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAAtC,6GAAA,cAAc,OAAA;AACvB,uCAAwC;AAA/B,sGAAA,UAAU,OAAA;AACnB,+CAAiD;AAAxC,+GAAA,eAAe,OAAA;AACxB,mCAAqC;AAA5B,mGAAA,SAAS,OAAA;AAClB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AACjB,6CAA8C;AAArC,4GAAA,aAAa,OAAA;AACtB,2CAA6C;AAApC,2GAAA,aAAa,OAAA;AACtB,uCAAyC;AAAhC,uGAAA,WAAW,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/routes/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/routes/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,SAAS,CAAC;AA0C1D,wBAAsB,UAAU,CAAC,OAAO,EAAE,eAAe,iBAmNxD"}
|
package/dist/routes/links.js
CHANGED
|
@@ -8,6 +8,7 @@ const createLinkSchema = zod_1.z.object({
|
|
|
8
8
|
userId: zod_1.z.string().uuid(),
|
|
9
9
|
originalUrl: zod_1.z.string().url(),
|
|
10
10
|
title: zod_1.z.string().optional(),
|
|
11
|
+
description: zod_1.z.string().optional(),
|
|
11
12
|
iosUrl: zod_1.z.string().url().optional(),
|
|
12
13
|
androidUrl: zod_1.z.string().url().optional(),
|
|
13
14
|
webFallbackUrl: zod_1.z.string().url().optional(),
|
|
@@ -24,6 +25,15 @@ const createLinkSchema = zod_1.z.object({
|
|
|
24
25
|
devices: zod_1.z.array(zod_1.z.enum(['ios', 'android', 'web'])).optional(),
|
|
25
26
|
languages: zod_1.z.array(zod_1.z.string()).optional(),
|
|
26
27
|
}).optional(),
|
|
28
|
+
ogTitle: zod_1.z.string().optional(),
|
|
29
|
+
ogDescription: zod_1.z.string().optional(),
|
|
30
|
+
ogImageUrl: zod_1.z.string().url().optional(),
|
|
31
|
+
ogType: zod_1.z.string().optional(),
|
|
32
|
+
attributionWindowHours: zod_1.z.number()
|
|
33
|
+
.int('Attribution window must be an integer')
|
|
34
|
+
.min(1, 'Attribution window must be at least 1 hour')
|
|
35
|
+
.max(2160, 'Attribution window must be at most 2160 hours (90 days)')
|
|
36
|
+
.optional(),
|
|
27
37
|
expiresAt: zod_1.z.string().datetime().optional(),
|
|
28
38
|
});
|
|
29
39
|
const updateLinkSchema = createLinkSchema.partial().extend({
|
|
@@ -95,19 +105,27 @@ async function linkRoutes(fastify) {
|
|
|
95
105
|
throw new Error('Unable to generate unique short code');
|
|
96
106
|
}
|
|
97
107
|
const result = await database_js_1.db.query(`INSERT INTO links (
|
|
98
|
-
user_id, short_code, original_url, title,
|
|
99
|
-
ios_url, android_url, web_fallback_url, utm_parameters, targeting_rules,
|
|
100
|
-
|
|
108
|
+
user_id, short_code, original_url, title, description,
|
|
109
|
+
ios_url, android_url, web_fallback_url, utm_parameters, targeting_rules,
|
|
110
|
+
og_title, og_description, og_image_url, og_type,
|
|
111
|
+
attribution_window_hours, expires_at
|
|
112
|
+
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16)
|
|
101
113
|
RETURNING *`, [
|
|
102
114
|
data.userId,
|
|
103
115
|
shortCode,
|
|
104
116
|
data.originalUrl,
|
|
105
117
|
data.title || null,
|
|
118
|
+
data.description || null,
|
|
106
119
|
data.iosUrl || null,
|
|
107
120
|
data.androidUrl || null,
|
|
108
121
|
data.webFallbackUrl || null,
|
|
109
122
|
JSON.stringify(data.utmParameters || {}),
|
|
110
123
|
JSON.stringify(data.targetingRules || {}),
|
|
124
|
+
data.ogTitle || null,
|
|
125
|
+
data.ogDescription || null,
|
|
126
|
+
data.ogImageUrl || null,
|
|
127
|
+
data.ogType || 'website',
|
|
128
|
+
data.attributionWindowHours || 168, // Default 7 days
|
|
111
129
|
data.expiresAt || null,
|
|
112
130
|
]);
|
|
113
131
|
const link = result.rows[0];
|
package/dist/routes/links.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/routes/links.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/routes/links.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../src/routes/preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA2J1C,wBAAsB,aAAa,CAAC,OAAO,EAAE,eAAe,iBAgG3D"}
|