@ucptools/validator 1.0.1 → 1.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 (152) hide show
  1. package/dist/auth/config.d.ts +20 -0
  2. package/dist/auth/config.d.ts.map +1 -0
  3. package/dist/auth/config.js +114 -0
  4. package/dist/auth/config.js.map +1 -0
  5. package/dist/auth/index.d.ts +5 -0
  6. package/dist/auth/index.d.ts.map +1 -0
  7. package/dist/auth/index.js +17 -0
  8. package/dist/auth/index.js.map +1 -0
  9. package/dist/auth/middleware.d.ts +45 -0
  10. package/dist/auth/middleware.d.ts.map +1 -0
  11. package/dist/auth/middleware.js +170 -0
  12. package/dist/auth/middleware.js.map +1 -0
  13. package/dist/auth/service.d.ts +80 -0
  14. package/dist/auth/service.d.ts.map +1 -0
  15. package/dist/auth/service.js +298 -0
  16. package/dist/auth/service.js.map +1 -0
  17. package/dist/cli/index.js +96 -0
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/mock-server.d.ts +20 -0
  20. package/dist/cli/mock-server.d.ts.map +1 -0
  21. package/dist/cli/mock-server.js +261 -0
  22. package/dist/cli/mock-server.js.map +1 -0
  23. package/dist/db/index.d.ts +8 -2
  24. package/dist/db/index.d.ts.map +1 -1
  25. package/dist/db/index.js +22 -5
  26. package/dist/db/index.js.map +1 -1
  27. package/dist/db/schema.d.ts +3570 -128
  28. package/dist/db/schema.d.ts.map +1 -1
  29. package/dist/db/schema.js +377 -17
  30. package/dist/db/schema.js.map +1 -1
  31. package/dist/db/utils.d.ts +252 -0
  32. package/dist/db/utils.d.ts.map +1 -0
  33. package/dist/db/utils.js +295 -0
  34. package/dist/db/utils.js.map +1 -0
  35. package/dist/feed-analyzer/feed-analyzer.d.ts.map +1 -1
  36. package/dist/feed-analyzer/feed-analyzer.js +218 -4
  37. package/dist/feed-analyzer/feed-analyzer.js.map +1 -1
  38. package/dist/feed-analyzer/types.d.ts +82 -1
  39. package/dist/feed-analyzer/types.d.ts.map +1 -1
  40. package/dist/feed-analyzer/types.js +13 -0
  41. package/dist/feed-analyzer/types.js.map +1 -1
  42. package/dist/lib/analytics.d.ts +337 -0
  43. package/dist/lib/analytics.d.ts.map +1 -0
  44. package/dist/lib/analytics.js +188 -0
  45. package/dist/lib/analytics.js.map +1 -0
  46. package/dist/security/security-scanner.d.ts.map +1 -1
  47. package/dist/security/security-scanner.js +130 -2
  48. package/dist/security/security-scanner.js.map +1 -1
  49. package/dist/security/types.d.ts +32 -0
  50. package/dist/security/types.d.ts.map +1 -1
  51. package/dist/security/types.js.map +1 -1
  52. package/dist/services/analytics.d.ts +114 -0
  53. package/dist/services/analytics.d.ts.map +1 -0
  54. package/dist/services/analytics.js +862 -0
  55. package/dist/services/analytics.js.map +1 -0
  56. package/dist/services/badge.d.ts +31 -0
  57. package/dist/services/badge.d.ts.map +1 -0
  58. package/dist/services/badge.js +152 -0
  59. package/dist/services/badge.js.map +1 -0
  60. package/dist/services/cron.d.ts +125 -0
  61. package/dist/services/cron.d.ts.map +1 -0
  62. package/dist/services/cron.js +613 -0
  63. package/dist/services/cron.js.map +1 -0
  64. package/dist/services/directory.d.ts +2 -0
  65. package/dist/services/directory.d.ts.map +1 -1
  66. package/dist/services/directory.js +45 -27
  67. package/dist/services/directory.js.map +1 -1
  68. package/dist/services/email.d.ts +112 -0
  69. package/dist/services/email.d.ts.map +1 -0
  70. package/dist/services/email.js +772 -0
  71. package/dist/services/email.js.map +1 -0
  72. package/dist/services/hosted-profiles.d.ts +77 -0
  73. package/dist/services/hosted-profiles.d.ts.map +1 -0
  74. package/dist/services/hosted-profiles.js +433 -0
  75. package/dist/services/hosted-profiles.js.map +1 -0
  76. package/dist/services/latency.d.ts +67 -0
  77. package/dist/services/latency.d.ts.map +1 -0
  78. package/dist/services/latency.js +274 -0
  79. package/dist/services/latency.js.map +1 -0
  80. package/dist/services/manifest-compliance.d.ts +64 -0
  81. package/dist/services/manifest-compliance.d.ts.map +1 -0
  82. package/dist/services/manifest-compliance.js +271 -0
  83. package/dist/services/manifest-compliance.js.map +1 -0
  84. package/dist/services/monitoring-diff.d.ts +31 -0
  85. package/dist/services/monitoring-diff.d.ts.map +1 -0
  86. package/dist/services/monitoring-diff.js +189 -0
  87. package/dist/services/monitoring-diff.js.map +1 -0
  88. package/dist/services/notifications.d.ts +46 -0
  89. package/dist/services/notifications.d.ts.map +1 -0
  90. package/dist/services/notifications.js +88 -0
  91. package/dist/services/notifications.js.map +1 -0
  92. package/dist/services/stripe.d.ts +93 -0
  93. package/dist/services/stripe.d.ts.map +1 -0
  94. package/dist/services/stripe.js +490 -0
  95. package/dist/services/stripe.js.map +1 -0
  96. package/dist/services/validation-history.d.ts +99 -0
  97. package/dist/services/validation-history.d.ts.map +1 -0
  98. package/dist/services/validation-history.js +344 -0
  99. package/dist/services/validation-history.js.map +1 -0
  100. package/dist/services/validation-logging.d.ts +103 -0
  101. package/dist/services/validation-logging.d.ts.map +1 -0
  102. package/dist/services/validation-logging.js +210 -0
  103. package/dist/services/validation-logging.js.map +1 -0
  104. package/dist/services/validation.d.ts +119 -0
  105. package/dist/services/validation.d.ts.map +1 -0
  106. package/dist/services/validation.js +1185 -0
  107. package/dist/services/validation.js.map +1 -0
  108. package/dist/simulator/agent-simulator.d.ts.map +1 -1
  109. package/dist/simulator/agent-simulator.js +229 -9
  110. package/dist/simulator/agent-simulator.js.map +1 -1
  111. package/dist/simulator/types.d.ts +26 -0
  112. package/dist/simulator/types.d.ts.map +1 -1
  113. package/dist/simulator/types.js.map +1 -1
  114. package/dist/types/acp-validation.d.ts +87 -0
  115. package/dist/types/acp-validation.d.ts.map +1 -0
  116. package/dist/types/acp-validation.js +40 -0
  117. package/dist/types/acp-validation.js.map +1 -0
  118. package/dist/types/analytics.d.ts +182 -0
  119. package/dist/types/analytics.d.ts.map +1 -0
  120. package/dist/types/analytics.js +7 -0
  121. package/dist/types/analytics.js.map +1 -0
  122. package/dist/types/ucp-profile.d.ts +10 -2
  123. package/dist/types/ucp-profile.d.ts.map +1 -1
  124. package/dist/types/ucp-profile.js.map +1 -1
  125. package/dist/types/validation.d.ts +8 -0
  126. package/dist/types/validation.d.ts.map +1 -1
  127. package/dist/types/validation.js +10 -0
  128. package/dist/types/validation.js.map +1 -1
  129. package/dist/validator/acp/index.d.ts +31 -0
  130. package/dist/validator/acp/index.d.ts.map +1 -0
  131. package/dist/validator/acp/index.js +574 -0
  132. package/dist/validator/acp/index.js.map +1 -0
  133. package/dist/validator/network-validator.d.ts.map +1 -1
  134. package/dist/validator/network-validator.js +4 -4
  135. package/dist/validator/network-validator.js.map +1 -1
  136. package/dist/validator/rules-validator.d.ts +8 -0
  137. package/dist/validator/rules-validator.d.ts.map +1 -1
  138. package/dist/validator/rules-validator.js +92 -43
  139. package/dist/validator/rules-validator.js.map +1 -1
  140. package/dist/validator/structural-validator.d.ts.map +1 -1
  141. package/dist/validator/structural-validator.js +187 -53
  142. package/dist/validator/structural-validator.js.map +1 -1
  143. package/dist/validator/utils.d.ts +51 -0
  144. package/dist/validator/utils.d.ts.map +1 -0
  145. package/dist/validator/utils.js +132 -0
  146. package/dist/validator/utils.js.map +1 -0
  147. package/package.json +44 -12
  148. package/.claude/settings.local.json +0 -60
  149. package/.vercel/README.txt +0 -11
  150. package/.vercel/project.json +0 -1
  151. package/publish-output.txt +0 -0
  152. package/tsconfig.json +0 -20
