@ucptools/validator 1.0.0 → 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 (330) 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.d.ts +6 -0
  18. package/dist/cli/index.d.ts.map +1 -0
  19. package/dist/cli/index.js +375 -0
  20. package/dist/cli/index.js.map +1 -0
  21. package/dist/cli/mock-server.d.ts +20 -0
  22. package/dist/cli/mock-server.d.ts.map +1 -0
  23. package/dist/cli/mock-server.js +261 -0
  24. package/dist/cli/mock-server.js.map +1 -0
  25. package/dist/compliance/compliance-generator.d.ts +34 -0
  26. package/dist/compliance/compliance-generator.d.ts.map +1 -0
  27. package/dist/compliance/compliance-generator.js +320 -0
  28. package/dist/compliance/compliance-generator.js.map +1 -0
  29. package/dist/compliance/index.d.ts +8 -0
  30. package/dist/compliance/index.d.ts.map +1 -0
  31. package/dist/compliance/index.js +17 -0
  32. package/dist/compliance/index.js.map +1 -0
  33. package/dist/compliance/templates.d.ts +34 -0
  34. package/dist/compliance/templates.d.ts.map +1 -0
  35. package/{src/compliance/templates.ts → dist/compliance/templates.js} +117 -155
  36. package/dist/compliance/templates.js.map +1 -0
  37. package/dist/compliance/types.d.ts +64 -0
  38. package/dist/compliance/types.d.ts.map +1 -0
  39. package/dist/compliance/types.js +64 -0
  40. package/dist/compliance/types.js.map +1 -0
  41. package/dist/db/index.d.ts +17 -0
  42. package/dist/db/index.d.ts.map +1 -0
  43. package/dist/db/index.js +80 -0
  44. package/dist/db/index.js.map +1 -0
  45. package/dist/db/schema.d.ts +3886 -0
  46. package/dist/db/schema.d.ts.map +1 -0
  47. package/dist/db/schema.js +425 -0
  48. package/dist/db/schema.js.map +1 -0
  49. package/dist/db/utils.d.ts +252 -0
  50. package/dist/db/utils.d.ts.map +1 -0
  51. package/dist/db/utils.js +295 -0
  52. package/dist/db/utils.js.map +1 -0
  53. package/dist/feed-analyzer/feed-analyzer.d.ts +26 -0
  54. package/dist/feed-analyzer/feed-analyzer.d.ts.map +1 -0
  55. package/{src/feed-analyzer/feed-analyzer.ts → dist/feed-analyzer/feed-analyzer.js} +856 -726
  56. package/dist/feed-analyzer/feed-analyzer.js.map +1 -0
  57. package/dist/feed-analyzer/index.d.ts +8 -0
  58. package/dist/feed-analyzer/index.d.ts.map +1 -0
  59. package/dist/feed-analyzer/index.js +19 -0
  60. package/dist/feed-analyzer/index.js.map +1 -0
  61. package/dist/feed-analyzer/types.d.ts +285 -0
  62. package/dist/feed-analyzer/types.d.ts.map +1 -0
  63. package/dist/feed-analyzer/types.js +175 -0
  64. package/dist/feed-analyzer/types.js.map +1 -0
  65. package/{src/generator/index.ts → dist/generator/index.d.ts} +1 -1
  66. package/dist/generator/index.d.ts.map +1 -0
  67. package/dist/generator/index.js +13 -0
  68. package/dist/generator/index.js.map +1 -0
  69. package/dist/generator/key-generator.d.ts +24 -0
  70. package/dist/generator/key-generator.d.ts.map +1 -0
  71. package/dist/generator/key-generator.js +144 -0
  72. package/dist/generator/key-generator.js.map +1 -0
  73. package/dist/generator/profile-builder.d.ts +15 -0
  74. package/dist/generator/profile-builder.d.ts.map +1 -0
  75. package/dist/generator/profile-builder.js +338 -0
  76. package/dist/generator/profile-builder.js.map +1 -0
  77. package/dist/hosting/artifacts-generator.d.ts +10 -0
  78. package/dist/hosting/artifacts-generator.d.ts.map +1 -0
  79. package/{src/hosting/artifacts-generator.ts → dist/hosting/artifacts-generator.js} +191 -241
  80. package/dist/hosting/artifacts-generator.js.map +1 -0
  81. package/{src/hosting/index.ts → dist/hosting/index.d.ts} +1 -1
  82. package/dist/hosting/index.d.ts.map +1 -0
  83. package/dist/hosting/index.js +10 -0
  84. package/dist/hosting/index.js.map +1 -0
  85. package/dist/index.d.ts +18 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +78 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/lib/analytics.d.ts +337 -0
  90. package/dist/lib/analytics.d.ts.map +1 -0
  91. package/dist/lib/analytics.js +188 -0
  92. package/dist/lib/analytics.js.map +1 -0
  93. package/{src/security/index.ts → dist/security/index.d.ts} +8 -15
  94. package/dist/security/index.d.ts.map +1 -0
  95. package/dist/security/index.js +12 -0
  96. package/dist/security/index.js.map +1 -0
  97. package/dist/security/security-scanner.d.ts +10 -0
  98. package/dist/security/security-scanner.d.ts.map +1 -0
  99. package/dist/security/security-scanner.js +669 -0
  100. package/dist/security/security-scanner.js.map +1 -0
  101. package/dist/security/types.d.ts +80 -0
  102. package/dist/security/types.d.ts.map +1 -0
  103. package/dist/security/types.js +21 -0
  104. package/dist/security/types.js.map +1 -0
  105. package/dist/services/analytics.d.ts +114 -0
  106. package/dist/services/analytics.d.ts.map +1 -0
  107. package/dist/services/analytics.js +862 -0
  108. package/dist/services/analytics.js.map +1 -0
  109. package/dist/services/badge.d.ts +31 -0
  110. package/dist/services/badge.d.ts.map +1 -0
  111. package/dist/services/badge.js +152 -0
  112. package/dist/services/badge.js.map +1 -0
  113. package/dist/services/cron.d.ts +125 -0
  114. package/dist/services/cron.d.ts.map +1 -0
  115. package/dist/services/cron.js +613 -0
  116. package/dist/services/cron.js.map +1 -0
  117. package/dist/services/directory.d.ts +106 -0
  118. package/dist/services/directory.d.ts.map +1 -0
  119. package/dist/services/directory.js +351 -0
  120. package/dist/services/directory.js.map +1 -0
  121. package/dist/services/email.d.ts +112 -0
  122. package/dist/services/email.d.ts.map +1 -0
  123. package/dist/services/email.js +772 -0
  124. package/dist/services/email.js.map +1 -0
  125. package/dist/services/hosted-profiles.d.ts +77 -0
  126. package/dist/services/hosted-profiles.d.ts.map +1 -0
  127. package/dist/services/hosted-profiles.js +433 -0
  128. package/dist/services/hosted-profiles.js.map +1 -0
  129. package/dist/services/latency.d.ts +67 -0
  130. package/dist/services/latency.d.ts.map +1 -0
  131. package/dist/services/latency.js +274 -0
  132. package/dist/services/latency.js.map +1 -0
  133. package/dist/services/manifest-compliance.d.ts +64 -0
  134. package/dist/services/manifest-compliance.d.ts.map +1 -0
  135. package/dist/services/manifest-compliance.js +271 -0
  136. package/dist/services/manifest-compliance.js.map +1 -0
  137. package/dist/services/monitoring-diff.d.ts +31 -0
  138. package/dist/services/monitoring-diff.d.ts.map +1 -0
  139. package/dist/services/monitoring-diff.js +189 -0
  140. package/dist/services/monitoring-diff.js.map +1 -0
  141. package/dist/services/notifications.d.ts +46 -0
  142. package/dist/services/notifications.d.ts.map +1 -0
  143. package/dist/services/notifications.js +88 -0
  144. package/dist/services/notifications.js.map +1 -0
  145. package/dist/services/stripe.d.ts +93 -0
  146. package/dist/services/stripe.d.ts.map +1 -0
  147. package/dist/services/stripe.js +490 -0
  148. package/dist/services/stripe.js.map +1 -0
  149. package/dist/services/validation-history.d.ts +99 -0
  150. package/dist/services/validation-history.d.ts.map +1 -0
  151. package/dist/services/validation-history.js +344 -0
  152. package/dist/services/validation-history.js.map +1 -0
  153. package/dist/services/validation-logging.d.ts +103 -0
  154. package/dist/services/validation-logging.d.ts.map +1 -0
  155. package/dist/services/validation-logging.js +210 -0
  156. package/dist/services/validation-logging.js.map +1 -0
  157. package/dist/services/validation.d.ts +119 -0
  158. package/dist/services/validation.d.ts.map +1 -0
  159. package/dist/services/validation.js +1185 -0
  160. package/dist/services/validation.js.map +1 -0
  161. package/dist/simulator/agent-simulator.d.ts +69 -0
  162. package/dist/simulator/agent-simulator.d.ts.map +1 -0
  163. package/dist/simulator/agent-simulator.js +870 -0
  164. package/dist/simulator/agent-simulator.js.map +1 -0
  165. package/{src/simulator/index.ts → dist/simulator/index.d.ts} +7 -7
  166. package/dist/simulator/index.d.ts.map +1 -0
  167. package/dist/simulator/index.js +23 -0
  168. package/dist/simulator/index.js.map +1 -0
  169. package/{src/simulator/types.ts → dist/simulator/types.d.ts} +171 -170
  170. package/dist/simulator/types.d.ts.map +1 -0
  171. package/dist/simulator/types.js +18 -0
  172. package/dist/simulator/types.js.map +1 -0
  173. package/dist/types/acp-validation.d.ts +87 -0
  174. package/dist/types/acp-validation.d.ts.map +1 -0
  175. package/dist/types/acp-validation.js +40 -0
  176. package/dist/types/acp-validation.js.map +1 -0
  177. package/dist/types/analytics.d.ts +182 -0
  178. package/dist/types/analytics.d.ts.map +1 -0
  179. package/dist/types/analytics.js +7 -0
  180. package/dist/types/analytics.js.map +1 -0
  181. package/dist/types/generator.d.ts +106 -0
  182. package/dist/types/generator.d.ts.map +1 -0
  183. package/dist/types/generator.js +6 -0
  184. package/dist/types/generator.js.map +1 -0
  185. package/{src/types/index.ts → dist/types/index.d.ts} +1 -1
  186. package/dist/types/index.d.ts.map +1 -0
  187. package/dist/types/index.js +23 -0
  188. package/dist/types/index.js.map +1 -0
  189. package/dist/types/ucp-profile.d.ts +111 -0
  190. package/dist/types/ucp-profile.d.ts.map +1 -0
  191. package/dist/types/ucp-profile.js +45 -0
  192. package/dist/types/ucp-profile.js.map +1 -0
  193. package/dist/types/validation.d.ts +76 -0
  194. package/dist/types/validation.d.ts.map +1 -0
  195. package/dist/types/validation.js +42 -0
  196. package/dist/types/validation.js.map +1 -0
  197. package/dist/validator/acp/index.d.ts +31 -0
  198. package/dist/validator/acp/index.d.ts.map +1 -0
  199. package/dist/validator/acp/index.js +574 -0
  200. package/dist/validator/acp/index.js.map +1 -0
  201. package/dist/validator/index.d.ts +26 -0
  202. package/dist/validator/index.d.ts.map +1 -0
  203. package/dist/validator/index.js +161 -0
  204. package/dist/validator/index.js.map +1 -0
  205. package/dist/validator/network-validator.d.ts +28 -0
  206. package/dist/validator/network-validator.d.ts.map +1 -0
  207. package/dist/validator/network-validator.js +319 -0
  208. package/dist/validator/network-validator.js.map +1 -0
  209. package/dist/validator/rules-validator.d.ts +19 -0
  210. package/dist/validator/rules-validator.d.ts.map +1 -0
  211. package/dist/validator/rules-validator.js +306 -0
  212. package/dist/validator/rules-validator.js.map +1 -0
  213. package/dist/validator/sdk-validator.d.ts +58 -0
  214. package/dist/validator/sdk-validator.d.ts.map +1 -0
  215. package/{src/validator/sdk-validator.ts → dist/validator/sdk-validator.js} +273 -330
  216. package/dist/validator/sdk-validator.js.map +1 -0
  217. package/dist/validator/structural-validator.d.ts +11 -0
  218. package/dist/validator/structural-validator.d.ts.map +1 -0
  219. package/dist/validator/structural-validator.js +549 -0
  220. package/dist/validator/structural-validator.js.map +1 -0
  221. package/dist/validator/utils.d.ts +51 -0
  222. package/dist/validator/utils.d.ts.map +1 -0
  223. package/dist/validator/utils.js +132 -0
  224. package/dist/validator/utils.js.map +1 -0
  225. package/package.json +44 -12
  226. package/CLAUDE.md +0 -109
  227. package/api/analyze-feed.js +0 -140
  228. package/api/badge.js +0 -185
  229. package/api/benchmark.js +0 -177
  230. package/api/directory-stats.ts +0 -29
  231. package/api/directory.ts +0 -73
  232. package/api/generate-compliance.js +0 -143
  233. package/api/generate-schema.js +0 -457
  234. package/api/generate.js +0 -132
  235. package/api/security-scan.js +0 -133
  236. package/api/simulate.js +0 -187
  237. package/api/tsconfig.json +0 -10
  238. package/api/validate.js +0 -1351
  239. package/apify-actor/.actor/actor.json +0 -68
  240. package/apify-actor/.actor/input_schema.json +0 -32
  241. package/apify-actor/APIFY-STORE-LISTING.md +0 -412
  242. package/apify-actor/Dockerfile +0 -8
  243. package/apify-actor/README.md +0 -166
  244. package/apify-actor/main.ts +0 -111
  245. package/apify-actor/package.json +0 -17
  246. package/apify-actor/src/main.js +0 -199
  247. package/docs/BRAND-IDENTITY.md +0 -238
  248. package/docs/BRAND-STYLE-GUIDE.md +0 -356
  249. package/drizzle/0000_black_king_cobra.sql +0 -39
  250. package/drizzle/meta/0000_snapshot.json +0 -309
  251. package/drizzle/meta/_journal.json +0 -13
  252. package/drizzle.config.ts +0 -10
  253. package/public/.well-known/ucp +0 -25
  254. package/public/android-chrome-192x192.png +0 -0
  255. package/public/android-chrome-512x512.png +0 -0
  256. package/public/apple-touch-icon.png +0 -0
  257. package/public/brand.css +0 -321
  258. package/public/directory.html +0 -701
  259. package/public/favicon-16x16.png +0 -0
  260. package/public/favicon-32x32.png +0 -0
  261. package/public/favicon.ico +0 -0
  262. package/public/guides/bigcommerce.html +0 -743
  263. package/public/guides/fastucp.html +0 -838
  264. package/public/guides/magento.html +0 -779
  265. package/public/guides/shopify.html +0 -726
  266. package/public/guides/squarespace.html +0 -749
  267. package/public/guides/wix.html +0 -747
  268. package/public/guides/woocommerce.html +0 -733
  269. package/public/index.html +0 -3835
  270. package/public/learn.html +0 -396
  271. package/public/logo.jpeg +0 -0
  272. package/public/og-image-icon.png +0 -0
  273. package/public/og-image.png +0 -0
  274. package/public/robots.txt +0 -6
  275. package/public/site.webmanifest +0 -31
  276. package/public/sitemap.xml +0 -69
  277. package/public/social/linkedin-banner-1128x191.png +0 -0
  278. package/public/social/temp.PNG +0 -0
  279. package/public/social/x-header-1500x500.png +0 -0
  280. package/public/verify.html +0 -410
  281. package/scripts/generate-favicons.js +0 -44
  282. package/scripts/generate-ico.js +0 -23
  283. package/scripts/generate-og-image.js +0 -45
  284. package/scripts/reset-db.ts +0 -77
  285. package/scripts/seed-db.ts +0 -71
  286. package/scripts/setup-benchmark-db.js +0 -70
  287. package/src/api/server.ts +0 -266
  288. package/src/cli/index.ts +0 -302
  289. package/src/compliance/compliance-generator.ts +0 -452
  290. package/src/compliance/index.ts +0 -28
  291. package/src/compliance/types.ts +0 -170
  292. package/src/db/index.ts +0 -28
  293. package/src/db/schema.ts +0 -84
  294. package/src/feed-analyzer/index.ts +0 -34
  295. package/src/feed-analyzer/types.ts +0 -354
  296. package/src/generator/key-generator.ts +0 -124
  297. package/src/generator/profile-builder.ts +0 -402
  298. package/src/index.ts +0 -105
  299. package/src/security/security-scanner.ts +0 -604
  300. package/src/security/types.ts +0 -55
  301. package/src/services/directory.ts +0 -434
  302. package/src/simulator/agent-simulator.ts +0 -941
  303. package/src/types/generator.ts +0 -140
  304. package/src/types/ucp-profile.ts +0 -140
  305. package/src/types/validation.ts +0 -89
  306. package/src/validator/index.ts +0 -194
  307. package/src/validator/network-validator.ts +0 -417
  308. package/src/validator/rules-validator.ts +0 -297
  309. package/src/validator/structural-validator.ts +0 -476
  310. package/tests/fixtures/non-compliant-profile.json +0 -25
  311. package/tests/fixtures/official-sample-profile.json +0 -75
  312. package/tests/integration/benchmark.test.ts +0 -207
  313. package/tests/integration/database.test.ts +0 -163
  314. package/tests/integration/directory-api.test.ts +0 -268
  315. package/tests/integration/simulate-api.test.ts +0 -230
  316. package/tests/integration/validate-api.test.ts +0 -269
  317. package/tests/setup.ts +0 -15
  318. package/tests/unit/agent-simulator.test.ts +0 -575
  319. package/tests/unit/compliance-generator.test.ts +0 -374
  320. package/tests/unit/directory-service.test.ts +0 -272
  321. package/tests/unit/feed-analyzer.test.ts +0 -517
  322. package/tests/unit/lint-suggestions.test.ts +0 -423
  323. package/tests/unit/official-samples.test.ts +0 -211
  324. package/tests/unit/pdf-report.test.ts +0 -390
  325. package/tests/unit/sdk-validator.test.ts +0 -531
  326. package/tests/unit/security-scanner.test.ts +0 -410
  327. package/tests/unit/validation.test.ts +0 -390
  328. package/tsconfig.json +0 -20
  329. package/vercel.json +0 -34
  330. package/vitest.config.ts +0 -22
