@groundbrick/sveltekit-adapter 0.2.3 → 0.3.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/analytics/components/FacebookPixel.svelte +110 -0
- package/dist/analytics/index.d.ts +3 -0
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +4 -1
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/utils/facebook-events.d.ts +42 -0
- package/dist/analytics/utils/facebook-events.d.ts.map +1 -0
- package/dist/analytics/utils/facebook-events.js +30 -0
- package/dist/analytics/utils/facebook-events.js.map +1 -0
- package/dist/client/ApiClient.d.ts.map +1 -1
- package/dist/client/ApiClient.js +30 -6
- package/dist/client/ApiClient.js.map +1 -1
- package/dist/client/jwtDecoder.d.ts +2 -2
- package/dist/client/jwtDecoder.d.ts.map +1 -1
- package/dist/client/stores.js +5 -5
- package/dist/client/stores.js.map +1 -1
- package/dist/cookies/index.d.ts +68 -0
- package/dist/cookies/index.d.ts.map +1 -0
- package/dist/cookies/index.js +101 -0
- package/dist/cookies/index.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +90 -7
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +24 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { browser } from '$app/environment';
|
|
3
|
+
import { page } from '$app/stores';
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
pixelId: string;
|
|
7
|
+
debug?: boolean;
|
|
8
|
+
trackPageViews?: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let {
|
|
12
|
+
pixelId,
|
|
13
|
+
debug = false,
|
|
14
|
+
trackPageViews = true,
|
|
15
|
+
}: Props = $props();
|
|
16
|
+
|
|
17
|
+
let initialized = $state(false);
|
|
18
|
+
let isReady = $state(false);
|
|
19
|
+
let hasConsent = $state(true); // Default to true; consent system overrides if available
|
|
20
|
+
|
|
21
|
+
function initFbqStub() {
|
|
22
|
+
if ((window as any).fbq) return;
|
|
23
|
+
|
|
24
|
+
const n: any = ((window as any).fbq = function (...args: any[]) {
|
|
25
|
+
n.callMethod ? n.callMethod.apply(n, args) : n.queue.push(args);
|
|
26
|
+
});
|
|
27
|
+
if (!(window as any)._fbq) (window as any)._fbq = n;
|
|
28
|
+
n.push = n;
|
|
29
|
+
n.loaded = true;
|
|
30
|
+
n.version = '2.0';
|
|
31
|
+
n.queue = [];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function loadFbScript(): void {
|
|
35
|
+
if (document.querySelector('script[src*="fbevents.js"]')) return;
|
|
36
|
+
|
|
37
|
+
const script = document.createElement('script');
|
|
38
|
+
script.async = true;
|
|
39
|
+
script.src = 'https://connect.facebook.net/en_US/fbevents.js';
|
|
40
|
+
document.head.appendChild(script);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Initialization
|
|
44
|
+
$effect(() => {
|
|
45
|
+
if (browser && pixelId && !initialized) {
|
|
46
|
+
initFbqStub();
|
|
47
|
+
loadFbScript();
|
|
48
|
+
|
|
49
|
+
(window as any).fbq('init', pixelId);
|
|
50
|
+
(window as any).fbq('track', 'PageView');
|
|
51
|
+
|
|
52
|
+
if (debug) {
|
|
53
|
+
console.log(`[FacebookPixel] Initialized with pixel ID: ${pixelId}`);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Integrate with consent system if available
|
|
57
|
+
try {
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
import('@groundbrick/sveltekit-adapter/consent').then(({ ConsentService }) => {
|
|
60
|
+
const consentService = ConsentService.getInstance();
|
|
61
|
+
hasConsent = consentService.hasConsent('marketing');
|
|
62
|
+
|
|
63
|
+
consentService.onConsentChange((state: any) => {
|
|
64
|
+
hasConsent = state.marketing === true;
|
|
65
|
+
if (debug) {
|
|
66
|
+
console.log(`[FacebookPixel] Marketing consent: ${hasConsent}`);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}).catch(() => {
|
|
70
|
+
if (debug) {
|
|
71
|
+
console.log('[FacebookPixel] Consent system not available');
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
} catch {
|
|
75
|
+
// Consent not available, continue without it
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
initialized = true;
|
|
79
|
+
isReady = true;
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// Track page views on client-side navigation
|
|
84
|
+
$effect(() => {
|
|
85
|
+
if (browser && trackPageViews && isReady && hasConsent && $page.url) {
|
|
86
|
+
// Skip the initial page view (already tracked during init)
|
|
87
|
+
if (!initialized) return;
|
|
88
|
+
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
if ((window as any).fbq) {
|
|
91
|
+
(window as any).fbq('track', 'PageView');
|
|
92
|
+
|
|
93
|
+
if (debug) {
|
|
94
|
+
console.log('[FacebookPixel] PageView tracked:', $page.url.pathname);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}, 300);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
</script>
|
|
101
|
+
|
|
102
|
+
<noscript>
|
|
103
|
+
<img
|
|
104
|
+
height="1"
|
|
105
|
+
width="1"
|
|
106
|
+
style="display:none"
|
|
107
|
+
src="https://www.facebook.com/tr?id={pixelId}&ev=PageView&noscript=1"
|
|
108
|
+
alt=""
|
|
109
|
+
/>
|
|
110
|
+
</noscript>
|
|
@@ -4,4 +4,7 @@ export { DEFAULT_ANALYTICS_CONFIG, GDPR_ANALYTICS_CONFIG, DEBUG_ANALYTICS_CONFIG
|
|
|
4
4
|
export { createConsentAwareAnalytics, createConsentWrapper, createConsentAwarePixel, AnalyticsEventBuilder, AnalyticsEvents } from './utils/consent.js';
|
|
5
5
|
export type { ConsentProvider, PixelConfig, PixelEvent } from './utils/consent.js';
|
|
6
6
|
export { default as GoogleAnalytics } from './components/GoogleAnalytics.svelte';
|
|
7
|
+
export { default as FacebookPixel } from './components/FacebookPixel.svelte';
|
|
8
|
+
export { createFacebookEvents } from './utils/facebook-events.js';
|
|
9
|
+
export type { FacebookStandardEvents } from './utils/facebook-events.js';
|
|
7
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,YAAY,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,OAAO,EACP,UAAU,EACb,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EAC3B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACR,eAAe,EACf,WAAW,EACX,UAAU,EACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE,YAAY,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,OAAO,EACP,UAAU,EACb,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EAC3B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACR,eAAe,EACf,WAAW,EACX,UAAU,EACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/analytics/index.js
CHANGED
|
@@ -4,6 +4,9 @@ export { AnalyticsService } from './services/AnalyticsService.js';
|
|
|
4
4
|
export { DEFAULT_ANALYTICS_CONFIG, GDPR_ANALYTICS_CONFIG, DEBUG_ANALYTICS_CONFIG, MINIMAL_ANALYTICS_CONFIG } from './config/analytics.config.js';
|
|
5
5
|
// Consent integration utilities
|
|
6
6
|
export { createConsentAwareAnalytics, createConsentWrapper, createConsentAwarePixel, AnalyticsEventBuilder, AnalyticsEvents } from './utils/consent.js';
|
|
7
|
-
// Svelte
|
|
7
|
+
// Svelte components
|
|
8
8
|
export { default as GoogleAnalytics } from './components/GoogleAnalytics.svelte';
|
|
9
|
+
export { default as FacebookPixel } from './components/FacebookPixel.svelte';
|
|
10
|
+
// Facebook Pixel event helpers
|
|
11
|
+
export { createFacebookEvents } from './utils/facebook-events.js';
|
|
9
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AACA,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAWlE,wBAAwB;AACxB,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EAC3B,MAAM,8BAA8B,CAAC;AAEtC,gCAAgC;AAChC,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAQ5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AACA,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAWlE,wBAAwB;AACxB,OAAO,EACH,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EAC3B,MAAM,8BAA8B,CAAC;AAEtC,gCAAgC;AAChC,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAQ5B,oBAAoB;AACpB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAE7E,+BAA+B;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed helpers for Facebook Standard Events
|
|
3
|
+
* @see https://developers.facebook.com/docs/meta-pixel/reference
|
|
4
|
+
*/
|
|
5
|
+
export interface LeadData {
|
|
6
|
+
content_name?: string;
|
|
7
|
+
value?: number;
|
|
8
|
+
currency?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CompleteRegistrationData {
|
|
11
|
+
content_name?: string;
|
|
12
|
+
status?: string;
|
|
13
|
+
value?: number;
|
|
14
|
+
currency?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ScheduleData {
|
|
17
|
+
content_name?: string;
|
|
18
|
+
value?: number;
|
|
19
|
+
currency?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface TrialData {
|
|
22
|
+
value?: number;
|
|
23
|
+
currency?: string;
|
|
24
|
+
predicted_ltv?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface SubscribeData {
|
|
27
|
+
value?: number;
|
|
28
|
+
currency?: string;
|
|
29
|
+
predicted_ltv?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface FacebookStandardEvents {
|
|
32
|
+
pageView: () => void;
|
|
33
|
+
lead: (data?: LeadData) => void;
|
|
34
|
+
completeRegistration: (data?: CompleteRegistrationData) => void;
|
|
35
|
+
contact: () => void;
|
|
36
|
+
schedule: (data?: ScheduleData) => void;
|
|
37
|
+
startTrial: (data?: TrialData) => void;
|
|
38
|
+
subscribe: (data?: SubscribeData) => void;
|
|
39
|
+
trackCustom: (event: string, data?: Record<string, any>) => void;
|
|
40
|
+
}
|
|
41
|
+
export declare function createFacebookEvents(debug?: boolean): FacebookStandardEvents;
|
|
42
|
+
//# sourceMappingURL=facebook-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facebook-events.d.ts","sourceRoot":"","sources":["../../../src/analytics/utils/facebook-events.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IAChC,oBAAoB,EAAE,CAAC,IAAI,CAAC,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAChE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CACpE;AAcD,wBAAgB,oBAAoB,CAAC,KAAK,UAAQ,GAAG,sBAAsB,CAW1E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed helpers for Facebook Standard Events
|
|
3
|
+
* @see https://developers.facebook.com/docs/meta-pixel/reference
|
|
4
|
+
*/
|
|
5
|
+
function callFbq(method, event, data, debug = false) {
|
|
6
|
+
if (typeof window === 'undefined' || !window.fbq)
|
|
7
|
+
return;
|
|
8
|
+
if (data) {
|
|
9
|
+
window.fbq(method, event, data);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
window.fbq(method, event);
|
|
13
|
+
}
|
|
14
|
+
if (debug) {
|
|
15
|
+
console.log(`[FacebookPixel] ${method} "${event}"`, data ?? '');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function createFacebookEvents(debug = false) {
|
|
19
|
+
return {
|
|
20
|
+
pageView: () => callFbq('track', 'PageView', undefined, debug),
|
|
21
|
+
lead: (data) => callFbq('track', 'Lead', data, debug),
|
|
22
|
+
completeRegistration: (data) => callFbq('track', 'CompleteRegistration', data, debug),
|
|
23
|
+
contact: () => callFbq('track', 'Contact', undefined, debug),
|
|
24
|
+
schedule: (data) => callFbq('track', 'Schedule', data, debug),
|
|
25
|
+
startTrial: (data) => callFbq('track', 'StartTrial', data, debug),
|
|
26
|
+
subscribe: (data) => callFbq('track', 'Subscribe', data, debug),
|
|
27
|
+
trackCustom: (event, data) => callFbq('trackCustom', event, data, debug),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=facebook-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facebook-events.js","sourceRoot":"","sources":["../../../src/analytics/utils/facebook-events.ts"],"names":[],"mappings":"AACA;;;GAGG;AA4CH,SAAS,OAAO,CAAC,MAAc,EAAE,KAAa,EAAE,IAA0B,EAAE,KAAK,GAAG,KAAK;IACrF,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAE,MAAc,CAAC,GAAG;QAAE,OAAO;IAClE,IAAI,IAAI,EAAE,CAAC;QACN,MAAc,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACH,MAAc,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAK,GAAG,KAAK;IAC9C,OAAO;QACH,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC;QAC9D,IAAI,EAAE,CAAC,IAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;QACtD,oBAAoB,EAAE,CAAC,IAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,KAAK,CAAC;QACtF,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;QAC5D,QAAQ,EAAE,CAAC,IAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;QAC9D,UAAU,EAAE,CAAC,IAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC;QAClE,SAAS,EAAE,CAAC,IAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;QAChE,WAAW,EAAE,CAAC,KAAK,EAAE,IAAK,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;KAC5E,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../src/client/ApiClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAe,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF,qBAAa,SAAS;IAGN,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAS;gBAEH,MAAM,EAAE,eAAe;IAerC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IASzF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAQxF,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ1F,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;YAQnE,OAAO;
|
|
1
|
+
{"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../src/client/ApiClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAe,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtF,qBAAa,SAAS;IAGN,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAS;gBAEH,MAAM,EAAE,eAAe;IAerC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IASzF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAQxF,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAQ1F,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;YAQnE,OAAO;IAiHrB,OAAO,CAAC,WAAW;YAYL,gBAAgB;IAuBxB,gBAAgB,CAAC,CAAC,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,cAAmB,EAC5B,OAAO,GAAE,MAAiC,GAC3C,OAAO,CAAC,CAAC,CAAC;CAgChB;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAElE"}
|
package/dist/client/ApiClient.js
CHANGED
|
@@ -93,19 +93,43 @@ export class ApiClient {
|
|
|
93
93
|
duration,
|
|
94
94
|
method: options.method
|
|
95
95
|
});
|
|
96
|
-
throw new Error(`
|
|
96
|
+
throw new Error(`Ocorreu um erro desconhecido. Tente atualizar a página ou entrar em contato com o suporte se o problema persistir.`);
|
|
97
97
|
}
|
|
98
98
|
// Handle response
|
|
99
99
|
let responseData;
|
|
100
|
-
|
|
101
|
-
|
|
100
|
+
const contentType = response.headers.get('content-type') || '';
|
|
101
|
+
const responseText = await response.text();
|
|
102
|
+
if (responseText) {
|
|
103
|
+
try {
|
|
104
|
+
responseData = JSON.parse(responseText);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
this.logger.error('Invalid JSON response from server', error, {
|
|
108
|
+
url,
|
|
109
|
+
status: response.status,
|
|
110
|
+
contentType
|
|
111
|
+
});
|
|
112
|
+
responseData = {
|
|
113
|
+
success: false,
|
|
114
|
+
error: {
|
|
115
|
+
message: 'Invalid JSON response from server'
|
|
116
|
+
},
|
|
117
|
+
status: response.status,
|
|
118
|
+
raw: responseText
|
|
119
|
+
};
|
|
120
|
+
}
|
|
102
121
|
}
|
|
103
|
-
|
|
104
|
-
|
|
122
|
+
else {
|
|
123
|
+
responseData = {
|
|
124
|
+
success: response.ok,
|
|
125
|
+
status: response.status
|
|
126
|
+
};
|
|
105
127
|
}
|
|
106
128
|
// Handle error responses
|
|
107
129
|
if (!response.ok) {
|
|
108
|
-
const errorMessage = responseData.error
|
|
130
|
+
const errorMessage = typeof responseData.error === 'string'
|
|
131
|
+
? responseData.error
|
|
132
|
+
: responseData.error?.message || `HTTP ${response.status}: ${response.statusText}`;
|
|
109
133
|
this.logger.warn('API request returned error', {
|
|
110
134
|
url,
|
|
111
135
|
status: response.status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiClient.js","sourceRoot":"","sources":["../../src/client/ApiClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ApiClient.js","sourceRoot":"","sources":["../../src/client/ApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwtDecoder.d.ts","sourceRoot":"","sources":["../../src/client/jwtDecoder.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"jwtDecoder.d.ts","sourceRoot":"","sources":["../../src/client/jwtDecoder.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAkC/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAStD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAiB9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAErF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAG5E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAiBjF"}
|
package/dist/client/stores.js
CHANGED
|
@@ -89,11 +89,11 @@ function createAuthStore() {
|
|
|
89
89
|
loading: false,
|
|
90
90
|
error: null
|
|
91
91
|
});
|
|
92
|
-
console.debug('Auth initialized from token', {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
});
|
|
92
|
+
// console.debug('Auth initialized from token', {
|
|
93
|
+
// userId: decoded.payload.userId,
|
|
94
|
+
// role: decoded.payload.role,
|
|
95
|
+
// permissionsCount: decoded.payload.permissions?.length || 0
|
|
96
|
+
// });
|
|
97
97
|
return true;
|
|
98
98
|
}
|
|
99
99
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../src/client/stores.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../src/client/stores.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Cookies } from '@sveltejs/kit';
|
|
2
|
+
export interface AuthCookieConfig {
|
|
3
|
+
/** Cookie name (default: 'auth_token') */
|
|
4
|
+
tokenKey?: string;
|
|
5
|
+
/** Function to resolve cookie domain from hostname */
|
|
6
|
+
resolveDomain: (hostname: string) => string | undefined;
|
|
7
|
+
/** Whether running in production (affects secure and sameSite) */
|
|
8
|
+
isProduction: boolean;
|
|
9
|
+
/** Optional override for secure flag */
|
|
10
|
+
secure?: boolean;
|
|
11
|
+
/** Optional override for sameSite attribute */
|
|
12
|
+
sameSite?: CookieOptions['sameSite'];
|
|
13
|
+
/** JWT expiration in seconds (for maxAge when setting cookies) */
|
|
14
|
+
maxAgeSeconds?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CookieOptions {
|
|
17
|
+
path: string;
|
|
18
|
+
domain: string | undefined;
|
|
19
|
+
httpOnly: boolean;
|
|
20
|
+
secure: boolean;
|
|
21
|
+
sameSite: 'strict' | 'lax' | 'none';
|
|
22
|
+
maxAge?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates the full set of cookie options for auth cookies.
|
|
26
|
+
* These options MUST be consistent between set and delete operations.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createAuthCookieOptions(domain: string | undefined, isProduction: boolean, maxAgeSeconds?: number, overrides?: {
|
|
29
|
+
secure?: boolean;
|
|
30
|
+
sameSite?: CookieOptions['sameSite'];
|
|
31
|
+
}): CookieOptions;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a cookie helper bound to a specific configuration.
|
|
34
|
+
* Use this in your hooks.server.ts or layout files.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createAuthCookieHelper(config: AuthCookieConfig): {
|
|
37
|
+
/**
|
|
38
|
+
* Get the auth token from cookies
|
|
39
|
+
*/
|
|
40
|
+
get(cookies: Cookies): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Delete the auth cookie with all options matching creation.
|
|
43
|
+
* CRITICAL: Options must match exactly or browser creates a new cookie!
|
|
44
|
+
*/
|
|
45
|
+
delete(cookies: Cookies, hostname: string): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get cookie options for deletion (useful when you need to pass options directly)
|
|
48
|
+
*/
|
|
49
|
+
getDeleteOptions(hostname: string): CookieOptions;
|
|
50
|
+
/**
|
|
51
|
+
* Get cookie options for the auth hook configuration
|
|
52
|
+
*/
|
|
53
|
+
getHookCookieOptions(): {
|
|
54
|
+
httpOnly: boolean;
|
|
55
|
+
secure: boolean;
|
|
56
|
+
sameSite: "strict" | "lax" | "none";
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Resolves cookie domain from hostname and configured domain.
|
|
61
|
+
* Ensures proper subdomain handling for cross-subdomain cookies.
|
|
62
|
+
*
|
|
63
|
+
* @param hostname - The current request hostname (e.g., 'app.agendapet.local')
|
|
64
|
+
* @param configured - The configured COOKIE_DOMAIN (e.g., '.agendapet.local')
|
|
65
|
+
* @returns The resolved domain or undefined for localhost
|
|
66
|
+
*/
|
|
67
|
+
export declare function resolveCookieDomain(hostname: string, configured?: string | null): string | undefined;
|
|
68
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cookies/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAM7C,MAAM,WAAW,gBAAgB;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,YAAY,EAAE,OAAO,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAAE,GACvE,aAAa,CAiBf;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB;IAIvD;;OAEG;iBACU,OAAO,GAAG,MAAM,GAAG,SAAS;IAIzC;;;OAGG;oBACa,OAAO,YAAY,MAAM,GAAG,IAAI;IAShD;;OAEG;+BACwB,MAAM,GAAG,aAAa;IAQjD;;OAEG;4BACqB;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE;EAQ1G;AAMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAwBpG"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// COOKIE UTILITIES
|
|
3
|
+
// ============================================================================
|
|
4
|
+
/**
|
|
5
|
+
* Creates the full set of cookie options for auth cookies.
|
|
6
|
+
* These options MUST be consistent between set and delete operations.
|
|
7
|
+
*/
|
|
8
|
+
export function createAuthCookieOptions(domain, isProduction, maxAgeSeconds, overrides) {
|
|
9
|
+
const secure = overrides?.secure ?? isProduction;
|
|
10
|
+
const sameSite = overrides?.sameSite ?? (isProduction ? 'strict' : 'lax');
|
|
11
|
+
const options = {
|
|
12
|
+
path: '/',
|
|
13
|
+
domain,
|
|
14
|
+
httpOnly: true,
|
|
15
|
+
secure,
|
|
16
|
+
sameSite
|
|
17
|
+
};
|
|
18
|
+
if (maxAgeSeconds !== undefined) {
|
|
19
|
+
options.maxAge = maxAgeSeconds;
|
|
20
|
+
}
|
|
21
|
+
return options;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Creates a cookie helper bound to a specific configuration.
|
|
25
|
+
* Use this in your hooks.server.ts or layout files.
|
|
26
|
+
*/
|
|
27
|
+
export function createAuthCookieHelper(config) {
|
|
28
|
+
const tokenKey = config.tokenKey || 'auth_token';
|
|
29
|
+
return {
|
|
30
|
+
/**
|
|
31
|
+
* Get the auth token from cookies
|
|
32
|
+
*/
|
|
33
|
+
get(cookies) {
|
|
34
|
+
return cookies.get(tokenKey);
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* Delete the auth cookie with all options matching creation.
|
|
38
|
+
* CRITICAL: Options must match exactly or browser creates a new cookie!
|
|
39
|
+
*/
|
|
40
|
+
delete(cookies, hostname) {
|
|
41
|
+
const domain = config.resolveDomain(hostname);
|
|
42
|
+
const options = createAuthCookieOptions(domain, config.isProduction, undefined, {
|
|
43
|
+
secure: config.secure,
|
|
44
|
+
sameSite: config.sameSite
|
|
45
|
+
});
|
|
46
|
+
cookies.delete(tokenKey, options);
|
|
47
|
+
},
|
|
48
|
+
/**
|
|
49
|
+
* Get cookie options for deletion (useful when you need to pass options directly)
|
|
50
|
+
*/
|
|
51
|
+
getDeleteOptions(hostname) {
|
|
52
|
+
const domain = config.resolveDomain(hostname);
|
|
53
|
+
return createAuthCookieOptions(domain, config.isProduction, undefined, {
|
|
54
|
+
secure: config.secure,
|
|
55
|
+
sameSite: config.sameSite
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
/**
|
|
59
|
+
* Get cookie options for the auth hook configuration
|
|
60
|
+
*/
|
|
61
|
+
getHookCookieOptions() {
|
|
62
|
+
return {
|
|
63
|
+
httpOnly: true,
|
|
64
|
+
secure: config.secure ?? config.isProduction,
|
|
65
|
+
sameSite: config.sameSite ?? (config.isProduction ? 'strict' : 'lax')
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// DOMAIN RESOLUTION UTILITY
|
|
72
|
+
// ============================================================================
|
|
73
|
+
/**
|
|
74
|
+
* Resolves cookie domain from hostname and configured domain.
|
|
75
|
+
* Ensures proper subdomain handling for cross-subdomain cookies.
|
|
76
|
+
*
|
|
77
|
+
* @param hostname - The current request hostname (e.g., 'app.agendapet.local')
|
|
78
|
+
* @param configured - The configured COOKIE_DOMAIN (e.g., '.agendapet.local')
|
|
79
|
+
* @returns The resolved domain or undefined for localhost
|
|
80
|
+
*/
|
|
81
|
+
export function resolveCookieDomain(hostname, configured) {
|
|
82
|
+
const trimmed = configured?.trim();
|
|
83
|
+
if (trimmed) {
|
|
84
|
+
const normalized = trimmed.startsWith('.') ? trimmed.slice(1) : trimmed;
|
|
85
|
+
if (hostname === normalized || hostname.endsWith(`.${normalized}`)) {
|
|
86
|
+
if (hostname === normalized) {
|
|
87
|
+
const parts = hostname.split('.');
|
|
88
|
+
if (parts.length > 2) {
|
|
89
|
+
return `.${parts.slice(1).join('.')}`;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return trimmed.startsWith('.') ? trimmed : `.${normalized}`;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const parts = hostname.split('.');
|
|
96
|
+
if (parts.length > 2) {
|
|
97
|
+
return `.${parts.slice(1).join('.')}`;
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cookies/index.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type Handle, type HandleServerError } from '@sveltejs/kit';
|
|
2
|
-
import type { ErrorHandlerConfig, LoggerHookConfig, AuthHookConfig } from '../types/index.js';
|
|
2
|
+
import type { ErrorHandlerConfig, LoggerHookConfig, AuthHookConfig, ProxyHookConfig } from '../types/index.js';
|
|
3
3
|
export declare function createErrorHandler(config?: ErrorHandlerConfig): HandleServerError;
|
|
4
4
|
export declare function createLoggerHook(config?: LoggerHookConfig): Handle;
|
|
5
5
|
export declare function createAuthHook(config?: AuthHookConfig): Handle;
|
|
6
|
+
export declare function createProxyHeadersHook(config?: ProxyHookConfig): Handle;
|
|
6
7
|
export declare function createSvelteKitHooks(config?: {
|
|
7
8
|
logger?: LoggerHookConfig;
|
|
8
9
|
auth?: AuthHookConfig;
|
|
10
|
+
proxy?: ProxyHookConfig;
|
|
9
11
|
errorHandler?: ErrorHandlerConfig;
|
|
10
12
|
}): {
|
|
11
13
|
hooks: Handle[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,MAAM,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAM/G,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,kBAAuB,GAAG,iBAAiB,CAyCrF;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,MAAM,CAuEtE;AAMD,wBAAgB,cAAc,CAAC,MAAM,GAAE,cAAmB,GAAG,MAAM,CAoIlE;AAMD,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,eAAoB,GAAG,MAAM,CAuC3E;AAMD,wBAAgB,oBAAoB,CAAC,MAAM,GAAE;IACzC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAChC;;;EAsBL"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createLogger } from '@groundbrick/logger';
|
|
2
|
-
import { redirect } from '@sveltejs/kit';
|
|
2
|
+
import { isRedirect, redirect } from '@sveltejs/kit';
|
|
3
3
|
// ============================================================================
|
|
4
4
|
// ERROR HANDLING HOOK
|
|
5
5
|
// ============================================================================
|
|
@@ -73,6 +73,14 @@ export function createLoggerHook(config = {}) {
|
|
|
73
73
|
}
|
|
74
74
|
catch (err) {
|
|
75
75
|
error = err;
|
|
76
|
+
if (isRedirect(error)) {
|
|
77
|
+
return new Response(null, {
|
|
78
|
+
status: error.status,
|
|
79
|
+
headers: {
|
|
80
|
+
Location: error.location
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
76
84
|
throw err; // Re-throw to let SvelteKit handle it
|
|
77
85
|
}
|
|
78
86
|
finally {
|
|
@@ -106,6 +114,21 @@ export function createAuthHook(config = {}) {
|
|
|
106
114
|
const redirectPath = config.redirectPath || '/login';
|
|
107
115
|
const tokenKey = config.tokenKey || 'auth_token';
|
|
108
116
|
const authenticatedRedirect = config.authenticatedRedirect || '/dashboard';
|
|
117
|
+
const cookieDomainConfig = config.cookieDomain;
|
|
118
|
+
const cookieOptions = config.cookieOptions || {};
|
|
119
|
+
// Helper to resolve cookie domain dynamically
|
|
120
|
+
const resolveCookieDomain = (hostname) => {
|
|
121
|
+
if (typeof cookieDomainConfig === 'function') {
|
|
122
|
+
return cookieDomainConfig(hostname);
|
|
123
|
+
}
|
|
124
|
+
return cookieDomainConfig;
|
|
125
|
+
};
|
|
126
|
+
// Helper to get full cookie delete options
|
|
127
|
+
const getCookieDeleteOptions = (hostname) => ({
|
|
128
|
+
path: '/',
|
|
129
|
+
domain: resolveCookieDomain(hostname),
|
|
130
|
+
...cookieOptions
|
|
131
|
+
});
|
|
109
132
|
return async ({ event, resolve }) => {
|
|
110
133
|
const { url, cookies } = event;
|
|
111
134
|
const token = cookies.get(tokenKey);
|
|
@@ -113,19 +136,22 @@ export function createAuthHook(config = {}) {
|
|
|
113
136
|
if (token && ['/login', '/register'].includes(url.pathname)) {
|
|
114
137
|
// Verify token is not expired before redirecting
|
|
115
138
|
try {
|
|
116
|
-
const payload =
|
|
139
|
+
const payload = decodeJwtPayload(token);
|
|
117
140
|
const now = Math.floor(Date.now() / 1000);
|
|
118
141
|
if (!payload.exp || payload.exp >= now) {
|
|
119
142
|
logger.debug('Authenticated user accessing login/register, redirecting to dashboard', {
|
|
120
143
|
path: url.pathname,
|
|
121
144
|
redirectTo: authenticatedRedirect
|
|
122
145
|
});
|
|
123
|
-
|
|
146
|
+
const redirectTo = typeof authenticatedRedirect === 'function'
|
|
147
|
+
? authenticatedRedirect(payload)
|
|
148
|
+
: authenticatedRedirect;
|
|
149
|
+
throw redirect(302, redirectTo);
|
|
124
150
|
}
|
|
125
151
|
}
|
|
126
152
|
catch (error) {
|
|
127
153
|
// If token is invalid, clear it and continue to login/register
|
|
128
|
-
cookies.delete(tokenKey,
|
|
154
|
+
cookies.delete(tokenKey, getCookieDeleteOptions(url.hostname));
|
|
129
155
|
}
|
|
130
156
|
}
|
|
131
157
|
// Check if current path is public
|
|
@@ -160,7 +186,7 @@ export function createAuthHook(config = {}) {
|
|
|
160
186
|
if (config.validateExpiration !== false) {
|
|
161
187
|
try {
|
|
162
188
|
// Decode JWT without verification (just to check expiration)
|
|
163
|
-
const payload =
|
|
189
|
+
const payload = decodeJwtPayload(token);
|
|
164
190
|
const now = Math.floor(Date.now() / 1000);
|
|
165
191
|
if (payload.exp && payload.exp < now) {
|
|
166
192
|
logger.debug('Token expired, clearing and redirecting', {
|
|
@@ -168,8 +194,8 @@ export function createAuthHook(config = {}) {
|
|
|
168
194
|
expiredAt: new Date(payload.exp * 1000).toISOString(),
|
|
169
195
|
redirectTo: redirectPath
|
|
170
196
|
});
|
|
171
|
-
// Clear expired token
|
|
172
|
-
cookies.delete(tokenKey,
|
|
197
|
+
// Clear expired token with full cookie options
|
|
198
|
+
cookies.delete(tokenKey, getCookieDeleteOptions(url.hostname));
|
|
173
199
|
if (config.onAuthRequired) {
|
|
174
200
|
config.onAuthRequired();
|
|
175
201
|
}
|
|
@@ -198,10 +224,49 @@ export function createAuthHook(config = {}) {
|
|
|
198
224
|
};
|
|
199
225
|
}
|
|
200
226
|
// ============================================================================
|
|
227
|
+
// PROXY / FORWARDED HEADER HOOK
|
|
228
|
+
// ============================================================================
|
|
229
|
+
export function createProxyHeadersHook(config = {}) {
|
|
230
|
+
const trustForwardedHeaders = config.trustForwardedHeaders !== false;
|
|
231
|
+
const forwardedHostHeader = config.forwardedHostHeader || 'x-forwarded-host';
|
|
232
|
+
const forwardedProtoHeader = config.forwardedProtoHeader || 'x-forwarded-proto';
|
|
233
|
+
const overrideOrigin = config.overrideOrigin !== false;
|
|
234
|
+
return async ({ event, resolve }) => {
|
|
235
|
+
if (!trustForwardedHeaders) {
|
|
236
|
+
return resolve(event);
|
|
237
|
+
}
|
|
238
|
+
const forwardedHost = event.request.headers.get(forwardedHostHeader);
|
|
239
|
+
const forwardedProto = event.request.headers.get(forwardedProtoHeader);
|
|
240
|
+
if (!forwardedHost && !forwardedProto) {
|
|
241
|
+
return resolve(event);
|
|
242
|
+
}
|
|
243
|
+
const headers = new Headers(event.request.headers);
|
|
244
|
+
if (forwardedHost) {
|
|
245
|
+
headers.set('host', forwardedHost);
|
|
246
|
+
}
|
|
247
|
+
if (forwardedProto) {
|
|
248
|
+
const protocol = forwardedProto.split(',')[0].trim();
|
|
249
|
+
headers.set(forwardedProtoHeader, protocol);
|
|
250
|
+
if (forwardedHost) {
|
|
251
|
+
const origin = `${protocol}://${forwardedHost}`;
|
|
252
|
+
if (overrideOrigin || !headers.get('origin')) {
|
|
253
|
+
headers.set('origin', origin);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
const newRequest = new Request(event.request, { headers });
|
|
258
|
+
return resolve({ ...event, request: newRequest });
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
// ============================================================================
|
|
201
262
|
// COMBINED HOOK HELPER
|
|
202
263
|
// ============================================================================
|
|
203
264
|
export function createSvelteKitHooks(config = {}) {
|
|
204
265
|
const hooks = [];
|
|
266
|
+
// Add proxy header hook first if configured
|
|
267
|
+
if (config.proxy) {
|
|
268
|
+
hooks.push(createProxyHeadersHook(config.proxy));
|
|
269
|
+
}
|
|
205
270
|
// Add logger hook if configured
|
|
206
271
|
if (config.logger !== null) {
|
|
207
272
|
hooks.push(createLoggerHook(config.logger));
|
|
@@ -218,4 +283,22 @@ export function createSvelteKitHooks(config = {}) {
|
|
|
218
283
|
function getUserDashboardPath() {
|
|
219
284
|
throw new Error('Function not implemented.');
|
|
220
285
|
}
|
|
286
|
+
function decodeJwtPayload(token) {
|
|
287
|
+
const payloadPart = token.split('.')[1];
|
|
288
|
+
if (!payloadPart) {
|
|
289
|
+
throw new Error('Invalid token format');
|
|
290
|
+
}
|
|
291
|
+
const normalized = payloadPart.replace(/-/g, '+').replace(/_/g, '/');
|
|
292
|
+
const padded = normalized + '='.repeat((4 - (normalized.length % 4)) % 4);
|
|
293
|
+
try {
|
|
294
|
+
if (typeof atob === 'function') {
|
|
295
|
+
return JSON.parse(atob(padded));
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
catch {
|
|
299
|
+
// Fallthrough to Buffer
|
|
300
|
+
}
|
|
301
|
+
const decoded = Buffer.from(padded, 'base64').toString('utf-8');
|
|
302
|
+
return JSON.parse(decoded);
|
|
303
|
+
}
|
|
221
304
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAuC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,iCAAiC;AACjC,cAAc,mBAAmB,CAAC;AAElC,gCAAgC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,6BAA6B;AAC7B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C,iCAAiC;AACjC,cAAc,mBAAmB,CAAC;AAElC,gCAAgC;AAChC,cAAc,kBAAkB,CAAC;AAEjC,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,6BAA6B;AAC7B,cAAc,sBAAsB,CAAC;AAErC,6BAA6B;AAC7B,cAAc,oBAAoB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,8 +8,14 @@ export interface ApiClientConfig {
|
|
|
8
8
|
export interface ApiResponse<T = unknown> {
|
|
9
9
|
success: boolean;
|
|
10
10
|
data?: T;
|
|
11
|
-
error?: string;
|
|
11
|
+
error?: string | ApiError;
|
|
12
12
|
message?: string;
|
|
13
|
+
status?: number;
|
|
14
|
+
raw?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ApiError {
|
|
17
|
+
message: string;
|
|
18
|
+
[key: string]: unknown;
|
|
13
19
|
}
|
|
14
20
|
export interface AuthResponse {
|
|
15
21
|
user: Record<string, unknown>;
|
|
@@ -42,10 +48,26 @@ export interface LoggerHookConfig {
|
|
|
42
48
|
export interface AuthHookConfig {
|
|
43
49
|
tokenKey?: string;
|
|
44
50
|
redirectPath?: string;
|
|
45
|
-
authenticatedRedirect?: string;
|
|
51
|
+
authenticatedRedirect?: string | ((payload: Record<string, unknown>) => string);
|
|
46
52
|
publicPaths?: string[];
|
|
47
53
|
onAuthRequired?: () => void;
|
|
48
54
|
validateExpiration?: boolean;
|
|
55
|
+
cookieDomain?: string | ((hostname: string) => string | undefined);
|
|
56
|
+
/**
|
|
57
|
+
* Cookie options for deletion - must match how the cookie was created.
|
|
58
|
+
* If not provided, only path and domain will be used.
|
|
59
|
+
*/
|
|
60
|
+
cookieOptions?: {
|
|
61
|
+
httpOnly?: boolean;
|
|
62
|
+
secure?: boolean;
|
|
63
|
+
sameSite?: 'strict' | 'lax' | 'none';
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export interface ProxyHookConfig {
|
|
67
|
+
trustForwardedHeaders?: boolean;
|
|
68
|
+
forwardedHostHeader?: string;
|
|
69
|
+
forwardedProtoHeader?: string;
|
|
70
|
+
overrideOrigin?: boolean;
|
|
49
71
|
}
|
|
50
72
|
export interface AuthStore {
|
|
51
73
|
isAuthenticated: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED