@ucptools/validator 1.0.0 → 1.0.1

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 (236) hide show
  1. package/.claude/settings.local.json +60 -0
  2. package/.vercel/README.txt +11 -0
  3. package/.vercel/project.json +1 -0
  4. package/dist/cli/index.d.ts +6 -0
  5. package/dist/cli/index.d.ts.map +1 -0
  6. package/dist/cli/index.js +279 -0
  7. package/dist/cli/index.js.map +1 -0
  8. package/dist/compliance/compliance-generator.d.ts +34 -0
  9. package/dist/compliance/compliance-generator.d.ts.map +1 -0
  10. package/dist/compliance/compliance-generator.js +320 -0
  11. package/dist/compliance/compliance-generator.js.map +1 -0
  12. package/dist/compliance/index.d.ts +8 -0
  13. package/dist/compliance/index.d.ts.map +1 -0
  14. package/dist/compliance/index.js +17 -0
  15. package/dist/compliance/index.js.map +1 -0
  16. package/dist/compliance/templates.d.ts +34 -0
  17. package/dist/compliance/templates.d.ts.map +1 -0
  18. package/{src/compliance/templates.ts → dist/compliance/templates.js} +117 -155
  19. package/dist/compliance/templates.js.map +1 -0
  20. package/dist/compliance/types.d.ts +64 -0
  21. package/dist/compliance/types.d.ts.map +1 -0
  22. package/dist/compliance/types.js +64 -0
  23. package/dist/compliance/types.js.map +1 -0
  24. package/dist/db/index.d.ts +11 -0
  25. package/dist/db/index.d.ts.map +1 -0
  26. package/dist/db/index.js +63 -0
  27. package/dist/db/index.js.map +1 -0
  28. package/dist/db/schema.d.ts +444 -0
  29. package/dist/db/schema.d.ts.map +1 -0
  30. package/dist/db/schema.js +65 -0
  31. package/dist/db/schema.js.map +1 -0
  32. package/dist/feed-analyzer/feed-analyzer.d.ts +26 -0
  33. package/dist/feed-analyzer/feed-analyzer.d.ts.map +1 -0
  34. package/{src/feed-analyzer/feed-analyzer.ts → dist/feed-analyzer/feed-analyzer.js} +642 -726
  35. package/dist/feed-analyzer/feed-analyzer.js.map +1 -0
  36. package/dist/feed-analyzer/index.d.ts +8 -0
  37. package/dist/feed-analyzer/index.d.ts.map +1 -0
  38. package/dist/feed-analyzer/index.js +19 -0
  39. package/dist/feed-analyzer/index.js.map +1 -0
  40. package/dist/feed-analyzer/types.d.ts +204 -0
  41. package/dist/feed-analyzer/types.d.ts.map +1 -0
  42. package/dist/feed-analyzer/types.js +162 -0
  43. package/dist/feed-analyzer/types.js.map +1 -0
  44. package/{src/generator/index.ts → dist/generator/index.d.ts} +1 -1
  45. package/dist/generator/index.d.ts.map +1 -0
  46. package/dist/generator/index.js +13 -0
  47. package/dist/generator/index.js.map +1 -0
  48. package/dist/generator/key-generator.d.ts +24 -0
  49. package/dist/generator/key-generator.d.ts.map +1 -0
  50. package/dist/generator/key-generator.js +144 -0
  51. package/dist/generator/key-generator.js.map +1 -0
  52. package/dist/generator/profile-builder.d.ts +15 -0
  53. package/dist/generator/profile-builder.d.ts.map +1 -0
  54. package/dist/generator/profile-builder.js +338 -0
  55. package/dist/generator/profile-builder.js.map +1 -0
  56. package/dist/hosting/artifacts-generator.d.ts +10 -0
  57. package/dist/hosting/artifacts-generator.d.ts.map +1 -0
  58. package/{src/hosting/artifacts-generator.ts → dist/hosting/artifacts-generator.js} +191 -241
  59. package/dist/hosting/artifacts-generator.js.map +1 -0
  60. package/{src/hosting/index.ts → dist/hosting/index.d.ts} +1 -1
  61. package/dist/hosting/index.d.ts.map +1 -0
  62. package/dist/hosting/index.js +10 -0
  63. package/dist/hosting/index.js.map +1 -0
  64. package/dist/index.d.ts +18 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +78 -0
  67. package/dist/index.js.map +1 -0
  68. package/{src/security/index.ts → dist/security/index.d.ts} +8 -15
  69. package/dist/security/index.d.ts.map +1 -0
  70. package/dist/security/index.js +12 -0
  71. package/dist/security/index.js.map +1 -0
  72. package/dist/security/security-scanner.d.ts +10 -0
  73. package/dist/security/security-scanner.d.ts.map +1 -0
  74. package/dist/security/security-scanner.js +541 -0
  75. package/dist/security/security-scanner.js.map +1 -0
  76. package/dist/security/types.d.ts +48 -0
  77. package/dist/security/types.d.ts.map +1 -0
  78. package/dist/security/types.js +21 -0
  79. package/dist/security/types.js.map +1 -0
  80. package/dist/services/directory.d.ts +104 -0
  81. package/dist/services/directory.d.ts.map +1 -0
  82. package/dist/services/directory.js +333 -0
  83. package/dist/services/directory.js.map +1 -0
  84. package/dist/simulator/agent-simulator.d.ts +69 -0
  85. package/dist/simulator/agent-simulator.d.ts.map +1 -0
  86. package/{src/simulator/agent-simulator.ts → dist/simulator/agent-simulator.js} +650 -941
  87. package/dist/simulator/agent-simulator.js.map +1 -0
  88. package/{src/simulator/index.ts → dist/simulator/index.d.ts} +7 -7
  89. package/dist/simulator/index.d.ts.map +1 -0
  90. package/dist/simulator/index.js +23 -0
  91. package/dist/simulator/index.js.map +1 -0
  92. package/{src/simulator/types.ts → dist/simulator/types.d.ts} +145 -170
  93. package/dist/simulator/types.d.ts.map +1 -0
  94. package/dist/simulator/types.js +18 -0
  95. package/dist/simulator/types.js.map +1 -0
  96. package/dist/types/generator.d.ts +106 -0
  97. package/dist/types/generator.d.ts.map +1 -0
  98. package/dist/types/generator.js +6 -0
  99. package/dist/types/generator.js.map +1 -0
  100. package/{src/types/index.ts → dist/types/index.d.ts} +1 -1
  101. package/dist/types/index.d.ts.map +1 -0
  102. package/dist/types/index.js +23 -0
  103. package/dist/types/index.js.map +1 -0
  104. package/dist/types/ucp-profile.d.ts +103 -0
  105. package/dist/types/ucp-profile.d.ts.map +1 -0
  106. package/dist/types/ucp-profile.js +45 -0
  107. package/dist/types/ucp-profile.js.map +1 -0
  108. package/dist/types/validation.d.ts +68 -0
  109. package/dist/types/validation.d.ts.map +1 -0
  110. package/dist/types/validation.js +32 -0
  111. package/dist/types/validation.js.map +1 -0
  112. package/dist/validator/index.d.ts +26 -0
  113. package/dist/validator/index.d.ts.map +1 -0
  114. package/dist/validator/index.js +161 -0
  115. package/dist/validator/index.js.map +1 -0
  116. package/dist/validator/network-validator.d.ts +28 -0
  117. package/dist/validator/network-validator.d.ts.map +1 -0
  118. package/dist/validator/network-validator.js +319 -0
  119. package/dist/validator/network-validator.js.map +1 -0
  120. package/dist/validator/rules-validator.d.ts +11 -0
  121. package/dist/validator/rules-validator.d.ts.map +1 -0
  122. package/dist/validator/rules-validator.js +257 -0
  123. package/dist/validator/rules-validator.js.map +1 -0
  124. package/dist/validator/sdk-validator.d.ts +58 -0
  125. package/dist/validator/sdk-validator.d.ts.map +1 -0
  126. package/{src/validator/sdk-validator.ts → dist/validator/sdk-validator.js} +273 -330
  127. package/dist/validator/sdk-validator.js.map +1 -0
  128. package/dist/validator/structural-validator.d.ts +11 -0
  129. package/dist/validator/structural-validator.d.ts.map +1 -0
  130. package/dist/validator/structural-validator.js +415 -0
  131. package/dist/validator/structural-validator.js.map +1 -0
  132. package/package.json +1 -1
  133. package/publish-output.txt +0 -0
  134. package/CLAUDE.md +0 -109
  135. package/api/analyze-feed.js +0 -140
  136. package/api/badge.js +0 -185
  137. package/api/benchmark.js +0 -177
  138. package/api/directory-stats.ts +0 -29
  139. package/api/directory.ts +0 -73
  140. package/api/generate-compliance.js +0 -143
  141. package/api/generate-schema.js +0 -457
  142. package/api/generate.js +0 -132
  143. package/api/security-scan.js +0 -133
  144. package/api/simulate.js +0 -187
  145. package/api/tsconfig.json +0 -10
  146. package/api/validate.js +0 -1351
  147. package/apify-actor/.actor/actor.json +0 -68
  148. package/apify-actor/.actor/input_schema.json +0 -32
  149. package/apify-actor/APIFY-STORE-LISTING.md +0 -412
  150. package/apify-actor/Dockerfile +0 -8
  151. package/apify-actor/README.md +0 -166
  152. package/apify-actor/main.ts +0 -111
  153. package/apify-actor/package.json +0 -17
  154. package/apify-actor/src/main.js +0 -199
  155. package/docs/BRAND-IDENTITY.md +0 -238
  156. package/docs/BRAND-STYLE-GUIDE.md +0 -356
  157. package/drizzle/0000_black_king_cobra.sql +0 -39
  158. package/drizzle/meta/0000_snapshot.json +0 -309
  159. package/drizzle/meta/_journal.json +0 -13
  160. package/drizzle.config.ts +0 -10
  161. package/public/.well-known/ucp +0 -25
  162. package/public/android-chrome-192x192.png +0 -0
  163. package/public/android-chrome-512x512.png +0 -0
  164. package/public/apple-touch-icon.png +0 -0
  165. package/public/brand.css +0 -321
  166. package/public/directory.html +0 -701
  167. package/public/favicon-16x16.png +0 -0
  168. package/public/favicon-32x32.png +0 -0
  169. package/public/favicon.ico +0 -0
  170. package/public/guides/bigcommerce.html +0 -743
  171. package/public/guides/fastucp.html +0 -838
  172. package/public/guides/magento.html +0 -779
  173. package/public/guides/shopify.html +0 -726
  174. package/public/guides/squarespace.html +0 -749
  175. package/public/guides/wix.html +0 -747
  176. package/public/guides/woocommerce.html +0 -733
  177. package/public/index.html +0 -3835
  178. package/public/learn.html +0 -396
  179. package/public/logo.jpeg +0 -0
  180. package/public/og-image-icon.png +0 -0
  181. package/public/og-image.png +0 -0
  182. package/public/robots.txt +0 -6
  183. package/public/site.webmanifest +0 -31
  184. package/public/sitemap.xml +0 -69
  185. package/public/social/linkedin-banner-1128x191.png +0 -0
  186. package/public/social/temp.PNG +0 -0
  187. package/public/social/x-header-1500x500.png +0 -0
  188. package/public/verify.html +0 -410
  189. package/scripts/generate-favicons.js +0 -44
  190. package/scripts/generate-ico.js +0 -23
  191. package/scripts/generate-og-image.js +0 -45
  192. package/scripts/reset-db.ts +0 -77
  193. package/scripts/seed-db.ts +0 -71
  194. package/scripts/setup-benchmark-db.js +0 -70
  195. package/src/api/server.ts +0 -266
  196. package/src/cli/index.ts +0 -302
  197. package/src/compliance/compliance-generator.ts +0 -452
  198. package/src/compliance/index.ts +0 -28
  199. package/src/compliance/types.ts +0 -170
  200. package/src/db/index.ts +0 -28
  201. package/src/db/schema.ts +0 -84
  202. package/src/feed-analyzer/index.ts +0 -34
  203. package/src/feed-analyzer/types.ts +0 -354
  204. package/src/generator/key-generator.ts +0 -124
  205. package/src/generator/profile-builder.ts +0 -402
  206. package/src/index.ts +0 -105
  207. package/src/security/security-scanner.ts +0 -604
  208. package/src/security/types.ts +0 -55
  209. package/src/services/directory.ts +0 -434
  210. package/src/types/generator.ts +0 -140
  211. package/src/types/ucp-profile.ts +0 -140
  212. package/src/types/validation.ts +0 -89
  213. package/src/validator/index.ts +0 -194
  214. package/src/validator/network-validator.ts +0 -417
  215. package/src/validator/rules-validator.ts +0 -297
  216. package/src/validator/structural-validator.ts +0 -476
  217. package/tests/fixtures/non-compliant-profile.json +0 -25
  218. package/tests/fixtures/official-sample-profile.json +0 -75
  219. package/tests/integration/benchmark.test.ts +0 -207
  220. package/tests/integration/database.test.ts +0 -163
  221. package/tests/integration/directory-api.test.ts +0 -268
  222. package/tests/integration/simulate-api.test.ts +0 -230
  223. package/tests/integration/validate-api.test.ts +0 -269
  224. package/tests/setup.ts +0 -15
  225. package/tests/unit/agent-simulator.test.ts +0 -575
  226. package/tests/unit/compliance-generator.test.ts +0 -374
  227. package/tests/unit/directory-service.test.ts +0 -272
  228. package/tests/unit/feed-analyzer.test.ts +0 -517
  229. package/tests/unit/lint-suggestions.test.ts +0 -423
  230. package/tests/unit/official-samples.test.ts +0 -211
  231. package/tests/unit/pdf-report.test.ts +0 -390
  232. package/tests/unit/sdk-validator.test.ts +0 -531
  233. package/tests/unit/security-scanner.test.ts +0 -410
  234. package/tests/unit/validation.test.ts +0 -390
  235. package/vercel.json +0 -34
  236. package/vitest.config.ts +0 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feed-analyzer.js","sourceRoot":"","sources":["../../src/feed-analyzer/feed-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Product Feed Quality Analyzer Module