package/dist/index.js ADDED
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * UCP Profile Manager
4
+ * Generate, validate, and host UCP Business Profiles
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.GRADE_THRESHOLDS = exports.CATEGORY_WEIGHTS = exports.VALID_AVAILABILITY_VALUES = exports.QUALITY_CHECKS = exports.validateGtin = exports.extractProductsFromHtml = exports.analyzeProduct = exports.analyzeProductFeedFromHtml = exports.analyzeProductFeed = exports.LAWFUL_BASIS_DESCRIPTIONS = exports.REGION_NAMES = exports.AI_PLATFORM_PROCESSORS = exports.getAiPlatformOptions = exports.getLawfulBasisOptions = exports.getAvailableRegions = exports.generateComplianceDocuments = exports.SecurityCheckIds = exports.scanEndpointSecurity = exports.generateHostingArtifacts = exports.simulatePaymentReadiness = exports.simulateCheckoutFlow = exports.simulateRestApi = exports.inspectServices = exports.inspectCapabilities = exports.simulateDiscoveryFlow = exports.simulateAgentInteraction = exports.clearSchemaCache = exports.validateNetwork = exports.validateRules = exports.validateStructure = exports.validateJsonString = exports.validateQuick = exports.validateRemote = exports.validateProfile = exports.validatePublicKey = exports.generateSigningKeyPair = exports.generateMinimalProfile = exports.buildProfile = void 0;
24
+ // Types
25
+ __exportStar(require("./types/index.js"), exports);
26
+ // Generator
27
+ var index_js_1 = require("./generator/index.js");
28
+ Object.defineProperty(exports, "buildProfile", { enumerable: true, get: function () { return index_js_1.buildProfile; } });
29
+ Object.defineProperty(exports, "generateMinimalProfile", { enumerable: true, get: function () { return index_js_1.generateMinimalProfile; } });
30
+ Object.defineProperty(exports, "generateSigningKeyPair", { enumerable: true, get: function () { return index_js_1.generateSigningKeyPair; } });
31
+ Object.defineProperty(exports, "validatePublicKey", { enumerable: true, get: function () { return index_js_1.validatePublicKey; } });
32
+ // Validator
33
+ var index_js_2 = require("./validator/index.js");
34
+ Object.defineProperty(exports, "validateProfile", { enumerable: true, get: function () { return index_js_2.validateProfile; } });
35
+ Object.defineProperty(exports, "validateRemote", { enumerable: true, get: function () { return index_js_2.validateRemote; } });
36
+ Object.defineProperty(exports, "validateQuick", { enumerable: true, get: function () { return index_js_2.validateQuick; } });
37
+ Object.defineProperty(exports, "validateJsonString", { enumerable: true, get: function () { return index_js_2.validateJsonString; } });
38
+ Object.defineProperty(exports, "validateStructure", { enumerable: true, get: function () { return index_js_2.validateStructure; } });
39
+ Object.defineProperty(exports, "validateRules", { enumerable: true, get: function () { return index_js_2.validateRules; } });
40
+ Object.defineProperty(exports, "validateNetwork", { enumerable: true, get: function () { return index_js_2.validateNetwork; } });
41
+ Object.defineProperty(exports, "clearSchemaCache", { enumerable: true, get: function () { return index_js_2.clearSchemaCache; } });
42
+ // Simulator
43
+ var index_js_3 = require("./simulator/index.js");
44
+ Object.defineProperty(exports, "simulateAgentInteraction", { enumerable: true, get: function () { return index_js_3.simulateAgentInteraction; } });
45
+ Object.defineProperty(exports, "simulateDiscoveryFlow", { enumerable: true, get: function () { return index_js_3.simulateDiscoveryFlow; } });
46
+ Object.defineProperty(exports, "inspectCapabilities", { enumerable: true, get: function () { return index_js_3.inspectCapabilities; } });
47
+ Object.defineProperty(exports, "inspectServices", { enumerable: true, get: function () { return index_js_3.inspectServices; } });
48
+ Object.defineProperty(exports, "simulateRestApi", { enumerable: true, get: function () { return index_js_3.simulateRestApi; } });
49
+ Object.defineProperty(exports, "simulateCheckoutFlow", { enumerable: true, get: function () { return index_js_3.simulateCheckoutFlow; } });
50
+ Object.defineProperty(exports, "simulatePaymentReadiness", { enumerable: true, get: function () { return index_js_3.simulatePaymentReadiness; } });
51
+ // Hosting
52
+ var index_js_4 = require("./hosting/index.js");
53
+ Object.defineProperty(exports, "generateHostingArtifacts", { enumerable: true, get: function () { return index_js_4.generateHostingArtifacts; } });
54
+ // Security Scanner
55
+ var index_js_5 = require("./security/index.js");
56
+ Object.defineProperty(exports, "scanEndpointSecurity", { enumerable: true, get: function () { return index_js_5.scanEndpointSecurity; } });
57
+ Object.defineProperty(exports, "SecurityCheckIds", { enumerable: true, get: function () { return index_js_5.SecurityCheckIds; } });
58
+ // Compliance Generator
59
+ var index_js_6 = require("./compliance/index.js");
60
+ Object.defineProperty(exports, "generateComplianceDocuments", { enumerable: true, get: function () { return index_js_6.generateComplianceDocuments; } });
61
+ Object.defineProperty(exports, "getAvailableRegions", { enumerable: true, get: function () { return index_js_6.getAvailableRegions; } });
62
+ Object.defineProperty(exports, "getLawfulBasisOptions", { enumerable: true, get: function () { return index_js_6.getLawfulBasisOptions; } });
63
+ Object.defineProperty(exports, "getAiPlatformOptions", { enumerable: true, get: function () { return index_js_6.getAiPlatformOptions; } });
64
+ Object.defineProperty(exports, "AI_PLATFORM_PROCESSORS", { enumerable: true, get: function () { return index_js_6.AI_PLATFORM_PROCESSORS; } });
65
+ Object.defineProperty(exports, "REGION_NAMES", { enumerable: true, get: function () { return index_js_6.REGION_NAMES; } });
66
+ Object.defineProperty(exports, "LAWFUL_BASIS_DESCRIPTIONS", { enumerable: true, get: function () { return index_js_6.LAWFUL_BASIS_DESCRIPTIONS; } });
67
+ // Feed Analyzer
68
+ var index_js_7 = require("./feed-analyzer/index.js");
69
+ Object.defineProperty(exports, "analyzeProductFeed", { enumerable: true, get: function () { return index_js_7.analyzeProductFeed; } });
70
+ Object.defineProperty(exports, "analyzeProductFeedFromHtml", { enumerable: true, get: function () { return index_js_7.analyzeProductFeedFromHtml; } });
71
+ Object.defineProperty(exports, "analyzeProduct", { enumerable: true, get: function () { return index_js_7.analyzeProduct; } });
72
+ Object.defineProperty(exports, "extractProductsFromHtml", { enumerable: true, get: function () { return index_js_7.extractProductsFromHtml; } });
73
+ Object.defineProperty(exports, "validateGtin", { enumerable: true, get: function () { return index_js_7.validateGtin; } });
74
+ Object.defineProperty(exports, "QUALITY_CHECKS", { enumerable: true, get: function () { return index_js_7.QUALITY_CHECKS; } });
75
+ Object.defineProperty(exports, "VALID_AVAILABILITY_VALUES", { enumerable: true, get: function () { return index_js_7.VALID_AVAILABILITY_VALUES; } });
76
+ Object.defineProperty(exports, "CATEGORY_WEIGHTS", { enumerable: true, get: function () { return index_js_7.CATEGORY_WEIGHTS; } });
77
+ Object.defineProperty(exports, "GRADE_THRESHOLDS", { enumerable: true, get: function () { return index_js_7.GRADE_THRESHOLDS; } });
78
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,QAAQ;AACR,mDAAiC;AAEjC,YAAY;AACZ,iDAK8B;AAJ5B,wGAAA,YAAY,OAAA;AACZ,kHAAA,sBAAsB,OAAA;AACtB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AAGnB,YAAY;AACZ,iDAS8B;AAR5B,2GAAA,eAAe,OAAA;AACf,0GAAA,cAAc,OAAA;AACd,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAGlB,YAAY;AACZ,iDAQ8B;AAP5B,oHAAA,wBAAwB,OAAA;AACxB,iHAAA,qBAAqB,OAAA;AACrB,+GAAA,mBAAmB,OAAA;AACnB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AACpB,oHAAA,wBAAwB,OAAA;AAG1B,UAAU;AACV,+CAA8D;AAArD,oHAAA,wBAAwB,OAAA;AAEjC,mBAAmB;AACnB,gDAG6B;AAF3B,gHAAA,oBAAoB,OAAA;AACpB,4GAAA,gBAAgB,OAAA;AAWlB,uBAAuB;AACvB,kDAQ+B;AAP7B,uHAAA,2BAA2B,OAAA;AAC3B,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,gHAAA,oBAAoB,OAAA;AACpB,kHAAA,sBAAsB,OAAA;AACtB,wGAAA,YAAY,OAAA;AACZ,qHAAA,yBAAyB,OAAA;AAa3B,gBAAgB;AAChB,qDAUkC;AAThC,8GAAA,kBAAkB,OAAA;AAClB,sHAAA,0BAA0B,OAAA;AAC1B,0GAAA,cAAc,OAAA;AACd,mHAAA,uBAAuB,OAAA;AACvB,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,qHAAA,yBAAyB,OAAA;AACzB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA"}
@@ -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":"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"}