@ucptools/validator 1.0.1 → 1.2.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.
- package/dist/auth/config.d.ts +20 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +114 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/index.d.ts +5 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +17 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +45 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +170 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/service.d.ts +80 -0
- package/dist/auth/service.d.ts.map +1 -0
- package/dist/auth/service.js +298 -0
- package/dist/auth/service.js.map +1 -0
- package/dist/cli/index.js +96 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mock-server.d.ts +20 -0
- package/dist/cli/mock-server.d.ts.map +1 -0
- package/dist/cli/mock-server.js +261 -0
- package/dist/cli/mock-server.js.map +1 -0
- package/dist/db/index.d.ts +8 -2
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +22 -5
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema.d.ts +3570 -128
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +377 -17
- package/dist/db/schema.js.map +1 -1
- package/dist/db/utils.d.ts +252 -0
- package/dist/db/utils.d.ts.map +1 -0
- package/dist/db/utils.js +295 -0
- package/dist/db/utils.js.map +1 -0
- package/dist/feed-analyzer/feed-analyzer.d.ts.map +1 -1
- package/dist/feed-analyzer/feed-analyzer.js +218 -4
- package/dist/feed-analyzer/feed-analyzer.js.map +1 -1
- package/dist/feed-analyzer/types.d.ts +82 -1
- package/dist/feed-analyzer/types.d.ts.map +1 -1
- package/dist/feed-analyzer/types.js +13 -0
- package/dist/feed-analyzer/types.js.map +1 -1
- package/dist/generator/profile-builder.d.ts.map +1 -1
- package/dist/generator/profile-builder.js +158 -115
- package/dist/generator/profile-builder.js.map +1 -1
- package/dist/lib/analytics.d.ts +349 -0
- package/dist/lib/analytics.d.ts.map +1 -0
- package/dist/lib/analytics.js +198 -0
- package/dist/lib/analytics.js.map +1 -0
- package/dist/security/security-scanner.d.ts.map +1 -1
- package/dist/security/security-scanner.js +130 -2
- package/dist/security/security-scanner.js.map +1 -1
- package/dist/security/types.d.ts +32 -0
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/types.js.map +1 -1
- package/dist/services/analytics.d.ts +114 -0
- package/dist/services/analytics.d.ts.map +1 -0
- package/dist/services/analytics.js +862 -0
- package/dist/services/analytics.js.map +1 -0
- package/dist/services/badge.d.ts +31 -0
- package/dist/services/badge.d.ts.map +1 -0
- package/dist/services/badge.js +152 -0
- package/dist/services/badge.js.map +1 -0
- package/dist/services/cron.d.ts +127 -0
- package/dist/services/cron.d.ts.map +1 -0
- package/dist/services/cron.js +693 -0
- package/dist/services/cron.js.map +1 -0
- package/dist/services/directory.d.ts +2 -0
- package/dist/services/directory.d.ts.map +1 -1
- package/dist/services/directory.js +45 -27
- package/dist/services/directory.js.map +1 -1
- package/dist/services/email.d.ts +127 -0
- package/dist/services/email.d.ts.map +1 -0
- package/dist/services/email.js +876 -0
- package/dist/services/email.js.map +1 -0
- package/dist/services/hosted-profiles.d.ts +77 -0
- package/dist/services/hosted-profiles.d.ts.map +1 -0
- package/dist/services/hosted-profiles.js +433 -0
- package/dist/services/hosted-profiles.js.map +1 -0
- package/dist/services/latency.d.ts +67 -0
- package/dist/services/latency.d.ts.map +1 -0
- package/dist/services/latency.js +274 -0
- package/dist/services/latency.js.map +1 -0
- package/dist/services/manifest-compliance.d.ts +64 -0
- package/dist/services/manifest-compliance.d.ts.map +1 -0
- package/dist/services/manifest-compliance.js +271 -0
- package/dist/services/manifest-compliance.js.map +1 -0
- package/dist/services/monitoring-diff.d.ts +31 -0
- package/dist/services/monitoring-diff.d.ts.map +1 -0
- package/dist/services/monitoring-diff.js +189 -0
- package/dist/services/monitoring-diff.js.map +1 -0
- package/dist/services/notifications.d.ts +46 -0
- package/dist/services/notifications.d.ts.map +1 -0
- package/dist/services/notifications.js +88 -0
- package/dist/services/notifications.js.map +1 -0
- package/dist/services/posthog.d.ts +43 -0
- package/dist/services/posthog.d.ts.map +1 -0
- package/dist/services/posthog.js +110 -0
- package/dist/services/posthog.js.map +1 -0
- package/dist/services/stripe.d.ts +93 -0
- package/dist/services/stripe.d.ts.map +1 -0
- package/dist/services/stripe.js +490 -0
- package/dist/services/stripe.js.map +1 -0
- package/dist/services/validation-history.d.ts +99 -0
- package/dist/services/validation-history.d.ts.map +1 -0
- package/dist/services/validation-history.js +344 -0
- package/dist/services/validation-history.js.map +1 -0
- package/dist/services/validation-logging.d.ts +103 -0
- package/dist/services/validation-logging.d.ts.map +1 -0
- package/dist/services/validation-logging.js +210 -0
- package/dist/services/validation-logging.js.map +1 -0
- package/dist/services/validation.d.ts +119 -0
- package/dist/services/validation.d.ts.map +1 -0
- package/dist/services/validation.js +1185 -0
- package/dist/services/validation.js.map +1 -0
- package/dist/simulator/agent-simulator.d.ts.map +1 -1
- package/dist/simulator/agent-simulator.js +229 -9
- package/dist/simulator/agent-simulator.js.map +1 -1
- package/dist/simulator/types.d.ts +26 -0
- package/dist/simulator/types.d.ts.map +1 -1
- package/dist/simulator/types.js.map +1 -1
- package/dist/types/acp-validation.d.ts +87 -0
- package/dist/types/acp-validation.d.ts.map +1 -0
- package/dist/types/acp-validation.js +40 -0
- package/dist/types/acp-validation.js.map +1 -0
- package/dist/types/analytics.d.ts +182 -0
- package/dist/types/analytics.d.ts.map +1 -0
- package/dist/types/analytics.js +7 -0
- package/dist/types/analytics.js.map +1 -0
- package/dist/types/generator.d.ts +4 -0
- package/dist/types/generator.d.ts.map +1 -1
- package/dist/types/ucp-profile.d.ts +32 -2
- package/dist/types/ucp-profile.d.ts.map +1 -1
- package/dist/types/ucp-profile.js +31 -1
- package/dist/types/ucp-profile.js.map +1 -1
- package/dist/types/validation.d.ts +14 -0
- package/dist/types/validation.d.ts.map +1 -1
- package/dist/types/validation.js +19 -0
- package/dist/types/validation.js.map +1 -1
- package/dist/validator/acp/index.d.ts +31 -0
- package/dist/validator/acp/index.d.ts.map +1 -0
- package/dist/validator/acp/index.js +574 -0
- package/dist/validator/acp/index.js.map +1 -0
- package/dist/validator/network-validator.d.ts.map +1 -1
- package/dist/validator/network-validator.js +23 -13
- package/dist/validator/network-validator.js.map +1 -1
- package/dist/validator/rules-validator.d.ts +8 -0
- package/dist/validator/rules-validator.d.ts.map +1 -1
- package/dist/validator/rules-validator.js +159 -43
- package/dist/validator/rules-validator.js.map +1 -1
- package/dist/validator/structural-validator.d.ts.map +1 -1
- package/dist/validator/structural-validator.js +283 -53
- package/dist/validator/structural-validator.js.map +1 -1
- package/dist/validator/utils.d.ts +62 -0
- package/dist/validator/utils.d.ts.map +1 -0
- package/dist/validator/utils.js +151 -0
- package/dist/validator/utils.js.map +1 -0
- package/package.json +45 -12
- package/.claude/settings.local.json +0 -60
- package/.vercel/README.txt +0 -11
- package/.vercel/project.json +0 -1
- package/publish-output.txt +0 -0
- package/tsconfig.json +0 -20
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.validateStructure = validateStructure;
|
|
8
8
|
const validation_js_1 = require("../types/validation.js");
|
|
9
|
+
const utils_js_1 = require("./utils.js");
|
|
9
10
|
/**
|
|
10
11
|
* Version format regex (YYYY-MM-DD)
|
|
11
12
|
*/
|
|
@@ -46,10 +47,23 @@ function validateStructure(profile) {
|
|
|
46
47
|
issues.push(...validateServices(ucp));
|
|
47
48
|
// Validate capabilities
|
|
48
49
|
issues.push(...validateCapabilities(ucp));
|
|
49
|
-
// Validate signing_keys
|
|
50
|
-
if (profileObj.signing_keys
|
|
50
|
+
// Validate signing_keys (required per UCP spec 2026-01-11)
|
|
51
|
+
if (profileObj.signing_keys === undefined) {
|
|
52
|
+
issues.push({
|
|
53
|
+
severity: 'error',
|
|
54
|
+
code: validation_js_1.ValidationErrorCodes.MISSING_SIGNING_KEYS,
|
|
55
|
+
path: '$.signing_keys',
|
|
56
|
+
message: 'Missing required "signing_keys" field',
|
|
57
|
+
hint: 'Add signing_keys array with at least one JWK public key for signature verification',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
51
61
|
issues.push(...validateSigningKeys(profileObj.signing_keys));
|
|
52
62
|
}
|
|
63
|
+
// Validate payment handlers (required per UCP spec 2026-01-11)
|
|
64
|
+
issues.push(...validatePaymentHandlers(profileObj));
|
|
65
|
+
// Validate Identity Linking capability config if present in capabilities
|
|
66
|
+
issues.push(...validateIdentityLinkingCapability(ucp));
|
|
53
67
|
return issues;
|
|
54
68
|
}
|
|
55
69
|
/**
|
|
@@ -122,30 +136,44 @@ function validateServices(ucp) {
|
|
|
122
136
|
hint: 'Add at least one service (e.g., "dev.ucp.shopping")',
|
|
123
137
|
});
|
|
124
138
|
}
|
|
125
|
-
//
|
|
126
|
-
|
|
127
|
-
|
|
139
|
+
// Normalize services from both object and array formats (Google vs Shopify)
|
|
140
|
+
const normalizedServices = (0, utils_js_1.normalizeServices)(services);
|
|
141
|
+
if (normalizedServices.length === 0 && Object.keys(services).length > 0) {
|
|
142
|
+
// Services exist but couldn't be normalized - check for format issues
|
|
143
|
+
for (const [serviceName, serviceData] of Object.entries(services)) {
|
|
144
|
+
if (!serviceData) {
|
|
145
|
+
issues.push({
|
|
146
|
+
severity: 'error',
|
|
147
|
+
code: validation_js_1.ValidationErrorCodes.INVALID_SERVICE_STRUCTURE,
|
|
148
|
+
path: `$.ucp.services["${serviceName}"]`,
|
|
149
|
+
message: `Service "${serviceName}" is null or undefined`,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else if (typeof serviceData !== 'object') {
|
|
153
|
+
issues.push({
|
|
154
|
+
severity: 'error',
|
|
155
|
+
code: validation_js_1.ValidationErrorCodes.INVALID_SERVICE_STRUCTURE,
|
|
156
|
+
path: `$.ucp.services["${serviceName}"]`,
|
|
157
|
+
message: `Service "${serviceName}" must be an object or array, got ${typeof serviceData}`,
|
|
158
|
+
hint: 'Each service should be an object with version, rest/mcp transport, etc.',
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// Validate each normalized service
|
|
164
|
+
for (const { name, service } of normalizedServices) {
|
|
165
|
+
issues.push(...validateService(name, service));
|
|
128
166
|
}
|
|
129
167
|
return issues;
|
|
130
168
|
}
|
|
131
169
|
/**
|
|
132
|
-
* Validate individual service definition
|
|
170
|
+
* Validate individual service definition (already normalized)
|
|
133
171
|
*/
|
|
134
172
|
function validateService(name, service) {
|
|
135
173
|
const issues = [];
|
|
136
174
|
const path = `$.ucp.services["${name}"]`;
|
|
137
|
-
if (!service || typeof service !== 'object') {
|
|
138
|
-
issues.push({
|
|
139
|
-
severity: 'error',
|
|
140
|
-
code: validation_js_1.ValidationErrorCodes.INVALID_SERVICE_STRUCTURE,
|
|
141
|
-
path,
|
|
142
|
-
message: `Service "${name}" must be an object`,
|
|
143
|
-
});
|
|
144
|
-
return issues;
|
|
145
|
-
}
|
|
146
|
-
const svc = service;
|
|
147
175
|
// Check required version
|
|
148
|
-
if (!
|
|
176
|
+
if (!service.version) {
|
|
149
177
|
issues.push({
|
|
150
178
|
severity: 'error',
|
|
151
179
|
code: validation_js_1.ValidationErrorCodes.INVALID_SERVICE_STRUCTURE,
|
|
@@ -153,7 +181,7 @@ function validateService(name, service) {
|
|
|
153
181
|
message: `Service "${name}" missing required "version" field`,
|
|
154
182
|
});
|
|
155
183
|
}
|
|
156
|
-
else if (typeof
|
|
184
|
+
else if (typeof service.version === 'string' && !VERSION_REGEX.test(service.version)) {
|
|
157
185
|
issues.push({
|
|
158
186
|
severity: 'error',
|
|
159
187
|
code: validation_js_1.ValidationErrorCodes.INVALID_VERSION_FORMAT,
|
|
@@ -163,7 +191,7 @@ function validateService(name, service) {
|
|
|
163
191
|
});
|
|
164
192
|
}
|
|
165
193
|
// Check required spec
|
|
166
|
-
if (!
|
|
194
|
+
if (!service.spec) {
|
|
167
195
|
issues.push({
|
|
168
196
|
severity: 'error',
|
|
169
197
|
code: validation_js_1.ValidationErrorCodes.INVALID_SERVICE_STRUCTURE,
|
|
@@ -172,7 +200,7 @@ function validateService(name, service) {
|
|
|
172
200
|
});
|
|
173
201
|
}
|
|
174
202
|
// Check for at least one transport
|
|
175
|
-
const hasTransport =
|
|
203
|
+
const hasTransport = service.rest || service.mcp || service.a2a || service.embedded;
|
|
176
204
|
if (!hasTransport) {
|
|
177
205
|
issues.push({
|
|
178
206
|
severity: 'warn',
|
|
@@ -183,12 +211,12 @@ function validateService(name, service) {
|
|
|
183
211
|
});
|
|
184
212
|
}
|
|
185
213
|
// Validate REST transport if present
|
|
186
|
-
if (
|
|
187
|
-
issues.push(...validateRestTransport(
|
|
214
|
+
if (service.rest) {
|
|
215
|
+
issues.push(...validateRestTransport(service.rest, `${path}.rest`));
|
|
188
216
|
}
|
|
189
217
|
// Validate MCP transport if present
|
|
190
|
-
if (
|
|
191
|
-
issues.push(...validateMcpTransport(
|
|
218
|
+
if (service.mcp) {
|
|
219
|
+
issues.push(...validateMcpTransport(service.mcp, `${path}.mcp`));
|
|
192
220
|
}
|
|
193
221
|
return issues;
|
|
194
222
|
}
|
|
@@ -273,36 +301,42 @@ function validateCapabilities(ucp) {
|
|
|
273
301
|
});
|
|
274
302
|
return issues;
|
|
275
303
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
304
|
+
// Normalize capabilities from both array and object formats
|
|
305
|
+
const normalizedCapabilities = (0, utils_js_1.normalizeCapabilities)(ucp.capabilities);
|
|
306
|
+
if (normalizedCapabilities.length === 0) {
|
|
307
|
+
// Check if it was a non-empty object that failed to normalize
|
|
308
|
+
if (typeof ucp.capabilities === 'object' && !Array.isArray(ucp.capabilities) && Object.keys(ucp.capabilities).length > 0) {
|
|
309
|
+
issues.push({
|
|
310
|
+
severity: 'warn',
|
|
311
|
+
code: validation_js_1.ValidationErrorCodes.MISSING_CAPABILITIES,
|
|
312
|
+
path: '$.ucp.capabilities',
|
|
313
|
+
message: 'Capabilities object could not be normalized - check format',
|
|
314
|
+
hint: 'Capabilities should be either an array or an object with capability names as keys',
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
issues.push({
|
|
319
|
+
severity: 'warn',
|
|
320
|
+
code: validation_js_1.ValidationErrorCodes.MISSING_CAPABILITIES,
|
|
321
|
+
path: '$.ucp.capabilities',
|
|
322
|
+
message: 'Capabilities array is empty',
|
|
323
|
+
hint: 'Add at least one capability (e.g., dev.ucp.shopping.checkout)',
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// Validate each normalized capability
|
|
328
|
+
for (let i = 0; i < normalizedCapabilities.length; i++) {
|
|
329
|
+
const cap = normalizedCapabilities[i];
|
|
330
|
+
issues.push(...validateCapability(cap, i, cap.name));
|
|
297
331
|
}
|
|
298
332
|
return issues;
|
|
299
333
|
}
|
|
300
334
|
/**
|
|
301
335
|
* Validate individual capability
|
|
302
336
|
*/
|
|
303
|
-
function validateCapability(capability, index) {
|
|
337
|
+
function validateCapability(capability, index, capabilityName) {
|
|
304
338
|
const issues = [];
|
|
305
|
-
const path = `$.ucp.capabilities[${index}]`;
|
|
339
|
+
const path = capabilityName ? `$.ucp.capabilities["${capabilityName}"]` : `$.ucp.capabilities[${index}]`;
|
|
306
340
|
if (!capability || typeof capability !== 'object') {
|
|
307
341
|
issues.push({
|
|
308
342
|
severity: 'error',
|
|
@@ -313,13 +347,15 @@ function validateCapability(capability, index) {
|
|
|
313
347
|
return issues;
|
|
314
348
|
}
|
|
315
349
|
const cap = capability;
|
|
350
|
+
const capName = capabilityName ? `"${capabilityName}"` : (cap.name ? `"${cap.name}"` : `#${index + 1}`);
|
|
316
351
|
// Check required fields
|
|
317
352
|
if (!cap.name) {
|
|
318
353
|
issues.push({
|
|
319
354
|
severity: 'error',
|
|
320
355
|
code: validation_js_1.ValidationErrorCodes.INVALID_CAPABILITY_STRUCTURE,
|
|
321
356
|
path: `${path}.name`,
|
|
322
|
-
message:
|
|
357
|
+
message: `Capability #${index + 1} missing required "name" field`,
|
|
358
|
+
hint: 'Add a name like "checkout", "order", or "fulfillment"',
|
|
323
359
|
});
|
|
324
360
|
}
|
|
325
361
|
if (!cap.version) {
|
|
@@ -327,7 +363,8 @@ function validateCapability(capability, index) {
|
|
|
327
363
|
severity: 'error',
|
|
328
364
|
code: validation_js_1.ValidationErrorCodes.INVALID_CAPABILITY_STRUCTURE,
|
|
329
365
|
path: `${path}.version`,
|
|
330
|
-
message:
|
|
366
|
+
message: `Capability ${capName} missing required "version" field`,
|
|
367
|
+
hint: 'Add version in format "YYYY-MM-DD" (e.g., "2026-01-11")',
|
|
331
368
|
});
|
|
332
369
|
}
|
|
333
370
|
else if (typeof cap.version === 'string' && !VERSION_REGEX.test(cap.version)) {
|
|
@@ -335,8 +372,8 @@ function validateCapability(capability, index) {
|
|
|
335
372
|
severity: 'error',
|
|
336
373
|
code: validation_js_1.ValidationErrorCodes.INVALID_VERSION_FORMAT,
|
|
337
374
|
path: `${path}.version`,
|
|
338
|
-
message: `
|
|
339
|
-
hint: 'Use format "YYYY-MM-DD"',
|
|
375
|
+
message: `Capability ${capName} has invalid version format: "${cap.version}"`,
|
|
376
|
+
hint: 'Use format "YYYY-MM-DD" (e.g., "2026-01-11")',
|
|
340
377
|
});
|
|
341
378
|
}
|
|
342
379
|
if (!cap.spec) {
|
|
@@ -344,7 +381,8 @@ function validateCapability(capability, index) {
|
|
|
344
381
|
severity: 'error',
|
|
345
382
|
code: validation_js_1.ValidationErrorCodes.INVALID_CAPABILITY_STRUCTURE,
|
|
346
383
|
path: `${path}.spec`,
|
|
347
|
-
message:
|
|
384
|
+
message: `Capability ${capName} missing required "spec" field`,
|
|
385
|
+
hint: 'Add spec URL like "https://ucp.dev/specs/checkout/1.0"',
|
|
348
386
|
});
|
|
349
387
|
}
|
|
350
388
|
if (!cap.schema) {
|
|
@@ -352,7 +390,8 @@ function validateCapability(capability, index) {
|
|
|
352
390
|
severity: 'error',
|
|
353
391
|
code: validation_js_1.ValidationErrorCodes.INVALID_CAPABILITY_STRUCTURE,
|
|
354
392
|
path: `${path}.schema`,
|
|
355
|
-
message:
|
|
393
|
+
message: `Capability ${capName} missing required "schema" field`,
|
|
394
|
+
hint: 'Add schema URL pointing to JSON Schema for this capability',
|
|
356
395
|
});
|
|
357
396
|
}
|
|
358
397
|
return issues;
|
|
@@ -412,4 +451,195 @@ function validateJwk(jwk, path) {
|
|
|
412
451
|
}
|
|
413
452
|
return issues;
|
|
414
453
|
}
|
|
454
|
+
/**
|
|
455
|
+
* Validate payment handlers (required per UCP spec 2026-01-11)
|
|
456
|
+
* Supports both formats:
|
|
457
|
+
* - Google format: { payment: { handlers: [...] } }
|
|
458
|
+
* - Shopify format: { payment_handlers: { [name]: [...] } }
|
|
459
|
+
*/
|
|
460
|
+
function validatePaymentHandlers(profile) {
|
|
461
|
+
const issues = [];
|
|
462
|
+
// Check for payment handlers in both Google and Shopify formats
|
|
463
|
+
const hasPaymentObject = profile.payment && typeof profile.payment === 'object';
|
|
464
|
+
const hasPaymentHandlers = profile.payment_handlers && typeof profile.payment_handlers === 'object';
|
|
465
|
+
if (!hasPaymentObject && !hasPaymentHandlers) {
|
|
466
|
+
issues.push({
|
|
467
|
+
severity: 'error',
|
|
468
|
+
code: validation_js_1.ValidationErrorCodes.MISSING_PAYMENT_HANDLERS,
|
|
469
|
+
path: '$.payment',
|
|
470
|
+
message: 'Missing required "payment" object',
|
|
471
|
+
hint: 'Add payment object with handlers array per UCP spec, or payment_handlers for Shopify format',
|
|
472
|
+
});
|
|
473
|
+
return issues;
|
|
474
|
+
}
|
|
475
|
+
// Normalize handlers from both formats
|
|
476
|
+
const normalizedHandlers = normalizePaymentHandlers(profile);
|
|
477
|
+
if (normalizedHandlers.length === 0) {
|
|
478
|
+
const path = hasPaymentHandlers ? '$.payment_handlers' : '$.payment.handlers';
|
|
479
|
+
issues.push({
|
|
480
|
+
severity: 'error',
|
|
481
|
+
code: validation_js_1.ValidationErrorCodes.MISSING_PAYMENT_HANDLERS,
|
|
482
|
+
path,
|
|
483
|
+
message: 'Payment handlers must be a non-empty array or object',
|
|
484
|
+
hint: 'Add at least one payment handler configuration',
|
|
485
|
+
});
|
|
486
|
+
return issues;
|
|
487
|
+
}
|
|
488
|
+
// Validate each handler - use relaxed requirements for Shopify format
|
|
489
|
+
// Google spec requires: id, name, version, spec, config_schema, instrument_schemas
|
|
490
|
+
// Shopify provides: id, version, spec, schema, config
|
|
491
|
+
const coreFields = ['id', 'version', 'spec'];
|
|
492
|
+
normalizedHandlers.forEach((handler, idx) => {
|
|
493
|
+
const handlerPath = `$.payment_handlers[${idx}]`;
|
|
494
|
+
if (!handler || typeof handler !== 'object') {
|
|
495
|
+
issues.push({
|
|
496
|
+
severity: 'error',
|
|
497
|
+
code: validation_js_1.ValidationErrorCodes.PAYMENT_HANDLER_MISSING_FIELD,
|
|
498
|
+
path: handlerPath,
|
|
499
|
+
message: `Payment handler ${idx + 1} must be an object`,
|
|
500
|
+
});
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
const handlerObj = handler;
|
|
504
|
+
// Check core required fields (common to both formats)
|
|
505
|
+
coreFields.forEach(field => {
|
|
506
|
+
if (!handlerObj[field]) {
|
|
507
|
+
issues.push({
|
|
508
|
+
severity: 'error',
|
|
509
|
+
code: validation_js_1.ValidationErrorCodes.PAYMENT_HANDLER_MISSING_FIELD,
|
|
510
|
+
path: `${handlerPath}.${field}`,
|
|
511
|
+
message: `Payment handler ${idx + 1} missing required field: ${field}`,
|
|
512
|
+
hint: `Add "${field}" to payment handler configuration`,
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
});
|
|
516
|
+
// Additional fields are warnings (different formats have different requirements)
|
|
517
|
+
if (!handlerObj.schema && !handlerObj.config_schema) {
|
|
518
|
+
issues.push({
|
|
519
|
+
severity: 'warn',
|
|
520
|
+
code: validation_js_1.ValidationErrorCodes.PAYMENT_HANDLER_MISSING_FIELD,
|
|
521
|
+
path: `${handlerPath}.schema`,
|
|
522
|
+
message: `Payment handler ${idx + 1} missing schema/config_schema field`,
|
|
523
|
+
hint: 'Add "schema" or "config_schema" for full spec compliance',
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
return issues;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Validate Identity Linking capability config (per official spec).
|
|
531
|
+
* Identity Linking is a capability under dev.ucp.common.identity_linking
|
|
532
|
+
* with config.supported_mechanisms[{ type: "oauth2", issuer: "..." }].
|
|
533
|
+
*/
|
|
534
|
+
function validateIdentityLinkingCapability(ucp) {
|
|
535
|
+
const issues = [];
|
|
536
|
+
// Normalize capabilities to find identity_linking
|
|
537
|
+
const capabilities = (0, utils_js_1.normalizeCapabilities)(ucp.capabilities);
|
|
538
|
+
const identityCap = capabilities.find(c => c.name === 'dev.ucp.common.identity_linking');
|
|
539
|
+
if (!identityCap) {
|
|
540
|
+
return issues; // Not declared - that's fine, it's optional
|
|
541
|
+
}
|
|
542
|
+
const basePath = '$.ucp.capabilities["dev.ucp.common.identity_linking"]';
|
|
543
|
+
// Must have config with supported_mechanisms
|
|
544
|
+
if (!identityCap.config) {
|
|
545
|
+
issues.push({
|
|
546
|
+
severity: 'error',
|
|
547
|
+
code: validation_js_1.ValidationErrorCodes.IDENTITY_MISSING_MECHANISMS,
|
|
548
|
+
path: `${basePath}.config`,
|
|
549
|
+
message: 'Identity Linking capability requires a "config" object with "supported_mechanisms"',
|
|
550
|
+
hint: 'Add config: { supported_mechanisms: [{ type: "oauth2", issuer: "https://..." }] }',
|
|
551
|
+
});
|
|
552
|
+
return issues;
|
|
553
|
+
}
|
|
554
|
+
const config = identityCap.config;
|
|
555
|
+
const mechanisms = config.supported_mechanisms;
|
|
556
|
+
if (!Array.isArray(mechanisms) || mechanisms.length === 0) {
|
|
557
|
+
issues.push({
|
|
558
|
+
severity: 'error',
|
|
559
|
+
code: validation_js_1.ValidationErrorCodes.IDENTITY_MISSING_MECHANISMS,
|
|
560
|
+
path: `${basePath}.config.supported_mechanisms`,
|
|
561
|
+
message: 'Identity Linking requires at least one supported mechanism',
|
|
562
|
+
hint: 'Add supported_mechanisms: [{ type: "oauth2", issuer: "https://your-domain.com" }]',
|
|
563
|
+
});
|
|
564
|
+
return issues;
|
|
565
|
+
}
|
|
566
|
+
// Validate each mechanism
|
|
567
|
+
for (let i = 0; i < mechanisms.length; i++) {
|
|
568
|
+
const mech = mechanisms[i];
|
|
569
|
+
const mechPath = `${basePath}.config.supported_mechanisms[${i}]`;
|
|
570
|
+
if (!mech || typeof mech !== 'object') {
|
|
571
|
+
issues.push({
|
|
572
|
+
severity: 'error',
|
|
573
|
+
code: validation_js_1.ValidationErrorCodes.IDENTITY_INVALID_MECHANISM,
|
|
574
|
+
path: mechPath,
|
|
575
|
+
message: `Mechanism ${i} must be an object`,
|
|
576
|
+
});
|
|
577
|
+
continue;
|
|
578
|
+
}
|
|
579
|
+
// type is required (currently only "oauth2" is defined)
|
|
580
|
+
if (!mech.type || typeof mech.type !== 'string') {
|
|
581
|
+
issues.push({
|
|
582
|
+
severity: 'error',
|
|
583
|
+
code: validation_js_1.ValidationErrorCodes.IDENTITY_INVALID_MECHANISM,
|
|
584
|
+
path: `${mechPath}.type`,
|
|
585
|
+
message: 'Mechanism missing required "type" field',
|
|
586
|
+
hint: 'Set type to "oauth2"',
|
|
587
|
+
});
|
|
588
|
+
continue;
|
|
589
|
+
}
|
|
590
|
+
if (mech.type === 'oauth2') {
|
|
591
|
+
// issuer is required for oauth2 and must be a URI
|
|
592
|
+
if (!mech.issuer || typeof mech.issuer !== 'string') {
|
|
593
|
+
issues.push({
|
|
594
|
+
severity: 'error',
|
|
595
|
+
code: validation_js_1.ValidationErrorCodes.IDENTITY_MISSING_ISSUER,
|
|
596
|
+
path: `${mechPath}.issuer`,
|
|
597
|
+
message: 'OAuth2 mechanism requires an "issuer" URI for RFC 8414 discovery',
|
|
598
|
+
hint: 'Add issuer URL (e.g., "https://your-domain.com")',
|
|
599
|
+
});
|
|
600
|
+
}
|
|
601
|
+
else if (!mech.issuer.startsWith('https://')) {
|
|
602
|
+
issues.push({
|
|
603
|
+
severity: 'error',
|
|
604
|
+
code: validation_js_1.ValidationErrorCodes.IDENTITY_ISSUER_NOT_HTTPS,
|
|
605
|
+
path: `${mechPath}.issuer`,
|
|
606
|
+
message: 'OAuth2 issuer must use HTTPS',
|
|
607
|
+
hint: `Change "${mech.issuer}" to use https://`,
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
return issues;
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Normalize payment handlers from both Google and Shopify formats
|
|
616
|
+
* - Google: { payment: { handlers: [...] } }
|
|
617
|
+
* - Shopify: { payment_handlers: { [name]: [{...}, ...] } }
|
|
618
|
+
*/
|
|
619
|
+
function normalizePaymentHandlers(profile) {
|
|
620
|
+
// Try Shopify format first (payment_handlers at root)
|
|
621
|
+
if (profile.payment_handlers && typeof profile.payment_handlers === 'object') {
|
|
622
|
+
const handlers = [];
|
|
623
|
+
const paymentHandlers = profile.payment_handlers;
|
|
624
|
+
for (const [_name, entries] of Object.entries(paymentHandlers)) {
|
|
625
|
+
if (Array.isArray(entries)) {
|
|
626
|
+
handlers.push(...entries);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
if (handlers.length > 0) {
|
|
630
|
+
return handlers;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
// Try Google format (payment.handlers)
|
|
634
|
+
if (profile.payment && typeof profile.payment === 'object') {
|
|
635
|
+
const payment = profile.payment;
|
|
636
|
+
if (Array.isArray(payment.handlers)) {
|
|
637
|
+
return payment.handlers;
|
|
638
|
+
}
|
|
639
|
+
if (payment.handlers && typeof payment.handlers === 'object') {
|
|
640
|
+
return Object.values(payment.handlers);
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
return [];
|
|
644
|
+
}
|
|
415
645
|
//# sourceMappingURL=structural-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural-validator.js","sourceRoot":"","sources":["../../src/validator/structural-validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structural-validator.js","sourceRoot":"","sources":["../../src/validator/structural-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validator Utilities
|
|
3
|
+
* Helper functions for normalizing UCP profile data
|
|
4
|
+
*/
|
|
5
|
+
import type { UcpCapability, UcpService, UcpCapabilities } from '../types/ucp-profile.js';
|
|
6
|
+
import type { ValidationSeverity } from '../types/validation.js';
|
|
7
|
+
/**
|
|
8
|
+
* Capability entry in the object-keyed format (Shopify style)
|
|
9
|
+
* Where capabilities is: { [name]: CapabilityEntry[] }
|
|
10
|
+
*/
|
|
11
|
+
export interface CapabilityEntry {
|
|
12
|
+
version: string;
|
|
13
|
+
spec?: string;
|
|
14
|
+
schema?: string;
|
|
15
|
+
extends?: string;
|
|
16
|
+
config?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Service entry in array format (Shopify style)
|
|
20
|
+
* Where services is: { [name]: ServiceEntry[] }
|
|
21
|
+
*/
|
|
22
|
+
export interface ServiceEntry {
|
|
23
|
+
version: string;
|
|
24
|
+
spec?: string;
|
|
25
|
+
transport?: string;
|
|
26
|
+
endpoint?: string;
|
|
27
|
+
schema?: string;
|
|
28
|
+
rest?: UcpService['rest'];
|
|
29
|
+
mcp?: UcpService['mcp'];
|
|
30
|
+
a2a?: UcpService['a2a'];
|
|
31
|
+
embedded?: UcpService['embedded'];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if a capability is a draft specification
|
|
35
|
+
*/
|
|
36
|
+
export declare function isDraftCapability(capabilityName: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Resolve validation severity based on capability stability.
|
|
39
|
+
* Discovery blockers are always errors regardless of draft/stable status.
|
|
40
|
+
* Draft capabilities get warnings; stable capabilities get errors.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveSeverity(capabilityName: string, isDiscoveryBlocker?: boolean): ValidationSeverity;
|
|
43
|
+
/**
|
|
44
|
+
* Capabilities can be in two formats:
|
|
45
|
+
* 1. Array format: [{ name, version, spec, schema, ... }, ...]
|
|
46
|
+
* 2. Object format (Shopify): { [name]: [{ version, spec, schema, ... }, ...] }
|
|
47
|
+
*
|
|
48
|
+
* This function normalizes both to our standard array format.
|
|
49
|
+
*/
|
|
50
|
+
export declare function normalizeCapabilities(capabilities: UcpCapabilities | unknown): UcpCapability[];
|
|
51
|
+
/**
|
|
52
|
+
* Services can be in two formats:
|
|
53
|
+
* 1. Object format (our format): { [name]: { version, rest?, mcp?, ... } }
|
|
54
|
+
* 2. Array format (Shopify): { [name]: [{ version, transport, endpoint, ... }, ...] }
|
|
55
|
+
*
|
|
56
|
+
* This function normalizes services and returns individual service objects.
|
|
57
|
+
*/
|
|
58
|
+
export declare function normalizeServices(services: Record<string, UcpService | UcpService[] | ServiceEntry[]> | undefined): Array<{
|
|
59
|
+
name: string;
|
|
60
|
+
service: UcpService;
|
|
61
|
+
}>;
|
|
62
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/validator/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACxB,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,EACtB,kBAAkB,GAAE,OAAe,GAClC,kBAAkB,CAGpB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,eAAe,GAAG,OAAO,GACtC,aAAa,EAAE,CA0CjB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC,GAAG,SAAS,GAC/E,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC,CAuB9C"}
|