@groundbrick/sveltekit-adapter 0.1.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.
Files changed (96) hide show
  1. package/README.md +554 -0
  2. package/dist/analytics/components/GoogleAnalytics.svelte +96 -0
  3. package/dist/analytics/config/analytics.config.d.ts +6 -0
  4. package/dist/analytics/config/analytics.config.d.ts.map +1 -0
  5. package/dist/analytics/config/analytics.config.js +27 -0
  6. package/dist/analytics/config/analytics.config.js.map +1 -0
  7. package/dist/analytics/index.d.ts +7 -0
  8. package/dist/analytics/index.d.ts.map +1 -0
  9. package/dist/analytics/index.js +9 -0
  10. package/dist/analytics/index.js.map +1 -0
  11. package/dist/analytics/interfaces/IAnalyticsService.d.ts +40 -0
  12. package/dist/analytics/interfaces/IAnalyticsService.d.ts.map +1 -0
  13. package/dist/analytics/interfaces/IAnalyticsService.js +2 -0
  14. package/dist/analytics/interfaces/IAnalyticsService.js.map +1 -0
  15. package/dist/analytics/services/AnalyticsService.d.ts +37 -0
  16. package/dist/analytics/services/AnalyticsService.d.ts.map +1 -0
  17. package/dist/analytics/services/AnalyticsService.js +261 -0
  18. package/dist/analytics/services/AnalyticsService.js.map +1 -0
  19. package/dist/analytics/utils/consent.d.ts +52 -0
  20. package/dist/analytics/utils/consent.d.ts.map +1 -0
  21. package/dist/analytics/utils/consent.js +138 -0
  22. package/dist/analytics/utils/consent.js.map +1 -0
  23. package/dist/auth/index.d.ts +10 -0
  24. package/dist/auth/index.d.ts.map +1 -0
  25. package/dist/auth/index.js +49 -0
  26. package/dist/auth/index.js.map +1 -0
  27. package/dist/client/ApiClient.d.ts +17 -0
  28. package/dist/client/ApiClient.d.ts.map +1 -0
  29. package/dist/client/ApiClient.js +184 -0
  30. package/dist/client/ApiClient.js.map +1 -0
  31. package/dist/client/NotificationComponent.d.ts +7 -0
  32. package/dist/client/NotificationComponent.d.ts.map +1 -0
  33. package/dist/client/NotificationComponent.js +131 -0
  34. package/dist/client/NotificationComponent.js.map +1 -0
  35. package/dist/client/apiWrapper.d.ts +324 -0
  36. package/dist/client/apiWrapper.d.ts.map +1 -0
  37. package/dist/client/apiWrapper.js +257 -0
  38. package/dist/client/apiWrapper.js.map +1 -0
  39. package/dist/client/authErrorHandler.d.ts +19 -0
  40. package/dist/client/authErrorHandler.d.ts.map +1 -0
  41. package/dist/client/authErrorHandler.js +40 -0
  42. package/dist/client/authErrorHandler.js.map +1 -0
  43. package/dist/client/hooks.d.ts +11 -0
  44. package/dist/client/hooks.d.ts.map +1 -0
  45. package/dist/client/hooks.js +28 -0
  46. package/dist/client/hooks.js.map +1 -0
  47. package/dist/client/index.d.ts +8 -0
  48. package/dist/client/index.d.ts.map +1 -0
  49. package/dist/client/index.js +13 -0
  50. package/dist/client/index.js.map +1 -0
  51. package/dist/client/jwtDecoder.d.ts +56 -0
  52. package/dist/client/jwtDecoder.d.ts.map +1 -0
  53. package/dist/client/jwtDecoder.js +114 -0
  54. package/dist/client/jwtDecoder.js.map +1 -0
  55. package/dist/client/notifications.d.ts +55 -0
  56. package/dist/client/notifications.d.ts.map +1 -0
  57. package/dist/client/notifications.js +160 -0
  58. package/dist/client/notifications.js.map +1 -0
  59. package/dist/client/stores.d.ts +26 -0
  60. package/dist/client/stores.d.ts.map +1 -0
  61. package/dist/client/stores.js +196 -0
  62. package/dist/client/stores.js.map +1 -0
  63. package/dist/consent/components/CookieConsent.svelte +580 -0
  64. package/dist/consent/config/consent.config.d.ts +7 -0
  65. package/dist/consent/config/consent.config.d.ts.map +1 -0
  66. package/dist/consent/config/consent.config.js +194 -0
  67. package/dist/consent/config/consent.config.js.map +1 -0
  68. package/dist/consent/index.d.ts +5 -0
  69. package/dist/consent/index.d.ts.map +1 -0
  70. package/dist/consent/index.js +7 -0
  71. package/dist/consent/index.js.map +1 -0
  72. package/dist/consent/interfaces/IConsentService.d.ts +121 -0
  73. package/dist/consent/interfaces/IConsentService.d.ts.map +1 -0
  74. package/dist/consent/interfaces/IConsentService.js +2 -0
  75. package/dist/consent/interfaces/IConsentService.js.map +1 -0
  76. package/dist/consent/services/ConsentService.d.ts +39 -0
  77. package/dist/consent/services/ConsentService.d.ts.map +1 -0
  78. package/dist/consent/services/ConsentService.js +302 -0
  79. package/dist/consent/services/ConsentService.js.map +1 -0
  80. package/dist/consent/utils/analytics.d.ts +52 -0
  81. package/dist/consent/utils/analytics.d.ts.map +1 -0
  82. package/dist/consent/utils/analytics.js +181 -0
  83. package/dist/consent/utils/analytics.js.map +1 -0
  84. package/dist/hooks/index.d.ts +14 -0
  85. package/dist/hooks/index.d.ts.map +1 -0
  86. package/dist/hooks/index.js +218 -0
  87. package/dist/hooks/index.js.map +1 -0
  88. package/dist/index.d.ts +5 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/index.js +10 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/types/index.d.ts +88 -0
  93. package/dist/types/index.d.ts.map +1 -0
  94. package/dist/types/index.js +2 -0
  95. package/dist/types/index.js.map +1 -0
  96. package/package.json +87 -0