@@ -0,0 +1,337 @@
1
+ /**
2
+ * Analytics Utility
3
+ *
4
+ * Unified analytics interface for tracking events across:
5
+ * - Google Analytics 4 (GA4)
6
+ * - PostHog
7
+ *
8
+ * This ensures consistent event tracking and makes it easy to
9
+ * add or remove analytics platforms in the future.
10
+ */
11
+ export interface ProfileValidatedEvent {
12
+ event: 'profile_validated';
13
+ url?: string;
14
+ validationLevel?: 'quick' | 'full' | 'remote' | 'sdk';
15
+ issuesFound?: number;
16
+ severity?: 'error' | 'warning' | 'info';
17
+ }
18
+ export interface ProfileGeneratedEvent {
19
+ event: 'profile_generated';
20
+ profileType?: 'full' | 'minimal';
21
+ platform?: string;
22
+ includesSigningKeys?: boolean;
23
+ }
24
+ export interface SimulatorRunEvent {
25
+ event: 'simulator_run';
26
+ url?: string;
27
+ success?: boolean;
28
+ stepsCompleted?: number;
29
+ }
30
+ export interface SecurityScanEvent {
31
+ event: 'security_scan';
32
+ url?: string;
33
+ vulnerabilitiesFound?: number;
34
+ }
35
+ export interface PdfDownloadedEvent {
36
+ event: 'pdf_downloaded';
37
+ reportType?: 'validation' | 'security' | 'benchmark';
38
+ }
39
+ export interface BadgeEmbeddedEvent {
40
+ event: 'badge_embedded';
41
+ badgeType?: 'ucp-compliant' | 'security-verified';
42
+ }
43
+ export interface PlatformSelectedEvent {
44
+ event: 'platform_selected';
45
+ platform: string;
46
+ }
47
+ export interface SubscriptionViewedEvent {
48
+ event: 'subscription_viewed';
49
+ plan?: 'free' | 'starter' | 'pro' | 'enterprise' | 'all';
50
+ }
51
+ export interface CheckoutInitiatedEvent {
52
+ event: 'checkout_initiated';
53
+ plan: string;
54
+ billingPeriod?: 'monthly' | 'annual';
55
+ }
56
+ export interface TrialStartedEvent {
57
+ event: 'trial_started';
58
+ method: 'email' | 'google';
59
+ }
60
+ export interface HeroFormSubmittedEvent {
61
+ event: 'hero_form_submitted';
62
+ domain: string;
63
+ hero_button_variant?: string;
64
+ }
65
+ export interface SignupCompletedEvent {
66
+ event: 'signup_completed';
67
+ method: 'email' | 'google';
68
+ }
69
+ export interface SignupErrorEvent {
70
+ event: 'signup_error';
71
+ method: 'email' | 'google';
72
+ error: string;
73
+ }
74
+ export interface SigninCompletedEvent {
75
+ event: 'signin_completed';
76
+ method: 'email' | 'google';
77
+ }
78
+ export interface SigninErrorEvent {
79
+ event: 'signin_error';
80
+ method: 'email' | 'google';
81
+ error: string;
82
+ }
83
+ export interface PdfGateShownEvent {
84
+ event: 'pdf_gate_shown';
85
+ domain?: string;
86
+ }
87
+ export interface PdfGateCompletedEvent {
88
+ event: 'pdf_gate_completed';
89
+ domain?: string;
90
+ }
91
+ export interface PdfGateBypassedEvent {
92
+ event: 'pdf_gate_bypassed';
93
+ reason: 'authenticated' | 'stored_email';
94
+ }
95
+ export interface FeedAnalyzedEvent {
96
+ event: 'feed_analyzed';
97
+ url?: string;
98
+ productsFound?: number;
99
+ overallScore?: number;
100
+ grade?: string;
101
+ }
102
+ export interface SchemaGeneratedEvent {
103
+ event: 'schema_generated';
104
+ returnTemplate?: string;
105
+ shippingTemplate?: string;
106
+ }
107
+ export interface ComplianceGeneratedEvent {
108
+ event: 'compliance_generated';
109
+ regions?: string[];
110
+ platforms?: string[];
111
+ lawfulBasis?: string;
112
+ }
113
+ export interface AcpCheckEvent {
114
+ event: 'acp_check';
115
+ url?: string;
116
+ score?: number;
117
+ grade?: string;
118
+ platformDetected?: string;
119
+ stripeDetected?: boolean;
120
+ }
121
+ export interface TabSwitchedEvent {
122
+ event: 'tab_switched';
123
+ tab: string;
124
+ previousTab?: string;
125
+ }
126
+ export interface ToolDiscoveredEvent {
127
+ event: 'tool_discovered';
128
+ tool: string;
129
+ source: 'results_fix' | 'go_deeper' | 'bottom_section' | 'header_nav';
130
+ }
131
+ export interface TrialCtaClickedEvent {
132
+ event: 'trial_cta_clicked';
133
+ source: 'results_dashboard' | 'tool_page';
134
+ score?: number;
135
+ domain?: string;
136
+ }
137
+ export interface PaywallViewedEvent {
138
+ event: 'paywall_viewed';
139
+ page: string;
140
+ type: 'blurred' | 'lock';
141
+ subscription_tier?: string;
142
+ subscription_status?: string;
143
+ }
144
+ export interface PaywallCtaClickedEvent {
145
+ event: 'paywall_cta_clicked';
146
+ page: string;
147
+ plan?: 'monthly' | 'annual';
148
+ }
149
+ export interface DomainAddedEvent {
150
+ event: 'domain_added';
151
+ domain: string;
152
+ }
153
+ export interface DomainRemovedEvent {
154
+ event: 'domain_removed';
155
+ domain: string;
156
+ }
157
+ export interface DomainValidatedEvent {
158
+ event: 'domain_validated';
159
+ domain: string;
160
+ source: 'dashboard' | 'domain_detail';
161
+ score?: number;
162
+ grade?: string;
163
+ }
164
+ export interface DomainSettingsSavedEvent {
165
+ event: 'domain_settings_saved';
166
+ domain: string;
167
+ monitoring_frequency?: string;
168
+ webhook_enabled?: boolean;
169
+ alerts_enabled?: boolean;
170
+ }
171
+ export interface AnalyticsViewedEvent {
172
+ event: 'analytics_viewed';
173
+ domain?: string;
174
+ time_range?: string;
175
+ }
176
+ export interface AnalyticsKeyCreatedEvent {
177
+ event: 'analytics_key_created';
178
+ domain?: string;
179
+ }
180
+ export interface AnalyticsKeyCopiedEvent {
181
+ event: 'analytics_key_copied';
182
+ }
183
+ export interface AnalyticsCodeCopiedEvent {
184
+ event: 'analytics_code_copied';
185
+ platform?: string;
186
+ }
187
+ export interface AnalyticsInstallVerifiedEvent {
188
+ event: 'analytics_install_verified';
189
+ domain?: string;
190
+ success: boolean;
191
+ }
192
+ export interface SimulatorOpenedEvent {
193
+ event: 'simulator_opened';
194
+ domain?: string;
195
+ }
196
+ export interface SimulatorMessageSentEvent {
197
+ event: 'simulator_message_sent';
198
+ agent_type?: string;
199
+ }
200
+ export interface HostingSetupStartedEvent {
201
+ event: 'hosting_setup_started';
202
+ domain: string;
203
+ }
204
+ export interface HostingProfileCreatedEvent {
205
+ event: 'hosting_profile_created';
206
+ domain: string;
207
+ mode?: 'generate' | 'paste';
208
+ }
209
+ export interface HostingDomainVerifiedEvent {
210
+ event: 'hosting_domain_verified';
211
+ domain: string;
212
+ success: boolean;
213
+ }
214
+ export interface HostingActivatedEvent {
215
+ event: 'hosting_activated';
216
+ domain: string;
217
+ }
218
+ export interface HostingDeactivatedEvent {
219
+ event: 'hosting_deactivated';
220
+ domain: string;
221
+ }
222
+ export interface HostingProfileDeletedEvent {
223
+ event: 'hosting_profile_deleted';
224
+ domain: string;
225
+ }
226
+ export interface HostingUrlCopiedEvent {
227
+ event: 'hosting_url_copied';
228
+ domain?: string;
229
+ }
230
+ export interface UpgradeClickedEvent {
231
+ event: 'upgrade_clicked';
232
+ source: 'subscription_page' | 'paywall' | 'banner';
233
+ plan?: 'monthly' | 'annual';
234
+ }
235
+ export interface SubscriptionCanceledEvent {
236
+ event: 'subscription_canceled';
237
+ }
238
+ export interface SubscriptionResumedEvent {
239
+ event: 'subscription_resumed';
240
+ }
241
+ export interface BillingManagedEvent {
242
+ event: 'billing_managed';
243
+ }
244
+ export interface AccountDeletedEvent {
245
+ event: 'account_deleted';
246
+ }
247
+ export interface BadgeCopiedEvent {
248
+ event: 'badge_copied';
249
+ domain?: string;
250
+ format: 'markdown' | 'html';
251
+ }
252
+ export type AnalyticsEvent = ProfileValidatedEvent | ProfileGeneratedEvent | SimulatorRunEvent | SecurityScanEvent | PdfDownloadedEvent | BadgeEmbeddedEvent | PlatformSelectedEvent | SubscriptionViewedEvent | CheckoutInitiatedEvent | TrialStartedEvent | HeroFormSubmittedEvent | SignupCompletedEvent | SignupErrorEvent | SigninCompletedEvent | SigninErrorEvent | PdfGateShownEvent | PdfGateCompletedEvent | PdfGateBypassedEvent | FeedAnalyzedEvent | SchemaGeneratedEvent | ComplianceGeneratedEvent | TabSwitchedEvent | ToolDiscoveredEvent | AcpCheckEvent | TrialCtaClickedEvent | PaywallViewedEvent | PaywallCtaClickedEvent | DomainAddedEvent | DomainRemovedEvent | DomainValidatedEvent | DomainSettingsSavedEvent | AnalyticsViewedEvent | AnalyticsKeyCreatedEvent | AnalyticsKeyCopiedEvent | AnalyticsCodeCopiedEvent | AnalyticsInstallVerifiedEvent | SimulatorOpenedEvent | SimulatorMessageSentEvent | HostingSetupStartedEvent | HostingProfileCreatedEvent | HostingDomainVerifiedEvent | HostingActivatedEvent | HostingDeactivatedEvent | HostingProfileDeletedEvent | HostingUrlCopiedEvent | UpgradeClickedEvent | SubscriptionCanceledEvent | SubscriptionResumedEvent | BillingManagedEvent | AccountDeletedEvent | BadgeCopiedEvent;
253
+ /**
254
+ * Track an event across all analytics platforms
255
+ */
256
+ export declare function trackEvent(eventData: AnalyticsEvent): void;
257
+ /**
258
+ * Identify a user (for authenticated sessions)
259
+ */
260
+ export declare function identifyUser(userId: string, traits?: Record<string, any>): void;
261
+ /**
262
+ * Reset user identification (for logout)
263
+ */
264
+ export declare function resetUser(): void;
265
+ /**
266
+ * Track page view (already handled by PostHogProvider, but available for manual tracking)
267
+ */
268
+ export declare function trackPageView(url: string): void;
269
+ /**
270
+ * Feature flag check (PostHog only)
271
+ */
272
+ export declare function isFeatureEnabled(flagKey: string): boolean;
273
+ /**
274
+ * Get multivariate feature flag value (PostHog only)
275
+ */
276
+ export declare function getFeatureFlagVariant(flagKey: string): string | null;
277
+ /**
278
+ * Convenience functions for common events
279
+ */
280
+ export declare const analytics: {
281
+ profileValidated: (data: Omit<ProfileValidatedEvent, "event">) => void;
282
+ profileGenerated: (data: Omit<ProfileGeneratedEvent, "event">) => void;
283
+ simulatorRun: (data: Omit<SimulatorRunEvent, "event">) => void;
284
+ securityScan: (data: Omit<SecurityScanEvent, "event">) => void;
285
+ pdfDownloaded: (data: Omit<PdfDownloadedEvent, "event">) => void;
286
+ badgeEmbedded: (data: Omit<BadgeEmbeddedEvent, "event">) => void;
287
+ platformSelected: (data: Omit<PlatformSelectedEvent, "event">) => void;
288
+ subscriptionViewed: (data: Omit<SubscriptionViewedEvent, "event">) => void;
289
+ checkoutInitiated: (data: Omit<CheckoutInitiatedEvent, "event">) => void;
290
+ trialStarted: (data: Omit<TrialStartedEvent, "event">) => void;
291
+ heroFormSubmitted: (data: Omit<HeroFormSubmittedEvent, "event">) => void;
292
+ signupCompleted: (data: Omit<SignupCompletedEvent, "event">) => void;
293
+ signupError: (data: Omit<SignupErrorEvent, "event">) => void;
294
+ signinCompleted: (data: Omit<SigninCompletedEvent, "event">) => void;
295
+ signinError: (data: Omit<SigninErrorEvent, "event">) => void;
296
+ pdfGateShown: (data: Omit<PdfGateShownEvent, "event">) => void;
297
+ pdfGateCompleted: (data: Omit<PdfGateCompletedEvent, "event">) => void;
298
+ pdfGateBypassed: (data: Omit<PdfGateBypassedEvent, "event">) => void;
299
+ feedAnalyzed: (data: Omit<FeedAnalyzedEvent, "event">) => void;
300
+ schemaGenerated: (data: Omit<SchemaGeneratedEvent, "event">) => void;
301
+ complianceGenerated: (data: Omit<ComplianceGeneratedEvent, "event">) => void;
302
+ tabSwitched: (data: Omit<TabSwitchedEvent, "event">) => void;
303
+ toolDiscovered: (data: Omit<ToolDiscoveredEvent, "event">) => void;
304
+ acpCheck: (data: Omit<AcpCheckEvent, "event">) => void;
305
+ trialCtaClicked: (data: Omit<TrialCtaClickedEvent, "event">) => void;
306
+ paywallViewed: (data: Omit<PaywallViewedEvent, "event">) => void;
307
+ paywallCtaClicked: (data: Omit<PaywallCtaClickedEvent, "event">) => void;
308
+ domainAdded: (data: Omit<DomainAddedEvent, "event">) => void;
309
+ domainRemoved: (data: Omit<DomainRemovedEvent, "event">) => void;
310
+ domainValidated: (data: Omit<DomainValidatedEvent, "event">) => void;
311
+ domainSettingsSaved: (data: Omit<DomainSettingsSavedEvent, "event">) => void;
312
+ analyticsViewed: (data: Omit<AnalyticsViewedEvent, "event">) => void;
313
+ analyticsKeyCreated: (data: Omit<AnalyticsKeyCreatedEvent, "event">) => void;
314
+ analyticsKeyCopied: () => void;
315
+ analyticsCodeCopied: (data: Omit<AnalyticsCodeCopiedEvent, "event">) => void;
316
+ analyticsInstallVerified: (data: Omit<AnalyticsInstallVerifiedEvent, "event">) => void;
317
+ simulatorOpened: (data: Omit<SimulatorOpenedEvent, "event">) => void;
318
+ simulatorMessageSent: (data: Omit<SimulatorMessageSentEvent, "event">) => void;
319
+ hostingSetupStarted: (data: Omit<HostingSetupStartedEvent, "event">) => void;
320
+ hostingProfileCreated: (data: Omit<HostingProfileCreatedEvent, "event">) => void;
321
+ hostingDomainVerified: (data: Omit<HostingDomainVerifiedEvent, "event">) => void;
322
+ hostingActivated: (data: Omit<HostingActivatedEvent, "event">) => void;
323
+ hostingDeactivated: (data: Omit<HostingDeactivatedEvent, "event">) => void;
324
+ hostingProfileDeleted: (data: Omit<HostingProfileDeletedEvent, "event">) => void;
325
+ hostingUrlCopied: (data: Omit<HostingUrlCopiedEvent, "event">) => void;
326
+ upgradeClicked: (data: Omit<UpgradeClickedEvent, "event">) => void;
327
+ subscriptionCanceled: () => void;
328
+ subscriptionResumed: () => void;
329
+ billingManaged: () => void;
330
+ accountDeleted: () => void;
331
+ badgeCopied: (data: Omit<BadgeCopiedEvent, "event">) => void;
332
+ identify: typeof identifyUser;
333
+ reset: typeof resetUser;
334
+ pageView: typeof trackPageView;
335
+ isFeatureEnabled: typeof isFeatureEnabled;
336
+ };
337
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/lib/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ /**
3
+ * Analytics Utility
4
+ *
5
+ * Unified analytics interface for tracking events across:
6
+ * - Google Analytics 4 (GA4)
7
+ * - PostHog
8
+ *
9
+ * This ensures consistent event tracking and makes it easy to
10
+ * add or remove analytics platforms in the future.
11
+ */
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.analytics = void 0;
17
+ exports.trackEvent = trackEvent;
18
+ exports.identifyUser = identifyUser;
19
+ exports.resetUser = resetUser;
20
+ exports.trackPageView = trackPageView;
21
+ exports.isFeatureEnabled = isFeatureEnabled;
22
+ exports.getFeatureFlagVariant = getFeatureFlagVariant;
23
+ const posthog_js_1 = __importDefault(require("posthog-js"));
24
+ /**
25
+ * Check if PostHog is initialized and ready to capture events
26
+ */
27
+ function isPostHogInitialized() {
28
+ if (typeof window === 'undefined')
29
+ return false;
30
+ // Check if PostHog has been initialized by checking for the _loaded property
31
+ // or by checking if the capture method exists and PostHog has a distinct_id
32
+ try {
33
+ return posthog_js_1.default && typeof posthog_js_1.default.capture === 'function' && posthog_js_1.default.get_distinct_id() !== undefined;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ /**
40
+ * Track an event across all analytics platforms
41
+ */
42
+ function trackEvent(eventData) {
43
+ const { event, ...properties } = eventData;
44
+ // Track in Google Analytics 4
45
+ if (typeof window !== 'undefined' && window.gtag) {
46
+ window.gtag('event', event, properties);
47
+ }
48
+ // Track in PostHog - with initialization check
49
+ if (isPostHogInitialized()) {
50
+ posthog_js_1.default.capture(event, properties);
51
+ if (process.env.NODE_ENV === 'development') {
52
+ console.log('[Analytics] PostHog event captured:', event, properties);
53
+ }
54
+ }
55
+ else if (typeof window !== 'undefined') {
56
+ // PostHog not yet initialized - queue the event for later
57
+ // PostHog's built-in queue will handle this when it's ready
58
+ if (process.env.NODE_ENV === 'development') {
59
+ console.warn('[Analytics] PostHog not initialized, event may be queued:', event);
60
+ }
61
+ // Still call capture - PostHog has internal queuing
62
+ if (posthog_js_1.default && typeof posthog_js_1.default.capture === 'function') {
63
+ posthog_js_1.default.capture(event, properties);
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * Identify a user (for authenticated sessions)
69
+ */
70
+ function identifyUser(userId, traits) {
71
+ // PostHog identify
72
+ if (typeof window !== 'undefined' && posthog_js_1.default) {
73
+ posthog_js_1.default.identify(userId, traits);
74
+ }
75
+ // GA4 user ID
76
+ if (typeof window !== 'undefined' && window.gtag) {
77
+ window.gtag('config', 'G-J5JSHV7H1E', {
78
+ user_id: userId,
79
+ });
80
+ }
81
+ }
82
+ /**
83
+ * Reset user identification (for logout)
84
+ */
85
+ function resetUser() {
86
+ if (typeof window !== 'undefined' && posthog_js_1.default) {
87
+ posthog_js_1.default.reset();
88
+ }
89
+ }
90
+ /**
91
+ * Track page view (already handled by PostHogProvider, but available for manual tracking)
92
+ */
93
+ function trackPageView(url) {
94
+ // GA4 pageview
95
+ if (typeof window !== 'undefined' && window.gtag) {
96
+ window.gtag('config', 'G-J5JSHV7H1E', {
97
+ page_path: url,
98
+ });
99
+ }
100
+ // PostHog pageview (manual)
101
+ if (typeof window !== 'undefined' && posthog_js_1.default) {
102
+ posthog_js_1.default.capture('$pageview', {
103
+ $current_url: url,
104
+ });
105
+ }
106
+ }
107
+ /**
108
+ * Feature flag check (PostHog only)
109
+ */
110
+ function isFeatureEnabled(flagKey) {
111
+ if (typeof window !== 'undefined' && posthog_js_1.default) {
112
+ return posthog_js_1.default.isFeatureEnabled(flagKey) ?? false;
113
+ }
114
+ return false;
115
+ }
116
+ /**
117
+ * Get multivariate feature flag value (PostHog only)
118
+ */
119
+ function getFeatureFlagVariant(flagKey) {
120
+ if (typeof window !== 'undefined' && isPostHogInitialized()) {
121
+ const value = posthog_js_1.default.getFeatureFlag(flagKey);
122
+ if (typeof value === 'string')
123
+ return value;
124
+ }
125
+ return null;
126
+ }
127
+ /**
128
+ * Convenience functions for common events
129
+ */
130
+ exports.analytics = {
131
+ profileValidated: (data) => trackEvent({ event: 'profile_validated', ...data }),
132
+ profileGenerated: (data) => trackEvent({ event: 'profile_generated', ...data }),
133
+ simulatorRun: (data) => trackEvent({ event: 'simulator_run', ...data }),
134
+ securityScan: (data) => trackEvent({ event: 'security_scan', ...data }),
135
+ pdfDownloaded: (data) => trackEvent({ event: 'pdf_downloaded', ...data }),
136
+ badgeEmbedded: (data) => trackEvent({ event: 'badge_embedded', ...data }),
137
+ platformSelected: (data) => trackEvent({ event: 'platform_selected', ...data }),
138
+ subscriptionViewed: (data) => trackEvent({ event: 'subscription_viewed', ...data }),
139
+ checkoutInitiated: (data) => trackEvent({ event: 'checkout_initiated', ...data }),
140
+ trialStarted: (data) => trackEvent({ event: 'trial_started', ...data }),
141
+ heroFormSubmitted: (data) => trackEvent({ event: 'hero_form_submitted', ...data }),
142
+ signupCompleted: (data) => trackEvent({ event: 'signup_completed', ...data }),
143
+ signupError: (data) => trackEvent({ event: 'signup_error', ...data }),
144
+ signinCompleted: (data) => trackEvent({ event: 'signin_completed', ...data }),
145
+ signinError: (data) => trackEvent({ event: 'signin_error', ...data }),
146
+ pdfGateShown: (data) => trackEvent({ event: 'pdf_gate_shown', ...data }),
147
+ pdfGateCompleted: (data) => trackEvent({ event: 'pdf_gate_completed', ...data }),
148
+ pdfGateBypassed: (data) => trackEvent({ event: 'pdf_gate_bypassed', ...data }),
149
+ feedAnalyzed: (data) => trackEvent({ event: 'feed_analyzed', ...data }),
150
+ schemaGenerated: (data) => trackEvent({ event: 'schema_generated', ...data }),
151
+ complianceGenerated: (data) => trackEvent({ event: 'compliance_generated', ...data }),
152
+ tabSwitched: (data) => trackEvent({ event: 'tab_switched', ...data }),
153
+ toolDiscovered: (data) => trackEvent({ event: 'tool_discovered', ...data }),
154
+ acpCheck: (data) => trackEvent({ event: 'acp_check', ...data }),
155
+ trialCtaClicked: (data) => trackEvent({ event: 'trial_cta_clicked', ...data }),
156
+ // Dashboard events — paywall, feature usage, conversion, churn
157
+ paywallViewed: (data) => trackEvent({ event: 'paywall_viewed', ...data }),
158
+ paywallCtaClicked: (data) => trackEvent({ event: 'paywall_cta_clicked', ...data }),
159
+ domainAdded: (data) => trackEvent({ event: 'domain_added', ...data }),
160
+ domainRemoved: (data) => trackEvent({ event: 'domain_removed', ...data }),
161
+ domainValidated: (data) => trackEvent({ event: 'domain_validated', ...data }),
162
+ domainSettingsSaved: (data) => trackEvent({ event: 'domain_settings_saved', ...data }),
163
+ analyticsViewed: (data) => trackEvent({ event: 'analytics_viewed', ...data }),
164
+ analyticsKeyCreated: (data) => trackEvent({ event: 'analytics_key_created', ...data }),
165
+ analyticsKeyCopied: () => trackEvent({ event: 'analytics_key_copied' }),
166
+ analyticsCodeCopied: (data) => trackEvent({ event: 'analytics_code_copied', ...data }),
167
+ analyticsInstallVerified: (data) => trackEvent({ event: 'analytics_install_verified', ...data }),
168
+ simulatorOpened: (data) => trackEvent({ event: 'simulator_opened', ...data }),
169
+ simulatorMessageSent: (data) => trackEvent({ event: 'simulator_message_sent', ...data }),
170
+ hostingSetupStarted: (data) => trackEvent({ event: 'hosting_setup_started', ...data }),
171
+ hostingProfileCreated: (data) => trackEvent({ event: 'hosting_profile_created', ...data }),
172
+ hostingDomainVerified: (data) => trackEvent({ event: 'hosting_domain_verified', ...data }),
173
+ hostingActivated: (data) => trackEvent({ event: 'hosting_activated', ...data }),
174
+ hostingDeactivated: (data) => trackEvent({ event: 'hosting_deactivated', ...data }),
175
+ hostingProfileDeleted: (data) => trackEvent({ event: 'hosting_profile_deleted', ...data }),
176
+ hostingUrlCopied: (data) => trackEvent({ event: 'hosting_url_copied', ...data }),
177
+ upgradeClicked: (data) => trackEvent({ event: 'upgrade_clicked', ...data }),
178
+ subscriptionCanceled: () => trackEvent({ event: 'subscription_canceled' }),
179
+ subscriptionResumed: () => trackEvent({ event: 'subscription_resumed' }),
180
+ billingManaged: () => trackEvent({ event: 'billing_managed' }),
181
+ accountDeleted: () => trackEvent({ event: 'account_deleted' }),
182
+ badgeCopied: (data) => trackEvent({ event: 'badge_copied', ...data }),
183
+ identify: identifyUser,
184
+ reset: resetUser,
185
+ pageView: trackPageView,
186
+ isFeatureEnabled,
187
+ };
188
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/lib/analytics.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAiXH,gCAyBC;AAKD,oCAYC;AAKD,8BAIC;AAKD,sCAcC;AAKD,4CAKC;AAKD,sDAMC;AA1cD,4DAAiC;AAEjC;;GAEG;AACH,SAAS,oBAAoB;IACzB,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,CAAC;QACD,OAAO,oBAAO,IAAI,OAAO,oBAAO,CAAC,OAAO,KAAK,UAAU,IAAI,oBAAO,CAAC,eAAe,EAAE,KAAK,SAAS,CAAC;IACvG,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AA8VD;;GAEG;AACH,SAAgB,UAAU,CAAC,SAAyB;IAChD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC;IAE3C,8BAA8B;IAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,IAAI,EAAE,CAAC;QACvD,MAAc,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,+CAA+C;IAC/C,IAAI,oBAAoB,EAAE,EAAE,CAAC;QACzB,oBAAO,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACvC,0DAA0D;QAC1D,4DAA4D;QAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;QACrF,CAAC;QACD,oDAAoD;QACpD,IAAI,oBAAO,IAAI,OAAO,oBAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACnD,oBAAO,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,MAAc,EAAE,MAA4B;IACrE,mBAAmB;IACnB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,oBAAO,EAAE,CAAC;QAC3C,oBAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,cAAc;IACd,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,IAAI,EAAE,CAAC;QACvD,MAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE;YAC3C,OAAO,EAAE,MAAM;SAClB,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS;IACrB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,oBAAO,EAAE,CAAC;QAC3C,oBAAO,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,GAAW;IACrC,eAAe;IACf,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,IAAI,EAAE,CAAC;QACvD,MAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE;YAC3C,SAAS,EAAE,GAAG;SACjB,CAAC,CAAC;IACP,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,oBAAO,EAAE,CAAC;QAC3C,oBAAO,CAAC,OAAO,CAAC,WAAW,EAAE;YACzB,YAAY,EAAE,GAAG;SACpB,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC5C,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,oBAAO,EAAE,CAAC;QAC3C,OAAO,oBAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,OAAe;IACjD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,oBAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AAEU,QAAA,SAAS,GAAG;IACrB,gBAAgB,EAAE,CAAC,IAA0C,EAAE,EAAE,CAC7D,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEvD,gBAAgB,EAAE,CAAC,IAA0C,EAAE,EAAE,CAC7D,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEvD,YAAY,EAAE,CAAC,IAAsC,EAAE,EAAE,CACrD,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,CAAC;IAEnD,YAAY,EAAE,CAAC,IAAsC,EAAE,EAAE,CACrD,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,CAAC;IAEnD,aAAa,EAAE,CAAC,IAAuC,EAAE,EAAE,CACvD,UAAU,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpD,aAAa,EAAE,CAAC,IAAuC,EAAE,EAAE,CACvD,UAAU,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpD,gBAAgB,EAAE,CAAC,IAA0C,EAAE,EAAE,CAC7D,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEvD,kBAAkB,EAAE,CAAC,IAA4C,EAAE,EAAE,CACjE,UAAU,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEzD,iBAAiB,EAAE,CAAC,IAA2C,EAAE,EAAE,CAC/D,UAAU,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC;IAExD,YAAY,EAAE,CAAC,IAAsC,EAAE,EAAE,CACrD,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,CAAC;IAEnD,iBAAiB,EAAE,CAAC,IAA2C,EAAE,EAAE,CAC/D,UAAU,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEzD,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEtD,WAAW,EAAE,CAAC,IAAqC,EAAE,EAAE,CACnD,UAAU,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC;IAElD,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEtD,WAAW,EAAE,CAAC,IAAqC,EAAE,EAAE,CACnD,UAAU,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC;IAElD,YAAY,EAAE,CAAC,IAAsC,EAAE,EAAE,CACrD,UAAU,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpD,gBAAgB,EAAE,CAAC,IAA0C,EAAE,EAAE,CAC7D,UAAU,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC;IAExD,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEvD,YAAY,EAAE,CAAC,IAAsC,EAAE,EAAE,CACrD,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,CAAC;IAEnD,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEtD,mBAAmB,EAAE,CAAC,IAA6C,EAAE,EAAE,CACnE,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE1D,WAAW,EAAE,CAAC,IAAqC,EAAE,EAAE,CACnD,UAAU,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC;IAElD,cAAc,EAAE,CAAC,IAAwC,EAAE,EAAE,CACzD,UAAU,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;IAErD,QAAQ,EAAE,CAAC,IAAkC,EAAE,EAAE,CAC7C,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;IAE/C,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEvD,+DAA+D;IAE/D,aAAa,EAAE,CAAC,IAAuC,EAAE,EAAE,CACvD,UAAU,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpD,iBAAiB,EAAE,CAAC,IAA2C,EAAE,EAAE,CAC/D,UAAU,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEzD,WAAW,EAAE,CAAC,IAAqC,EAAE,EAAE,CACnD,UAAU,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC;IAElD,aAAa,EAAE,CAAC,IAAuC,EAAE,EAAE,CACvD,UAAU,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpD,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEtD,mBAAmB,EAAE,CAAC,IAA6C,EAAE,EAAE,CACnE,UAAU,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE3D,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEtD,mBAAmB,EAAE,CAAC,IAA6C,EAAE,EAAE,CACnE,UAAU,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE3D,kBAAkB,EAAE,GAAG,EAAE,CACrB,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAEjD,mBAAmB,EAAE,CAAC,IAA6C,EAAE,EAAE,CACnE,UAAU,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE3D,wBAAwB,EAAE,CAAC,IAAkD,EAAE,EAAE,CAC7E,UAAU,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IAEhE,eAAe,EAAE,CAAC,IAAyC,EAAE,EAAE,CAC3D,UAAU,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEtD,oBAAoB,EAAE,CAAC,IAA8C,EAAE,EAAE,CACrE,UAAU,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE5D,mBAAmB,EAAE,CAAC,IAA6C,EAAE,EAAE,CACnE,UAAU,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE3D,qBAAqB,EAAE,CAAC,IAA+C,EAAE,EAAE,CACvE,UAAU,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE7D,qBAAqB,EAAE,CAAC,IAA+C,EAAE,EAAE,CACvE,UAAU,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE7D,gBAAgB,EAAE,CAAC,IAA0C,EAAE,EAAE,CAC7D,UAAU,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEvD,kBAAkB,EAAE,CAAC,IAA4C,EAAE,EAAE,CACjE,UAAU,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,CAAC;IAEzD,qBAAqB,EAAE,CAAC,IAA+C,EAAE,EAAE,CACvE,UAAU,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,GAAG,IAAI,EAAE,CAAC;IAE7D,gBAAgB,EAAE,CAAC,IAA0C,EAAE,EAAE,CAC7D,UAAU,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC;IAExD,cAAc,EAAE,CAAC,IAAwC,EAAE,EAAE,CACzD,UAAU,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC;IAErD,oBAAoB,EAAE,GAAG,EAAE,CACvB,UAAU,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAElD,mBAAmB,EAAE,GAAG,EAAE,CACtB,UAAU,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAEjD,cAAc,EAAE,GAAG,EAAE,CACjB,UAAU,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAE5C,cAAc,EAAE,GAAG,EAAE,CACjB,UAAU,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAE5C,WAAW,EAAE,CAAC,IAAqC,EAAE,EAAE,CACnD,UAAU,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC;IAElD,QAAQ,EAAE,YAAY;IACtB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,aAAa;IACvB,gBAAgB;CACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"security-scanner.d.ts","sourceRoot":"","sources":["../../src/security/security-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAiB,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAKzF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAkD7B"}
1
+ {"version":3,"file":"security-scanner.d.ts","sourceRoot":"","sources":["../../src/security/security-scanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAiB,kBAAkB,EAAE,mBAAmB,EAAiD,MAAM,YAAY,CAAC;AAKxI;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAoD7B"}