@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
@@ -0,0 +1,8 @@
1
+ /**
2
+ * GDPR/Privacy Compliance Generator Module
3
+ * Generates privacy policy addendums and consent language for agentic commerce
4
+ */
5
+ export { generateComplianceDocuments, getAvailableRegions, getLawfulBasisOptions, getAiPlatformOptions, } from './compliance-generator.js';
6
+ export type { ComplianceRegion, LawfulBasis, AgentPlatform, ComplianceGeneratorInput, ComplianceGeneratorOutput, ComplianceDocument, ComplianceSection, DataProcessor, } from './types.js';
7
+ export { AI_PLATFORM_PROCESSORS, REGION_NAMES, LAWFUL_BASIS_DESCRIPTIONS, } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * GDPR/Privacy Compliance Generator Module
4
+ * Generates privacy policy addendums and consent language for agentic commerce
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.LAWFUL_BASIS_DESCRIPTIONS = exports.REGION_NAMES = exports.AI_PLATFORM_PROCESSORS = exports.getAiPlatformOptions = exports.getLawfulBasisOptions = exports.getAvailableRegions = exports.generateComplianceDocuments = void 0;
8
+ var compliance_generator_js_1 = require("./compliance-generator.js");
9
+ Object.defineProperty(exports, "generateComplianceDocuments", { enumerable: true, get: function () { return compliance_generator_js_1.generateComplianceDocuments; } });
10
+ Object.defineProperty(exports, "getAvailableRegions", { enumerable: true, get: function () { return compliance_generator_js_1.getAvailableRegions; } });
11
+ Object.defineProperty(exports, "getLawfulBasisOptions", { enumerable: true, get: function () { return compliance_generator_js_1.getLawfulBasisOptions; } });
12
+ Object.defineProperty(exports, "getAiPlatformOptions", { enumerable: true, get: function () { return compliance_generator_js_1.getAiPlatformOptions; } });
13
+ var types_js_1 = require("./types.js");
14
+ Object.defineProperty(exports, "AI_PLATFORM_PROCESSORS", { enumerable: true, get: function () { return types_js_1.AI_PLATFORM_PROCESSORS; } });
15
+ Object.defineProperty(exports, "REGION_NAMES", { enumerable: true, get: function () { return types_js_1.REGION_NAMES; } });
16
+ Object.defineProperty(exports, "LAWFUL_BASIS_DESCRIPTIONS", { enumerable: true, get: function () { return types_js_1.LAWFUL_BASIS_DESCRIPTIONS; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qEAKmC;AAJjC,sIAAA,2BAA2B,OAAA;AAC3B,8HAAA,mBAAmB,OAAA;AACnB,gIAAA,qBAAqB,OAAA;AACrB,+HAAA,oBAAoB,OAAA;AActB,uCAIoB;AAHlB,kHAAA,sBAAsB,OAAA;AACtB,wGAAA,YAAY,OAAA;AACZ,qHAAA,yBAAyB,OAAA"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * GDPR/Privacy Compliance Templates
3
+ * Template content for privacy policy addendums and consent language
4
+ */
5
+ import type { ComplianceRegion, LawfulBasis, DataProcessor } from './types.js';
6
+ /**
7
+ * Generate the AI Commerce privacy policy section
8
+ */
9
+ export declare function generateAiCommerceSection(companyName: string, platforms: DataProcessor[], lawfulBasis: LawfulBasis, regions: ComplianceRegion[]): string;
10
+ /**
11
+ * Generate data processor disclosures
12
+ */
13
+ export declare function generateProcessorDisclosures(processors: DataProcessor[], regions: ComplianceRegion[]): string;
14
+ /**
15
+ * Generate consent language for checkout
16
+ */
17
+ export declare function generateConsentLanguage(companyName: string, lawfulBasis: LawfulBasis, includeMarketing: boolean): string;
18
+ /**
19
+ * Generate marketing opt-in text
20
+ */
21
+ export declare function generateMarketingOptIn(companyName: string): string;
22
+ /**
23
+ * Generate data subject rights notice
24
+ */
25
+ export declare function generateDataSubjectRights(companyName: string, contactEmail: string, dpoEmail: string | undefined, regions: ComplianceRegion[]): string;
26
+ /**
27
+ * Generate tracking/cookie notice for agent transactions
28
+ */
29
+ export declare function generateTrackingNotice(companyName: string, regions: ComplianceRegion[]): string;
30
+ /**
31
+ * Generate the legal disclaimer
32
+ */
33
+ export declare function generateDisclaimer(): string;
34
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/compliance/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/E;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,aAAa,EAAE,EAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,MAAM,CAyDR;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,aAAa,EAAE,EAC3B,OAAO,EAAE,gBAAgB,EAAE,GAC1B,MAAM,CA+BR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,OAAO,GACxB,MAAM,CAyCR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAuBlE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,gBAAgB,EAAE,GAC1B,MAAM,CA4DR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,MAAM,CAgDR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAgB3C"}
@@ -1,24 +1,24 @@
1
- /**
2
- * GDPR/Privacy Compliance Templates
3
- * Template content for privacy policy addendums and consent language
4
- */
5
-
6
- import type { ComplianceRegion, LawfulBasis, DataProcessor } from './types.js';
7
- import { LAWFUL_BASIS_DESCRIPTIONS, AI_PLATFORM_PROCESSORS } from './types.js';
8
-
9
- /**
10
- * Generate the AI Commerce privacy policy section
11
- */
12
- export function generateAiCommerceSection(
13
- companyName: string,
14
- platforms: DataProcessor[],
15
- lawfulBasis: LawfulBasis,
16
- regions: ComplianceRegion[]
17
- ): string {
18
- const basisInfo = LAWFUL_BASIS_DESCRIPTIONS[lawfulBasis];
19
- const platformList = platforms.map(p => p.name).join(', ');
20
-
21
- let section = `## AI-Powered Shopping and Agentic Commerce
1
+ "use strict";
2
+ /**
3
+ * GDPR/Privacy Compliance Templates
4
+ * Template content for privacy policy addendums and consent language
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.generateAiCommerceSection = generateAiCommerceSection;
8
+ exports.generateProcessorDisclosures = generateProcessorDisclosures;
9
+ exports.generateConsentLanguage = generateConsentLanguage;
10
+ exports.generateMarketingOptIn = generateMarketingOptIn;
11
+ exports.generateDataSubjectRights = generateDataSubjectRights;
12
+ exports.generateTrackingNotice = generateTrackingNotice;
13
+ exports.generateDisclaimer = generateDisclaimer;
14
+ const types_js_1 = require("./types.js");
15
+ /**
16
+ * Generate the AI Commerce privacy policy section
17
+ */
18
+ function generateAiCommerceSection(companyName, platforms, lawfulBasis, regions) {
19
+ const basisInfo = types_js_1.LAWFUL_BASIS_DESCRIPTIONS[lawfulBasis];
20
+ const platformList = platforms.map(p => p.name).join(', ');
21
+ let section = `## AI-Powered Shopping and Agentic Commerce
22
22
 
23
23
  ### How We Use AI Shopping Agents
24
24
 
@@ -43,21 +43,19 @@ When you make a purchase through an AI shopping agent, we may collect:
43
43
  - Payment confirmation (we do not receive full payment card details)
44
44
  - Transaction identifiers for order tracking
45
45
  - Communication preferences
46
- `;
47
-
48
- if (regions.includes('eu') || regions.includes('uk')) {
49
- section += `
46
+ `;
47
+ if (regions.includes('eu') || regions.includes('uk')) {
48
+ section += `
50
49
  ### International Data Transfers
51
50
 
52
51
  Some AI agent providers are based outside the European Economic Area (EEA) or United Kingdom. When your data is transferred to these providers, it is protected by:
53
52
  - Standard Contractual Clauses (SCCs) approved by the European Commission
54
53
  - The provider's certification under applicable data protection frameworks
55
54
  - Additional technical and organizational security measures
56
- `;
57
- }
58
-
59
- if (regions.includes('california')) {
60
- section += `
55
+ `;
56
+ }
57
+ if (regions.includes('california')) {
58
+ section += `
61
59
  ### California Privacy Rights (CCPA/CPRA)
62
60
 
63
61
  California residents have additional rights regarding personal information collected through AI shopping agents:
@@ -67,60 +65,46 @@ California residents have additional rights regarding personal information colle
67
65
  - **Right to Non-Discrimination**: We will not discriminate against you for exercising your privacy rights
68
66
 
69
67
  To exercise these rights, contact us at the email address provided below.
70
- `;
71
- }
72
-
73
- return section;
74
- }
75
-
76
- /**
77
- * Generate data processor disclosures
78
- */
79
- export function generateProcessorDisclosures(
80
- processors: DataProcessor[],
81
- regions: ComplianceRegion[]
82
- ): string {
83
- let disclosure = `## Third-Party Data Processors (AI Commerce)
68
+ `;
69
+ }
70
+ return section;
71
+ }
72
+ /**
73
+ * Generate data processor disclosures
74
+ */
75
+ function generateProcessorDisclosures(processors, regions) {
76
+ let disclosure = `## Third-Party Data Processors (AI Commerce)
84
77
 
85
78
  We work with the following third-party service providers to enable AI-powered shopping:
86
79
 
87
80
  | Provider | Purpose | Location | Privacy Policy |
88
81
  |----------|---------|----------|----------------|
89
- `;
90
-
91
- for (const processor of processors) {
92
- const privacyLink = processor.privacyPolicyUrl
93
- ? `[View Policy](${processor.privacyPolicyUrl})`
94
- : 'Contact provider';
95
- disclosure += `| ${processor.name} | ${processor.purpose} | ${processor.country || 'Various'} | ${privacyLink} |\n`;
96
- }
97
-
98
- disclosure += `
82
+ `;
83
+ for (const processor of processors) {
84
+ const privacyLink = processor.privacyPolicyUrl
85
+ ? `[View Policy](${processor.privacyPolicyUrl})`
86
+ : 'Contact provider';
87
+ disclosure += `| ${processor.name} | ${processor.purpose} | ${processor.country || 'Various'} | ${privacyLink} |\n`;
88
+ }
89
+ disclosure += `
99
90
  These processors are contractually bound to:
100
91
  - Process data only on our documented instructions
101
92
  - Ensure appropriate security measures are in place
102
93
  - Assist us in responding to data subject requests
103
94
  - Delete or return all personal data at the end of the service relationship
104
- `;
105
-
106
- if (regions.includes('eu') || regions.includes('uk')) {
107
- disclosure += `
95
+ `;
96
+ if (regions.includes('eu') || regions.includes('uk')) {
97
+ disclosure += `
108
98
  All processors have entered into Data Processing Agreements (DPAs) that comply with Article 28 of the GDPR.
109
- `;
110
- }
111
-
112
- return disclosure;
113
- }
114
-
115
- /**
116
- * Generate consent language for checkout
117
- */
118
- export function generateConsentLanguage(
119
- companyName: string,
120
- lawfulBasis: LawfulBasis,
121
- includeMarketing: boolean
122
- ): string {
123
- let consent = `## Consent Language for AI-Assisted Checkout
99
+ `;
100
+ }
101
+ return disclosure;
102
+ }
103
+ /**
104
+ * Generate consent language for checkout
105
+ */
106
+ function generateConsentLanguage(companyName, lawfulBasis, includeMarketing) {
107
+ let consent = `## Consent Language for AI-Assisted Checkout
124
108
 
125
109
  Use the following language at checkout or in order confirmations:
126
110
 
@@ -130,18 +114,16 @@ Use the following language at checkout or in order confirmations:
130
114
  > - Your order information will be processed by ${companyName} and the AI platform provider
131
115
  > - We will use your data to fulfill your order, process payment, and provide customer support
132
116
  > - Your data will be handled in accordance with our Privacy Policy
133
- `;
134
-
135
- if (lawfulBasis === 'consent') {
136
- consent += `
117
+ `;
118
+ if (lawfulBasis === 'consent') {
119
+ consent += `
137
120
  ### Explicit Consent (for consent-based processing)
138
121
 
139
122
  > [ ] I consent to ${companyName} processing my personal data for the purpose of completing this purchase and providing related services. I understand I can withdraw my consent at any time.
140
- `;
141
- }
142
-
143
- if (includeMarketing) {
144
- consent += `
123
+ `;
124
+ }
125
+ if (includeMarketing) {
126
+ consent += `
145
127
  ### Marketing Consent (Optional)
146
128
 
147
129
  > [ ] I would like to receive marketing communications from ${companyName} about products, offers, and updates. I understand I can unsubscribe at any time.
@@ -150,23 +132,20 @@ Use the following language at checkout or in order confirmations:
150
132
  - Freely given (not a condition of purchase)
151
133
  - Specific and informed
152
134
  - Indicated by clear affirmative action (pre-ticked boxes are not valid consent)
153
- `;
154
- }
155
-
156
- consent += `
135
+ `;
136
+ }
137
+ consent += `
157
138
  ### Agent-Originated Orders Notice
158
139
 
159
140
  > This order was initiated through an AI shopping assistant. The AI platform may retain conversation history in accordance with their privacy policy. Your transaction data with ${companyName} is subject to our Privacy Policy.
160
- `;
161
-
162
- return consent;
163
- }
164
-
165
- /**
166
- * Generate marketing opt-in text
167
- */
168
- export function generateMarketingOptIn(companyName: string): string {
169
- return `## Marketing Opt-In for Agent-Acquired Customers
141
+ `;
142
+ return consent;
143
+ }
144
+ /**
145
+ * Generate marketing opt-in text
146
+ */
147
+ function generateMarketingOptIn(companyName) {
148
+ return `## Marketing Opt-In for Agent-Acquired Customers
170
149
 
171
150
  For customers acquired through AI shopping agents, use the following opt-in language:
172
151
 
@@ -187,19 +166,13 @@ For customers who made purchases via AI agents without opting in, you may send O
187
166
  > [Subscribe to Updates] [No Thanks]
188
167
 
189
168
  **Important**: Do not add customers to marketing lists without explicit consent. Agent-originated orders do not imply marketing permission.
190
- `;
191
- }
192
-
193
- /**
194
- * Generate data subject rights notice
195
- */
196
- export function generateDataSubjectRights(
197
- companyName: string,
198
- contactEmail: string,
199
- dpoEmail: string | undefined,
200
- regions: ComplianceRegion[]
201
- ): string {
202
- let rights = `## Your Data Rights (AI Commerce Transactions)
169
+ `;
170
+ }
171
+ /**
172
+ * Generate data subject rights notice
173
+ */
174
+ function generateDataSubjectRights(companyName, contactEmail, dpoEmail, regions) {
175
+ let rights = `## Your Data Rights (AI Commerce Transactions)
203
176
 
204
177
  You have the following rights regarding personal data collected through AI-assisted purchases:
205
178
 
@@ -214,31 +187,28 @@ You have the following rights regarding personal data collected through AI-assis
214
187
  ### Objection and Restriction
215
188
  - Object to processing based on legitimate interests
216
189
  - Request restriction of processing in certain circumstances
217
- `;
218
-
219
- if (regions.includes('eu') || regions.includes('uk')) {
220
- rights += `
190
+ `;
191
+ if (regions.includes('eu') || regions.includes('uk')) {
192
+ rights += `
221
193
  ### GDPR-Specific Rights
222
194
  - **Right to be Forgotten**: Request erasure under Article 17
223
195
  - **Right to Restrict Processing**: Under Article 18
224
196
  - **Right to Data Portability**: Under Article 20
225
197
  - **Right to Object**: Under Article 21
226
198
  - **Lodge a Complaint**: With your local data protection authority
227
- `;
228
- }
229
-
230
- if (regions.includes('california')) {
231
- rights += `
199
+ `;
200
+ }
201
+ if (regions.includes('california')) {
202
+ rights += `
232
203
  ### CCPA/CPRA Rights
233
204
  - **Right to Know**: Categories and specific pieces of personal information collected
234
205
  - **Right to Delete**: Request deletion of personal information
235
206
  - **Right to Correct**: Request correction of inaccurate information
236
207
  - **Right to Opt-Out**: Of sale or sharing of personal information
237
208
  - **Right to Limit Use**: Of sensitive personal information
238
- `;
239
- }
240
-
241
- rights += `
209
+ `;
210
+ }
211
+ rights += `
242
212
  ### How to Exercise Your Rights
243
213
 
244
214
  To exercise any of these rights, contact us:
@@ -255,19 +225,14 @@ To protect your privacy, we may need to verify your identity before processing y
255
225
  - Order number or transaction ID
256
226
  - Email address used for the order
257
227
  - Delivery address associated with the order
258
- `;
259
-
260
- return rights;
261
- }
262
-
263
- /**
264
- * Generate tracking/cookie notice for agent transactions
265
- */
266
- export function generateTrackingNotice(
267
- companyName: string,
268
- regions: ComplianceRegion[]
269
- ): string {
270
- let notice = `## Tracking and Cookies for AI Agent Transactions
228
+ `;
229
+ return rights;
230
+ }
231
+ /**
232
+ * Generate tracking/cookie notice for agent transactions
233
+ */
234
+ function generateTrackingNotice(companyName, regions) {
235
+ let notice = `## Tracking and Cookies for AI Agent Transactions
271
236
 
272
237
  ### How Tracking Works with AI Agents
273
238
 
@@ -288,10 +253,9 @@ For AI agent transactions, we collect data through:
288
253
  - We do **not** place cookies on your device through AI agent transactions
289
254
  - We do **not** build behavioral profiles based solely on AI agent purchases
290
255
  - We **do** collect necessary transaction data to fulfill your order
291
- `;
292
-
293
- if (regions.includes('eu') || regions.includes('uk')) {
294
- notice += `
256
+ `;
257
+ if (regions.includes('eu') || regions.includes('uk')) {
258
+ notice += `
295
259
  ### ePrivacy Compliance
296
260
 
297
261
  AI agent transactions are processed under:
@@ -299,10 +263,9 @@ AI agent transactions are processed under:
299
263
  - **Contract Performance**: Data processing necessary to deliver your order
300
264
 
301
265
  No consent is required for strictly necessary processing of transaction data.
302
- `;
303
- }
304
-
305
- notice += `
266
+ `;
267
+ }
268
+ notice += `
306
269
  ### AI Platform Tracking
307
270
 
308
271
  The AI shopping agent (ChatGPT, Google AI, Copilot) may have its own data collection practices. Please review their privacy policies:
@@ -311,16 +274,14 @@ The AI shopping agent (ChatGPT, Google AI, Copilot) may have its own data collec
311
274
  - Account information you've provided to the AI service
312
275
 
313
276
  ${companyName} is not responsible for data collected directly by AI platform providers.
314
- `;
315
-
316
- return notice;
317
- }
318
-
319
- /**
320
- * Generate the legal disclaimer
321
- */
322
- export function generateDisclaimer(): string {
323
- return `---
277
+ `;
278
+ return notice;
279
+ }
280
+ /**
281
+ * Generate the legal disclaimer
282
+ */
283
+ function generateDisclaimer() {
284
+ return `---
324
285
 
325
286
  **IMPORTANT DISCLAIMER**
326
287
 
@@ -334,5 +295,6 @@ This document was generated by an automated tool and is provided for information
334
295
  We recommend consulting with a privacy lawyer or data protection specialist to ensure your privacy policy fully complies with applicable laws.
335
296
 
336
297
  Generated by [UCP.tools](https://ucptools.dev) - AI Commerce Readiness Platform
337
- `;
338
- }
298
+ `;
299
+ }
300
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/compliance/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * GDPR/Privacy Compliance Generator Types
3
+ * Types for generating privacy policy addendums and consent language
4
+ */
5
+ export type ComplianceRegion = 'eu' | 'uk' | 'california' | 'global';
6
+ export type LawfulBasis = 'contract' | 'consent' | 'legitimate' | 'legal';
7
+ export type AgentPlatform = 'openai' | 'google' | 'microsoft' | 'other';
8
+ export interface ComplianceGeneratorInput {
9
+ companyName: string;
10
+ companyEmail?: string;
11
+ companyAddress?: string;
12
+ dpoEmail?: string;
13
+ regions: ComplianceRegion[];
14
+ platforms: AgentPlatform[];
15
+ lawfulBasis: LawfulBasis;
16
+ includeMarketingConsent?: boolean;
17
+ includeDataRetention?: boolean;
18
+ retentionPeriodYears?: number;
19
+ additionalProcessors?: DataProcessor[];
20
+ }
21
+ export interface DataProcessor {
22
+ name: string;
23
+ purpose: string;
24
+ country?: string;
25
+ privacyPolicyUrl?: string;
26
+ }
27
+ export interface ComplianceDocument {
28
+ title: string;
29
+ sections: ComplianceSection[];
30
+ disclaimer: string;
31
+ generatedAt: string;
32
+ regions: ComplianceRegion[];
33
+ }
34
+ export interface ComplianceSection {
35
+ id: string;
36
+ title: string;
37
+ content: string;
38
+ required: boolean;
39
+ applicableRegions: ComplianceRegion[];
40
+ }
41
+ export interface ComplianceGeneratorOutput {
42
+ privacyAddendum: ComplianceDocument;
43
+ snippets: {
44
+ aiCommerceSection: string;
45
+ processorDisclosures: string;
46
+ consentLanguage: string;
47
+ marketingOptIn?: string;
48
+ dataSubjectRights: string;
49
+ trackingNotice: string;
50
+ };
51
+ embedHtml: string;
52
+ plainText: string;
53
+ generatedAt: string;
54
+ lawfulBasis: LawfulBasis;
55
+ regions: ComplianceRegion[];
56
+ }
57
+ export declare const AI_PLATFORM_PROCESSORS: Record<AgentPlatform, DataProcessor>;
58
+ export declare const REGION_NAMES: Record<ComplianceRegion, string>;
59
+ export declare const LAWFUL_BASIS_DESCRIPTIONS: Record<LawfulBasis, {
60
+ title: string;
61
+ description: string;
62
+ gdprArticle: string;
63
+ }>;
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compliance/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,QAAQ,CAAC;AAGrE,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,SAAS,GACT,YAAY,GACZ,OAAO,CAAC;AAGZ,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,OAAO,CAAC;AAGZ,MAAM,WAAW,wBAAwB;IAEvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAG5B,SAAS,EAAE,aAAa,EAAE,CAAC;IAG3B,WAAW,EAAE,WAAW,CAAC;IAGzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,oBAAoB,CAAC,EAAE,aAAa,EAAE,CAAC;CACxC;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAGD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAGD,MAAM,WAAW,yBAAyB;IAExC,eAAe,EAAE,kBAAkB,CAAC;IAGpC,QAAQ,EAAE;QAER,iBAAiB,EAAE,MAAM,CAAC;QAG1B,oBAAoB,EAAE,MAAM,CAAC;QAG7B,eAAe,EAAE,MAAM,CAAC;QAGxB,cAAc,CAAC,EAAE,MAAM,CAAC;QAGxB,iBAAiB,EAAE,MAAM,CAAC;QAG1B,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAGF,SAAS,EAAE,MAAM,CAAC;IAGlB,SAAS,EAAE,MAAM,CAAC;IAGlB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAGD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAwBvE,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAKzD,CAAC;AAGF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAqBtH,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ /**
3
+ * GDPR/Privacy Compliance Generator Types
4
+ * Types for generating privacy policy addendums and consent language
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.LAWFUL_BASIS_DESCRIPTIONS = exports.REGION_NAMES = exports.AI_PLATFORM_PROCESSORS = void 0;
8
+ // Predefined data processors for AI platforms
9
+ exports.AI_PLATFORM_PROCESSORS = {
10
+ openai: {
11
+ name: 'OpenAI, LLC',
12
+ purpose: 'AI-powered shopping assistant and checkout processing',
13
+ country: 'United States',
14
+ privacyPolicyUrl: 'https://openai.com/privacy/',
15
+ },
16
+ google: {
17
+ name: 'Google LLC',
18
+ purpose: 'AI shopping agent (Google AI Mode, Gemini) and checkout processing',
19
+ country: 'United States',
20
+ privacyPolicyUrl: 'https://policies.google.com/privacy',
21
+ },
22
+ microsoft: {
23
+ name: 'Microsoft Corporation',
24
+ purpose: 'AI shopping assistant (Copilot) and checkout processing',
25
+ country: 'United States',
26
+ privacyPolicyUrl: 'https://privacy.microsoft.com/privacystatement',
27
+ },
28
+ other: {
29
+ name: 'Third-party AI Agent Provider',
30
+ purpose: 'AI-powered shopping and checkout assistance',
31
+ country: 'Various',
32
+ },
33
+ };
34
+ // Region display names
35
+ exports.REGION_NAMES = {
36
+ eu: 'European Union (GDPR)',
37
+ uk: 'United Kingdom (UK GDPR)',
38
+ california: 'California (CCPA/CPRA)',
39
+ global: 'Global (General Best Practices)',
40
+ };
41
+ // Lawful basis descriptions
42
+ exports.LAWFUL_BASIS_DESCRIPTIONS = {
43
+ contract: {
44
+ title: 'Performance of a Contract',
45
+ description: 'Processing is necessary for the performance of a contract with the data subject or to take steps at their request prior to entering into a contract.',
46
+ gdprArticle: 'Article 6(1)(b)',
47
+ },
48
+ consent: {
49
+ title: 'Consent',
50
+ description: 'The data subject has given consent to the processing of their personal data for one or more specific purposes.',
51
+ gdprArticle: 'Article 6(1)(a)',
52
+ },
53
+ legitimate: {
54
+ title: 'Legitimate Interests',
55
+ description: 'Processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party.',
56
+ gdprArticle: 'Article 6(1)(f)',
57
+ },
58
+ legal: {
59
+ title: 'Legal Obligation',
60
+ description: 'Processing is necessary for compliance with a legal obligation to which the controller is subject.',
61
+ gdprArticle: 'Article 6(1)(c)',
62
+ },
63
+ };
64
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/compliance/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA6GH,8CAA8C;AACjC,QAAA,sBAAsB,GAAyC;IAC1E,MAAM,EAAE;QACN,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,uDAAuD;QAChE,OAAO,EAAE,eAAe;QACxB,gBAAgB,EAAE,6BAA6B;KAChD;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,oEAAoE;QAC7E,OAAO,EAAE,eAAe;QACxB,gBAAgB,EAAE,qCAAqC;KACxD;IACD,SAAS,EAAE;QACT,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,yDAAyD;QAClE,OAAO,EAAE,eAAe;QACxB,gBAAgB,EAAE,gDAAgD;KACnE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,6CAA6C;QACtD,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,uBAAuB;AACV,QAAA,YAAY,GAAqC;IAC5D,EAAE,EAAE,uBAAuB;IAC3B,EAAE,EAAE,0BAA0B;IAC9B,UAAU,EAAE,wBAAwB;IACpC,MAAM,EAAE,iCAAiC;CAC1C,CAAC;AAEF,4BAA4B;AACf,QAAA,yBAAyB,GAAqF;IACzH,QAAQ,EAAE;QACR,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,sJAAsJ;QACnK,WAAW,EAAE,iBAAiB;KAC/B;IACD,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,gHAAgH;QAC7H,WAAW,EAAE,iBAAiB;KAC/B;IACD,UAAU,EAAE;QACV,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,qHAAqH;QAClI,WAAW,EAAE,iBAAiB;KAC/B;IACD,KAAK,EAAE;QACL,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,oGAAoG;QACjH,WAAW,EAAE,iBAAiB;KAC/B;CACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { NodePgDatabase } from 'drizzle-orm/node-postgres';
2
+ import * as schema from './schema.js';
3
+ type Database = NodePgDatabase<typeof schema>;
4
+ /**
5
+ * Get the Drizzle database instance.
6
+ * Lazily creates the connection on first use.
7
+ */
8
+ export declare function getDb(): Database;
9
+ /**
10
+ * Close database connection pool.
11
+ * Call this when shutting down the server.
12
+ */
13
+ export declare function closeDb(): Promise<void>;
14
+ export * from './schema.js';
15
+ export { schema };
16
+ export * from './utils.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAGtC,KAAK,QAAQ,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAM9C;;;GAGG;AACH,wBAAgB,KAAK,IAAI,QAAQ,CAWhC;AAED;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAM7C;AAGD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;AAGlB,cAAc,YAAY,CAAC"}