3
+ * Deep analysis of product data quality for AI agent visibility
4
+ */
5
+ export { analyzeProductFeed, analyzeProductFeedFromHtml, analyzeProduct, extractProductsFromHtml, validateGtin, } from './feed-analyzer.js';
6
+ export type { ProductData, ProductOffer, ProductAnalysis, QualityCheck, FeedAnalysisResult, FeedAnalysisInput, CategoryScores, Recommendation, FeedSummary, GtinValidation, IssueSeverity, CheckCategory, } from './types.js';
7
+ export { QUALITY_CHECKS, VALID_AVAILABILITY_VALUES, CATEGORY_WEIGHTS, GRADE_THRESHOLDS, } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/feed-analyzer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,EACvB,YAAY,GACf,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACR,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,GACnB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Product Feed Quality Analyzer Module
4
+ * Deep analysis of product data quality for AI agent visibility
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.GRADE_THRESHOLDS = exports.CATEGORY_WEIGHTS = exports.VALID_AVAILABILITY_VALUES = exports.QUALITY_CHECKS = exports.validateGtin = exports.extractProductsFromHtml = exports.analyzeProduct = exports.analyzeProductFeedFromHtml = exports.analyzeProductFeed = void 0;
8
+ var feed_analyzer_js_1 = require("./feed-analyzer.js");
9
+ Object.defineProperty(exports, "analyzeProductFeed", { enumerable: true, get: function () { return feed_analyzer_js_1.analyzeProductFeed; } });
10
+ Object.defineProperty(exports, "analyzeProductFeedFromHtml", { enumerable: true, get: function () { return feed_analyzer_js_1.analyzeProductFeedFromHtml; } });
11
+ Object.defineProperty(exports, "analyzeProduct", { enumerable: true, get: function () { return feed_analyzer_js_1.analyzeProduct; } });
12
+ Object.defineProperty(exports, "extractProductsFromHtml", { enumerable: true, get: function () { return feed_analyzer_js_1.extractProductsFromHtml; } });
13
+ Object.defineProperty(exports, "validateGtin", { enumerable: true, get: function () { return feed_analyzer_js_1.validateGtin; } });
14
+ var types_js_1 = require("./types.js");
15
+ Object.defineProperty(exports, "QUALITY_CHECKS", { enumerable: true, get: function () { return types_js_1.QUALITY_CHECKS; } });
16
+ Object.defineProperty(exports, "VALID_AVAILABILITY_VALUES", { enumerable: true, get: function () { return types_js_1.VALID_AVAILABILITY_VALUES; } });
17
+ Object.defineProperty(exports, "CATEGORY_WEIGHTS", { enumerable: true, get: function () { return types_js_1.CATEGORY_WEIGHTS; } });
18
+ Object.defineProperty(exports, "GRADE_THRESHOLDS", { enumerable: true, get: function () { return types_js_1.GRADE_THRESHOLDS; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/feed-analyzer/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uDAM4B;AALxB,sHAAA,kBAAkB,OAAA;AAClB,8HAAA,0BAA0B,OAAA;AAC1B,kHAAA,cAAc,OAAA;AACd,2HAAA,uBAAuB,OAAA;AACvB,gHAAA,YAAY,OAAA;AAkBhB,uCAKoB;AAJhB,0GAAA,cAAc,OAAA;AACd,qHAAA,yBAAyB,OAAA;AACzB,4GAAA,gBAAgB,OAAA;AAChB,4GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Product Feed Quality Analyzer Types
3
+ * Deep analysis of product data quality for AI agent visibility
4
+ */
5
+ /**
6
+ * Severity levels for feed issues
7
+ */
8
+ export type IssueSeverity = 'critical' | 'warning' | 'info';
9
+ /**
10
+ * Categories of feed quality checks
11
+ */
12
+ export type CheckCategory = 'completeness' | 'identifiers' | 'images' | 'pricing' | 'descriptions' | 'categories' | 'availability';
13
+ /**
14
+ * Individual product data from Schema.org JSON-LD
15
+ */
16
+ export interface ProductData {
17
+ name?: string;
18
+ description?: string;
19
+ sku?: string;
20
+ gtin?: string;
21
+ gtin8?: string;
22
+ gtin12?: string;
23
+ gtin13?: string;
24
+ gtin14?: string;
25
+ mpn?: string;
26
+ brand?: string | {
27
+ name?: string;
28
+ };
29
+ image?: string | string[] | {
30
+ url?: string;
31
+ }[];
32
+ offers?: ProductOffer | ProductOffer[];
33
+ category?: string;
34
+ color?: string;
35
+ size?: string;
36
+ material?: string;
37
+ weight?: string | {
38
+ value?: number;
39
+ unitCode?: string;
40
+ };
41
+ aggregateRating?: {
42
+ ratingValue?: number;
43
+ reviewCount?: number;
44
+ ratingCount?: number;
45
+ };
46
+ review?: unknown[];
47
+ url?: string;
48
+ '@type'?: string;
49
+ }
50
+ /**
51
+ * Product offer/pricing data
52
+ */
53
+ export interface ProductOffer {
54
+ '@type'?: string;
55
+ price?: number | string;
56
+ priceCurrency?: string;
57
+ availability?: string;
58
+ url?: string;
59
+ seller?: {
60
+ name?: string;
61
+ };
62
+ priceValidUntil?: string;
63
+ itemCondition?: string;
64
+ shippingDetails?: unknown;
65
+ }
66
+ /**
67
+ * Individual quality check result
68
+ */
69
+ export interface QualityCheck {
70
+ id: string;
71
+ name: string;
72
+ category: CheckCategory;
73
+ passed: boolean;
74
+ severity: IssueSeverity;
75
+ message: string;
76
+ details?: string;
77
+ recommendation?: string;
78
+ affectedProducts?: string[];
79
+ }
80
+ /**
81
+ * Product-level analysis result
82
+ */
83
+ export interface ProductAnalysis {
84
+ name: string;
85
+ url?: string;
86
+ sku?: string;
87
+ score: number;
88
+ issues: QualityCheck[];
89
+ attributes: {
90
+ hasName: boolean;
91
+ hasDescription: boolean;
92
+ hasSku: boolean;
93
+ hasGtin: boolean;
94
+ hasBrand: boolean;
95
+ hasImage: boolean;
96
+ hasPrice: boolean;
97
+ hasAvailability: boolean;
98
+ hasCategory: boolean;
99
+ descriptionLength: number;
100
+ imageCount: number;
101
+ };
102
+ }
103
+ /**
104
+ * Category scores breakdown
105
+ */
106
+ export interface CategoryScores {
107
+ completeness: number;
108
+ identifiers: number;
109
+ images: number;
110
+ pricing: number;
111
+ descriptions: number;
112
+ categories: number;
113
+ availability: number;
114
+ }
115
+ /**
116
+ * Overall feed analysis result
117
+ */
118
+ export interface FeedAnalysisResult {
119
+ url: string;
120
+ analyzedAt: string;
121
+ productsFound: number;
122
+ productsAnalyzed: number;
123
+ overallScore: number;
124
+ agentVisibilityScore: number;
125
+ grade: 'A' | 'B' | 'C' | 'D' | 'F';
126
+ categoryScores: CategoryScores;
127
+ issues: QualityCheck[];
128
+ topIssues: QualityCheck[];
129
+ products: ProductAnalysis[];
130
+ recommendations: Recommendation[];
131
+ summary: FeedSummary;
132
+ }
133
+ /**
134
+ * Recommendation for improving feed quality
135
+ */
136
+ export interface Recommendation {
137
+ priority: 'high' | 'medium' | 'low';
138
+ category: CheckCategory;
139
+ title: string;
140
+ description: string;
141
+ impact: string;
142
+ affectedCount: number;
143
+ }
144
+ /**
145
+ * Summary statistics for the feed
146
+ */
147
+ export interface FeedSummary {
148
+ totalProducts: number;
149
+ withName: number;
150
+ withDescription: number;
151
+ withSku: number;
152
+ withGtin: number;
153
+ withBrand: number;
154
+ withImages: number;
155
+ withPrice: number;
156
+ withAvailability: number;
157
+ withCategory: number;
158
+ averageDescriptionLength: number;
159
+ averageImageCount: number;
160
+ }
161
+ /**
162
+ * Input options for feed analysis
163
+ */
164
+ export interface FeedAnalysisInput {
165
+ url: string;
166
+ maxProducts?: number;
167
+ includeProductDetails?: boolean;
168
+ }
169
+ /**
170
+ * GTIN validation result
171
+ */
172
+ export interface GtinValidation {
173
+ isValid: boolean;
174
+ type?: 'GTIN-8' | 'GTIN-12' | 'GTIN-13' | 'GTIN-14' | 'UPC' | 'EAN';
175
+ error?: string;
176
+ }
177
+ /**
178
+ * Quality check definitions
179
+ */
180
+ export declare const QUALITY_CHECKS: Record<string, {
181
+ name: string;
182
+ category: CheckCategory;
183
+ severity: IssueSeverity;
184
+ description: string;
185
+ }>;
186
+ /**
187
+ * Valid Schema.org availability values
188
+ */
189
+ export declare const VALID_AVAILABILITY_VALUES: string[];
190
+ /**
191
+ * Scoring weights for different categories
192
+ */
193
+ export declare const CATEGORY_WEIGHTS: Record<CheckCategory, number>;
194
+ /**
195
+ * Grade thresholds (aligned with all other scoring models)
196
+ */
197
+ export declare const GRADE_THRESHOLDS: {
198
+ A: number;
199
+ B: number;
200
+ C: number;
201
+ D: number;
202
+ F: number;
203
+ };
204
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/feed-analyzer/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ /**
3
+ * Product Feed Quality Analyzer Types
4
+ * Deep analysis of product data quality for AI agent visibility
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.GRADE_THRESHOLDS = exports.CATEGORY_WEIGHTS = exports.VALID_AVAILABILITY_VALUES = exports.QUALITY_CHECKS = void 0;
8
+ /**
9
+ * Quality check definitions
10
+ */
11
+ exports.QUALITY_CHECKS = {
12
+ // Completeness checks
13
+ 'missing-name': {
14
+ name: 'Missing Product Name',
15
+ category: 'completeness',
16
+ severity: 'critical',
17
+ description: 'Product name is required for AI agents to identify products',
18
+ },
19
+ 'missing-description': {
20
+ name: 'Missing Description',
21
+ category: 'completeness',
22
+ severity: 'warning',
23
+ description: 'Product description helps AI agents understand and recommend products',
24
+ },
25
+ 'short-description': {
26
+ name: 'Short Description',
27
+ category: 'descriptions',
28
+ severity: 'info',
29
+ description: 'Longer descriptions provide better context for AI agents',
30
+ },
31
+ 'missing-brand': {
32
+ name: 'Missing Brand',
33
+ category: 'completeness',
34
+ severity: 'warning',
35
+ description: 'Brand information helps with product identification and search',
36
+ },
37
+ // Identifier checks
38
+ 'missing-sku': {
39
+ name: 'Missing SKU',
40
+ category: 'identifiers',
41
+ severity: 'warning',
42
+ description: 'SKU helps uniquely identify products in your catalog',
43
+ },
44
+ 'missing-gtin': {
45
+ name: 'Missing GTIN/UPC/EAN',
46
+ category: 'identifiers',
47
+ severity: 'warning',
48
+ description: 'Global identifiers enable cross-platform product matching',
49
+ },
50
+ 'invalid-gtin': {
51
+ name: 'Invalid GTIN Format',
52
+ category: 'identifiers',
53
+ severity: 'critical',
54
+ description: 'GTIN has invalid format or check digit',
55
+ },
56
+ // Image checks
57
+ 'missing-image': {
58
+ name: 'Missing Product Image',
59
+ category: 'images',
60
+ severity: 'critical',
61
+ description: 'Product images are essential for AI shopping experiences',
62
+ },
63
+ 'single-image': {
64
+ name: 'Single Image Only',
65
+ category: 'images',
66
+ severity: 'info',
67
+ description: 'Multiple images improve product presentation',
68
+ },
69
+ 'missing-image-alt': {
70
+ name: 'Missing Image Alt Text',
71
+ category: 'images',
72
+ severity: 'info',
73
+ description: 'Alt text helps with accessibility and SEO',
74
+ },
75
+ // Pricing checks
76
+ 'missing-price': {
77
+ name: 'Missing Price',
78
+ category: 'pricing',
79
+ severity: 'critical',
80
+ description: 'Price is required for AI agents to complete purchases',
81
+ },
82
+ 'missing-currency': {
83
+ name: 'Missing Currency',
84
+ category: 'pricing',
85
+ severity: 'warning',
86
+ description: 'Currency must be specified for international commerce',
87
+ },
88
+ 'invalid-price': {
89
+ name: 'Invalid Price Format',
90
+ category: 'pricing',
91
+ severity: 'critical',
92
+ description: 'Price must be a valid number',
93
+ },
94
+ // Availability checks
95
+ 'missing-availability': {
96
+ name: 'Missing Availability',
97
+ category: 'availability',
98
+ severity: 'warning',
99
+ description: 'Availability status helps AI agents make purchase decisions',
100
+ },
101
+ 'invalid-availability': {
102
+ name: 'Invalid Availability Value',
103
+ category: 'availability',
104
+ severity: 'warning',
105
+ description: 'Availability should use Schema.org ItemAvailability values',
106
+ },
107
+ // Category checks
108
+ 'missing-category': {
109
+ name: 'Missing Category',
110
+ category: 'categories',
111
+ severity: 'info',
112
+ description: 'Product categorization improves discoverability',
113
+ },
114
+ };
115
+ /**
116
+ * Valid Schema.org availability values
117
+ */
118
+ exports.VALID_AVAILABILITY_VALUES = [
119
+ 'https://schema.org/InStock',
120
+ 'https://schema.org/OutOfStock',
121
+ 'https://schema.org/PreOrder',
122
+ 'https://schema.org/PreSale',
123
+ 'https://schema.org/SoldOut',
124
+ 'https://schema.org/InStoreOnly',
125
+ 'https://schema.org/OnlineOnly',
126
+ 'https://schema.org/LimitedAvailability',
127
+ 'https://schema.org/Discontinued',
128
+ 'https://schema.org/BackOrder',
129
+ 'InStock',
130
+ 'OutOfStock',
131
+ 'PreOrder',
132
+ 'PreSale',
133
+ 'SoldOut',
134
+ 'InStoreOnly',
135
+ 'OnlineOnly',
136
+ 'LimitedAvailability',
137
+ 'Discontinued',
138
+ 'BackOrder',
139
+ ];
140
+ /**
141
+ * Scoring weights for different categories
142
+ */
143
+ exports.CATEGORY_WEIGHTS = {
144
+ completeness: 25,
145
+ identifiers: 15,
146
+ images: 20,
147
+ pricing: 20,
148
+ descriptions: 10,
149
+ categories: 5,
150
+ availability: 5,
151
+ };
152
+ /**
153
+ * Grade thresholds (aligned with all other scoring models)
154
+ */
155
+ exports.GRADE_THRESHOLDS = {
156
+ A: 90,
157
+ B: 80,
158
+ C: 70,
159
+ D: 60,
160
+ F: 0,
161
+ };
162
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/feed-analyzer/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * UCP Profile Generator Module
3
3
  */
4
-
5
4
  export { buildProfile, generateMinimalProfile } from './profile-builder.js';
6
5
  export { generateSigningKeyPair, validatePublicKey } from './key-generator.js';
7
6
  export type { KeyAlgorithm, KeyPairResult } from './key-generator.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * UCP Profile Generator Module
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validatePublicKey = exports.generateSigningKeyPair = exports.generateMinimalProfile = exports.buildProfile = void 0;
7
+ var profile_builder_js_1 = require("./profile-builder.js");
8
+ Object.defineProperty(exports, "buildProfile", { enumerable: true, get: function () { return profile_builder_js_1.buildProfile; } });
9
+ Object.defineProperty(exports, "generateMinimalProfile", { enumerable: true, get: function () { return profile_builder_js_1.generateMinimalProfile; } });
10
+ var key_generator_js_1 = require("./key-generator.js");
11
+ Object.defineProperty(exports, "generateSigningKeyPair", { enumerable: true, get: function () { return key_generator_js_1.generateSigningKeyPair; } });
12
+ Object.defineProperty(exports, "validatePublicKey", { enumerable: true, get: function () { return key_generator_js_1.validatePublicKey; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2DAA4E;AAAnE,kHAAA,YAAY,OAAA;AAAE,4HAAA,sBAAsB,OAAA;AAC7C,uDAA+E;AAAtE,0HAAA,sBAAsB,OAAA;AAAE,qHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Signing Key Generator for UCP Webhook Signing
3
+ * Generates EC or RSA key pairs in JWK format
4
+ */
5
+ import * as jose from 'jose';
6
+ import type { JwkKey } from '../types/ucp-profile.js';
7
+ export type KeyAlgorithm = 'ES256' | 'RS256';
8
+ export interface KeyPairResult {
9
+ publicKey: JwkKey;
10
+ privateKey: string;
11
+ }
12
+ /**
13
+ * Generate a new signing key pair
14
+ */
15
+ export declare function generateSigningKeyPair(algorithm?: KeyAlgorithm): Promise<KeyPairResult>;
16
+ /**
17
+ * Validate a JWK public key structure
18
+ */
19
+ export declare function validatePublicKey(key: JwkKey): string[];
20
+ /**
21
+ * Import and validate a public key from JWK
22
+ */
23
+ export declare function importPublicKey(jwk: JwkKey): Promise<jose.KeyLike | Uint8Array>;
24
+ //# sourceMappingURL=key-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-generator.d.ts","sourceRoot":"","sources":["../../src/generator/key-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,GAAE,YAAsB,GAChC,OAAO,CAAC,aAAa,CAAC,CAQxB;AA0DD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BvD;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,CAErF"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ /**
3
+ * Signing Key Generator for UCP Webhook Signing
4
+ * Generates EC or RSA key pairs in JWK format
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.generateSigningKeyPair = generateSigningKeyPair;
41
+ exports.validatePublicKey = validatePublicKey;
42
+ exports.importPublicKey = importPublicKey;
43
+ const jose = __importStar(require("jose"));
44
+ const nanoid_1 = require("nanoid");
45
+ /**
46
+ * Generate a new signing key pair
47
+ */
48
+ async function generateSigningKeyPair(algorithm = 'ES256') {
49
+ const keyId = `ucp-${(0, nanoid_1.nanoid)(12)}`;
50
+ if (algorithm === 'ES256') {
51
+ return generateECKeyPair(keyId);
52
+ }
53
+ else {
54
+ return generateRSAKeyPair(keyId);
55
+ }
56
+ }
57
+ /**
58
+ * Generate EC (P-256) key pair
59
+ */
60
+ async function generateECKeyPair(keyId) {
61
+ const { publicKey, privateKey } = await jose.generateKeyPair('ES256', {
62
+ extractable: true,
63
+ });
64
+ // Export public key as JWK
65
+ const publicJwk = await jose.exportJWK(publicKey);
66
+ // Export private key as PEM
67
+ const privatePem = await jose.exportPKCS8(privateKey);
68
+ return {
69
+ publicKey: {
70
+ kty: 'EC',
71
+ kid: keyId,
72
+ use: 'sig',
73
+ alg: 'ES256',
74
+ crv: publicJwk.crv,
75
+ x: publicJwk.x,
76
+ y: publicJwk.y,
77
+ },
78
+ privateKey: privatePem,
79
+ };
80
+ }
81
+ /**
82
+ * Generate RSA (2048-bit) key pair
83
+ */
84
+ async function generateRSAKeyPair(keyId) {
85
+ const { publicKey, privateKey } = await jose.generateKeyPair('RS256', {
86
+ extractable: true,
87
+ modulusLength: 2048,
88
+ });
89
+ // Export public key as JWK
90
+ const publicJwk = await jose.exportJWK(publicKey);
91
+ // Export private key as PEM
92
+ const privatePem = await jose.exportPKCS8(privateKey);
93
+ return {
94
+ publicKey: {
95
+ kty: 'RSA',
96
+ kid: keyId,
97
+ use: 'sig',
98
+ alg: 'RS256',
99
+ n: publicJwk.n,
100
+ e: publicJwk.e,
101
+ },
102
+ privateKey: privatePem,
103
+ };
104
+ }
105
+ /**
106
+ * Validate a JWK public key structure
107
+ */
108
+ function validatePublicKey(key) {
109
+ const errors = [];
110
+ if (!key.kty) {
111
+ errors.push('Missing required field: kty');
112
+ }
113
+ if (!key.kid) {
114
+ errors.push('Missing required field: kid');
115
+ }
116
+ if (key.kty === 'EC') {
117
+ if (!key.crv)
118
+ errors.push('EC key missing curve (crv)');
119
+ if (!key.x)
120
+ errors.push('EC key missing x coordinate');
121
+ if (!key.y)
122
+ errors.push('EC key missing y coordinate');
123
+ if (key.crv && !['P-256', 'P-384', 'P-521'].includes(key.crv)) {
124
+ errors.push(`Unsupported EC curve: ${key.crv}`);
125
+ }
126
+ }
127
+ else if (key.kty === 'RSA') {
128
+ if (!key.n)
129
+ errors.push('RSA key missing modulus (n)');
130
+ if (!key.e)
131
+ errors.push('RSA key missing exponent (e)');
132
+ }
133
+ else if (key.kty) {
134
+ errors.push(`Unsupported key type: ${key.kty}`);
135
+ }
136
+ return errors;
137
+ }
138
+ /**
139
+ * Import and validate a public key from JWK
140
+ */
141
+ async function importPublicKey(jwk) {
142
+ return jose.importJWK(jwk, jwk.alg);
143
+ }
144
+ //# sourceMappingURL=key-generator.js.map