@@ -0,0 +1,194 @@
1
+ export const DEFAULT_CONSENT_CONFIG = {
2
+ version: '2.0', // Updated for Consent Mode v2
3
+ storageKey: 'cookie-consent',
4
+ // Cookie categories mapped to Google Consent Mode v2 parameters
5
+ categories: {
6
+ functional: {
7
+ required: true,
8
+ name: 'Cookies funcionais (Essenciais)',
9
+ description: 'Necessários para o funcionamento básico do site. Sempre ativos.',
10
+ defaultValue: true,
11
+ // No mapping to gtag - functional cookies don't require consent
12
+ gtagMapping: null
13
+ },
14
+ analytics: {
15
+ required: false,
16
+ name: 'Cookies de análise',
17
+ description: 'Ajudam-nos a entender como utiliza o nosso site.',
18
+ defaultValue: true,
19
+ // Maps to analytics_storage in Google Consent Mode v2
20
+ gtagMapping: 'analytics_storage'
21
+ },
22
+ marketing: {
23
+ required: false,
24
+ name: 'Cookies de Marketing & Publicidade',
25
+ description: 'Utilizados para anúncios personalizados e remarketing.',
26
+ defaultValue: true,
27
+ // Maps to ad_storage, ad_user_data, and ad_personalization in Consent Mode v2
28
+ gtagMapping: ['ad_storage', 'ad_user_data', 'ad_personalization']
29
+ },
30
+ preferences: {
31
+ required: false,
32
+ name: 'Cookies de Preferências',
33
+ description: 'Lembrar as suas definições e preferências.',
34
+ defaultValue: true,
35
+ // Custom category - no direct gtag mapping
36
+ gtagMapping: null
37
+ }
38
+ },
39
+ // Banner configuration
40
+ banner: {
41
+ title: '🍪 We use cookies',
42
+ message: 'We use cookies to improve your experience and analyze our website traffic. Choose which types of cookies to accept to help us comply with privacy regulations.',
43
+ acceptAllText: 'Accept all',
44
+ rejectAllText: 'Reject all',
45
+ customizeText: 'Manage preferences',
46
+ savePreferencesText: 'Save preferences',
47
+ // New Consent Mode v2 specific messaging
48
+ consentModeNotice: 'Your choices help us comply with Google\'s updated consent requirements.'
49
+ },
50
+ // Compliance settings for Consent Mode v2
51
+ compliance: {
52
+ // Block scripts until consent (required for Consent Mode v2)
53
+ blockByDefault: true,
54
+ // Show detailed preferences by default
55
+ showPreferences: false,
56
+ // Require explicit consent (no pre-checked boxes)
57
+ requireExplicitConsent: true,
58
+ // Automatically show banner on first visit
59
+ autoShow: true,
60
+ // Wait time for consent updates (milliseconds)
61
+ waitForUpdate: 2000,
62
+ // Enable URL passthrough for better measurement without cookies
63
+ enableUrlPassthrough: true,
64
+ // Redact ads data when ad consent is denied
65
+ enableAdsDataRedaction: true
66
+ },
67
+ // Google Consent Mode v2 specific settings
68
+ consentMode: {
69
+ // Enable Google Consent Mode v2
70
+ enabled: true,
71
+ // Default consent states (all denied by default for compliance)
72
+ defaults: {
73
+ ad_storage: 'denied',
74
+ analytics_storage: 'denied',
75
+ ad_user_data: 'denied',
76
+ ad_personalization: 'denied'
77
+ },
78
+ // Region-specific settings
79
+ regions: {
80
+ // EU/EEA requires explicit consent
81
+ 'EU': {
82
+ ad_storage: 'denied',
83
+ analytics_storage: 'denied',
84
+ ad_user_data: 'denied',
85
+ ad_personalization: 'denied'
86
+ },
87
+ // California (CCPA) - different requirements
88
+ 'US-CA': {
89
+ ad_storage: 'granted',
90
+ analytics_storage: 'granted',
91
+ ad_user_data: 'denied',
92
+ ad_personalization: 'denied'
93
+ }
94
+ }
95
+ }
96
+ };
97
+ // GDPR-compliant configuration for EU/EEA
98
+ export const GDPR_CONFIG = {
99
+ version: '2.0',
100
+ compliance: {
101
+ blockByDefault: true,
102
+ requireExplicitConsent: true,
103
+ autoShow: true,
104
+ showPreferences: false,
105
+ waitForUpdate: 2000,
106
+ enableUrlPassthrough: true,
107
+ enableAdsDataRedaction: true
108
+ },
109
+ banner: {
110
+ title: 'Aceitas cookies?',
111
+ message: 'Usamos cookies e tecnologias semelhantes para que os nossos serviços funcionem melhor, sejam mais seguros e fáceis de usar. Ao clicar em "Aceitar todos", está a concordar com a utilização desses cookies. Pode gerir as suas preferências para escolher quais quer permitir.',
112
+ acceptAllText: 'Aceitar todos',
113
+ rejectAllText: 'Recusar os essenciais',
114
+ customizeText: 'Gerir preferências',
115
+ consentModeNotice: 'Isto ajuda-nos a cumprir as regulamentações de privacidade da UE e os requisitos de consentimento do Google.',
116
+ savePreferencesText: 'Guardar preferências'
117
+ },
118
+ consentMode: {
119
+ enabled: true,
120
+ defaults: {
121
+ ad_storage: 'denied',
122
+ analytics_storage: 'denied',
123
+ ad_user_data: 'denied',
124
+ ad_personalization: 'denied'
125
+ }
126
+ }
127
+ };
128
+ // CCPA-compliant configuration for California
129
+ export const CCPA_CONFIG = {
130
+ version: '2.0',
131
+ compliance: {
132
+ blockByDefault: false,
133
+ requireExplicitConsent: false,
134
+ autoShow: true,
135
+ showPreferences: true,
136
+ waitForUpdate: 1000,
137
+ enableUrlPassthrough: false,
138
+ enableAdsDataRedaction: false
139
+ },
140
+ banner: {
141
+ title: 'Your Privacy Choices',
142
+ message: 'We and our partners use cookies and similar technologies. You have choices about how we use this data. California residents have additional rights under CCPA.',
143
+ acceptAllText: 'Allow all',
144
+ rejectAllText: 'Do not sell my info',
145
+ customizeText: 'Privacy settings',
146
+ consentModeNotice: 'Your choices are processed according to California privacy laws.',
147
+ savePreferencesText: 'Save preferences'
148
+ },
149
+ consentMode: {
150
+ enabled: true,
151
+ defaults: {
152
+ ad_storage: 'granted',
153
+ analytics_storage: 'granted',
154
+ ad_user_data: 'denied',
155
+ ad_personalization: 'denied'
156
+ }
157
+ }
158
+ };
159
+ // Generic configuration for other regions
160
+ export const GENERIC_CONFIG = {
161
+ version: '2.0',
162
+ compliance: {
163
+ blockByDefault: false,
164
+ requireExplicitConsent: false,
165
+ autoShow: true,
166
+ showPreferences: false,
167
+ waitForUpdate: 500,
168
+ enableUrlPassthrough: false,
169
+ enableAdsDataRedaction: false
170
+ },
171
+ consentMode: {
172
+ enabled: true,
173
+ defaults: {
174
+ ad_storage: 'granted',
175
+ analytics_storage: 'granted',
176
+ ad_user_data: 'granted',
177
+ ad_personalization: 'granted'
178
+ }
179
+ }
180
+ };
181
+ // Helper function to get region-appropriate config
182
+ export function getRegionConfig(region) {
183
+ const euRegions = ['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'IS', 'LI', 'NO'];
184
+ if (!region)
185
+ return GENERIC_CONFIG;
186
+ if (euRegions.includes(region) || region === 'EU') {
187
+ return GDPR_CONFIG;
188
+ }
189
+ if (region === 'US-CA') {
190
+ return CCPA_CONFIG;
191
+ }
192
+ return GENERIC_CONFIG;
193
+ }
194
+ //# sourceMappingURL=consent.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.config.js","sourceRoot":"","sources":["../../../src/consent/config/consent.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { ConsentService } from './services/ConsentService.js';
2
+ export type { ConsentState, ConsentPreferences, ConsentCategory, ConsentConfig, IConsentService } from './interfaces/IConsentService.js';
3
+ export { DEFAULT_CONSENT_CONFIG, GDPR_CONFIG, CCPA_CONFIG, GENERIC_CONFIG } from './config/consent.config.js';
4
+ export { default as CookieConsent } from './components/CookieConsent.svelte';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,YAAY,EACR,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,EAClB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACH,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,cAAc,EACjB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Main service
2
+ export { ConsentService } from './services/ConsentService.js';
3
+ // Configuration presets
4
+ export { DEFAULT_CONSENT_CONFIG, GDPR_CONFIG, CCPA_CONFIG, GENERIC_CONFIG } from './config/consent.config.js';
5
+ // Svelte component (needs special handling for .svelte files)
6
+ export { default as CookieConsent } from './components/CookieConsent.svelte';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consent/index.ts"],"names":[],"mappings":"AACA,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAW9D,wBAAwB;AACxB,OAAO,EACH,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,cAAc,EACjB,MAAM,4BAA4B,CAAC;AAEpC,8DAA8D;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,121 @@
1
+ export type ConsentValue = 'granted' | 'denied';
2
+ export interface ConsentModeParams {
3
+ ad_storage: ConsentValue;
4
+ analytics_storage: ConsentValue;
5
+ ad_user_data: ConsentValue;
6
+ ad_personalization: ConsentValue;
7
+ }
8
+ export interface ConsentModeRegion extends ConsentModeParams {
9
+ region?: string | string[];
10
+ }
11
+ export interface ConsentState {
12
+ analytics: boolean | null;
13
+ marketing: boolean | null;
14
+ functional: boolean | null;
15
+ preferences: boolean | null;
16
+ timestamp: number;
17
+ version: string;
18
+ }
19
+ export interface ConsentPreferences {
20
+ analytics: boolean;
21
+ marketing: boolean;
22
+ functional: boolean;
23
+ preferences: boolean;
24
+ }
25
+ export interface ConsentCategory {
26
+ required: boolean;
27
+ name: string;
28
+ description: string;
29
+ defaultValue: boolean;
30
+ gtagMapping: keyof ConsentModeParams | (keyof ConsentModeParams)[] | null;
31
+ }
32
+ export interface BannerConfig {
33
+ title: string;
34
+ message: string;
35
+ acceptAllText: string;
36
+ rejectAllText: string;
37
+ customizeText: string;
38
+ savePreferencesText: string;
39
+ consentModeNotice?: string;
40
+ }
41
+ export interface ComplianceConfig {
42
+ blockByDefault: boolean;
43
+ showPreferences: boolean;
44
+ requireExplicitConsent: boolean;
45
+ autoShow: boolean;
46
+ waitForUpdate?: number;
47
+ enableUrlPassthrough?: boolean;
48
+ enableAdsDataRedaction?: boolean;
49
+ }
50
+ export interface ConsentModeConfig {
51
+ enabled: boolean;
52
+ defaults: ConsentModeParams;
53
+ regions?: Record<string, ConsentModeParams>;
54
+ }
55
+ export interface ConsentConfig {
56
+ version: string;
57
+ storageKey: string;
58
+ categories: Record<string, ConsentCategory>;
59
+ banner: BannerConfig;
60
+ compliance: ComplianceConfig;
61
+ consentMode?: ConsentModeConfig;
62
+ }
63
+ export type ConsentChangeEvent = (state: ConsentState) => void;
64
+ export interface IConsentService {
65
+ initialize(config?: Partial<ConsentConfig>): IConsentService;
66
+ getConsentState(): ConsentState | null;
67
+ setConsent(preferences: ConsentPreferences): Promise<void>;
68
+ hasConsent(type: keyof ConsentPreferences): boolean;
69
+ getConsentModeParams(): ConsentModeParams;
70
+ updateGtagConsent(params: Partial<ConsentModeParams>): void;
71
+ setDefaultConsent(params: ConsentModeParams, region?: string | string[]): void;
72
+ isConsentRequired(): boolean;
73
+ clearConsent(): void;
74
+ acceptAll(): Promise<void>;
75
+ rejectAll(): Promise<void>;
76
+ onConsentChange(callback: ConsentChangeEvent): () => void;
77
+ updateConfig(config: Partial<ConsentConfig>): void;
78
+ getConfig(): ConsentConfig;
79
+ setRegion(region: string): void;
80
+ getRegion(): string | null;
81
+ }
82
+ export interface CookieConsentProps {
83
+ config?: Partial<ConsentConfig>;
84
+ onConsentChange?: ConsentChangeEvent;
85
+ position?: 'top' | 'bottom';
86
+ theme?: 'light' | 'dark' | 'auto';
87
+ className?: string;
88
+ autoDetectRegion?: boolean;
89
+ }
90
+ export interface AnalyticsConsentConfig {
91
+ gaId?: string;
92
+ enableDebug?: boolean;
93
+ anonymizeIp?: boolean;
94
+ cookieFlags?: string;
95
+ enableUrlPassthrough?: boolean;
96
+ enableAdsDataRedaction?: boolean;
97
+ waitForUpdate?: number;
98
+ }
99
+ export interface ConsentStorage {
100
+ get(key: string): ConsentState | null;
101
+ set(key: string, value: ConsentState): void;
102
+ remove(key: string): void;
103
+ clear(): void;
104
+ }
105
+ export interface ConsentValidationResult {
106
+ isValid: boolean;
107
+ errors: string[];
108
+ warnings: string[];
109
+ }
110
+ export type ConsentCategoryKey = keyof ConsentPreferences;
111
+ export type RequiredConsentCategories = {
112
+ [K in ConsentCategoryKey]: ConsentCategory & {
113
+ required: true;
114
+ };
115
+ };
116
+ export type OptionalConsentCategories = {
117
+ [K in ConsentCategoryKey]: ConsentCategory & {
118
+ required: false;
119
+ };
120
+ };
121
+ //# sourceMappingURL=IConsentService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IConsentService.d.ts","sourceRoot":"","sources":["../../../src/consent/interfaces/IConsentService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IConsentService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IConsentService.js","sourceRoot":"","sources":["../../../src/consent/interfaces/IConsentService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import type { IConsentService, ConsentConfig, ConsentState, ConsentPreferences, ConsentChangeEvent, ConsentModeParams } from '../interfaces/IConsentService.js';
2
+ declare global {
3
+ interface Window {
4
+ dataLayer: any[];
5
+ gtag: (...args: any[]) => void;
6
+ }
7
+ }
8
+ export declare class ConsentService implements IConsentService {
9
+ private static instance;
10
+ private config;
11
+ private storage;
12
+ private listeners;
13
+ private currentRegion;
14
+ private constructor();
15
+ static getInstance(config?: Partial<ConsentConfig>): ConsentService;
16
+ initialize(config?: Partial<ConsentConfig>): ConsentService;
17
+ private mergeConfig;
18
+ private detectRegion;
19
+ private initializeConsentMode;
20
+ private getDefaultConsentParams;
21
+ private mapInternalToGtagConsent;
22
+ getConsentState(): ConsentState | null;
23
+ setConsent(preferences: ConsentPreferences): Promise<void>;
24
+ hasConsent(type: keyof ConsentPreferences): boolean;
25
+ getConsentModeParams(): ConsentModeParams;
26
+ updateGtagConsent(params: Partial<ConsentModeParams>): void;
27
+ setDefaultConsent(params: ConsentModeParams, region?: string | string[]): void;
28
+ isConsentRequired(): boolean;
29
+ clearConsent(): void;
30
+ acceptAll(): Promise<void>;
31
+ rejectAll(): Promise<void>;
32
+ onConsentChange(callback: ConsentChangeEvent): () => void;
33
+ updateConfig(config: Partial<ConsentConfig>): void;
34
+ getConfig(): ConsentConfig;
35
+ setRegion(region: string): void;
36
+ getRegion(): string | null;
37
+ private notifyListeners;
38
+ }
39
+ //# sourceMappingURL=ConsentService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentService.d.ts","sourceRoot":"","sources":["../../../src/consent/services/ConsentService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,eAAe,EACf,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAEpB,MAAM,kCAAkC,CAAC;AAgD1C,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,EAAE,GAAG,EAAE,CAAC;QACjB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KAClC;CACJ;AAED,qBAAa,cAAe,YAAW,eAAe;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO;IAOP,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc;IASnE,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,cAAc;IAO3D,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,wBAAwB;IAwBhC,eAAe,IAAI,YAAY,GAAG,IAAI;IAIhC,UAAU,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhE,UAAU,CAAC,IAAI,EAAE,MAAM,kBAAkB,GAAG,OAAO;IAMnD,oBAAoB,IAAI,iBAAiB;IAKzC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAO3D,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAiB9E,iBAAiB,IAAI,OAAO;IAK5B,YAAY,IAAI,IAAI;IAYd,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAU1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAUhC,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAYzD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IASlD,SAAS,IAAI,aAAa;IAK1B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM/B,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,OAAO,CAAC,eAAe;CAS1B"}