@aep-foundation/conformance 0.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 (62) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +72 -0
  4. package/dist/index.cjs +473 -0
  5. package/dist/index.cjs.map +1 -0
  6. package/dist/index.d.cts +110 -0
  7. package/dist/index.d.ts +110 -0
  8. package/dist/index.js +406 -0
  9. package/dist/index.js.map +1 -0
  10. package/fixtures/aep-specs/manifest.json +61 -0
  11. package/fixtures/aep-specs/schemas/README.md +57 -0
  12. package/fixtures/aep-specs/schemas/api-key-grant-response.schema.json +32 -0
  13. package/fixtures/aep-specs/schemas/basic-grant-response.schema.json +36 -0
  14. package/fixtures/aep-specs/schemas/client-assertion-claims.schema.json +36 -0
  15. package/fixtures/aep-specs/schemas/enroll-request.schema.json +22 -0
  16. package/fixtures/aep-specs/schemas/enroll-response.schema.json +24 -0
  17. package/fixtures/aep-specs/schemas/grant-request.schema.json +20 -0
  18. package/fixtures/aep-specs/schemas/idempotency-metadata.schema.json +26 -0
  19. package/fixtures/aep-specs/schemas/inspect-document.schema.json +136 -0
  20. package/fixtures/aep-specs/schemas/oauth-bearer-grant-response.schema.json +32 -0
  21. package/fixtures/aep-specs/schemas/platform-agent-identity-list-response.schema.json +78 -0
  22. package/fixtures/aep-specs/schemas/platform-agent-identity.schema.json +60 -0
  23. package/fixtures/aep-specs/schemas/platform-discovery.schema.json +107 -0
  24. package/fixtures/aep-specs/schemas/platform-lifecycle-request.schema.json +14 -0
  25. package/fixtures/aep-specs/schemas/platform-lifecycle-response.schema.json +60 -0
  26. package/fixtures/aep-specs/schemas/platform-provision-request.schema.json +18 -0
  27. package/fixtures/aep-specs/schemas/platform-sign-request.schema.json +26 -0
  28. package/fixtures/aep-specs/schemas/platform-sign-response.schema.json +34 -0
  29. package/fixtures/aep-specs/schemas/platform-verification-request.schema.json +22 -0
  30. package/fixtures/aep-specs/schemas/platform-verification-response.schema.json +37 -0
  31. package/fixtures/aep-specs/schemas/problem.schema.json +25 -0
  32. package/fixtures/aep-specs/schemas/revoke-request.schema.json +32 -0
  33. package/fixtures/aep-specs/schemas/revoke-response.schema.json +7 -0
  34. package/fixtures/aep-specs/schemas/status-response.schema.json +28 -0
  35. package/fixtures/aep-specs/test-vectors/README.md +100 -0
  36. package/fixtures/aep-specs/test-vectors/client-assertion/enroll-claims.json +26 -0
  37. package/fixtures/aep-specs/test-vectors/credentials/api-key/grant-response.json +20 -0
  38. package/fixtures/aep-specs/test-vectors/credentials/basic/grant-response.json +21 -0
  39. package/fixtures/aep-specs/test-vectors/credentials/oauth-bearer/grant-response.json +20 -0
  40. package/fixtures/aep-specs/test-vectors/enroll/request-minimal.json +24 -0
  41. package/fixtures/aep-specs/test-vectors/enroll/response-active.json +19 -0
  42. package/fixtures/aep-specs/test-vectors/errors/not-recognized-problem.json +22 -0
  43. package/fixtures/aep-specs/test-vectors/grant-revoke/grant-request-oauth-bearer.json +25 -0
  44. package/fixtures/aep-specs/test-vectors/grant-revoke/revoke-request-all-grant-types.json +23 -0
  45. package/fixtures/aep-specs/test-vectors/grant-revoke/revoke-request-oauth-bearer.json +25 -0
  46. package/fixtures/aep-specs/test-vectors/grant-revoke/revoke-response-empty.json +17 -0
  47. package/fixtures/aep-specs/test-vectors/idempotency/enroll-conflict.json +25 -0
  48. package/fixtures/aep-specs/test-vectors/inspect/minimal-http.json +45 -0
  49. package/fixtures/aep-specs/test-vectors/platform/discovery.json +36 -0
  50. package/fixtures/aep-specs/test-vectors/platform/lifecycle-request.json +13 -0
  51. package/fixtures/aep-specs/test-vectors/platform/lifecycle-response.json +21 -0
  52. package/fixtures/aep-specs/test-vectors/platform/list-response.json +35 -0
  53. package/fixtures/aep-specs/test-vectors/platform/provision-request.json +14 -0
  54. package/fixtures/aep-specs/test-vectors/platform/provision-response-distinct-services.json +44 -0
  55. package/fixtures/aep-specs/test-vectors/platform/provision-response.json +21 -0
  56. package/fixtures/aep-specs/test-vectors/platform/sign-request.json +16 -0
  57. package/fixtures/aep-specs/test-vectors/platform/sign-response.json +18 -0
  58. package/fixtures/aep-specs/test-vectors/platform/verification-request.json +15 -0
  59. package/fixtures/aep-specs/test-vectors/platform/verification-response-recognized.json +19 -0
  60. package/fixtures/aep-specs/test-vectors/platform/verification-response-unrecognized.json +15 -0
  61. package/fixtures/aep-specs/test-vectors/status/response-active.json +22 -0
  62. package/package.json +56 -0
@@ -0,0 +1,110 @@
1
+ import { ValidationIssue, AepGrantType, AepBuiltInGrantResponse, EnrollRequest, EnrollResponse, GrantRequest, InspectDocument, AepProblemDetails, RevokeRequest, RevokeResponse, StatusResponse, ValidationResult } from '@aep-foundation/core';
2
+
3
+ declare const specArtifactsRoot: string;
4
+ declare const schemaArtifactsRoot: string;
5
+ declare const testVectorArtifactsRoot: string;
6
+ declare const specArtifactManifestPath: string;
7
+ interface SpecArtifactManifest {
8
+ source: string;
9
+ generated_by: string;
10
+ artifacts: {
11
+ schemas: string[];
12
+ "test-vectors": string[];
13
+ };
14
+ }
15
+ interface AepTestVector<TInput = unknown, TExpected = unknown> {
16
+ id: string;
17
+ title?: string;
18
+ description?: string;
19
+ drafts?: string[];
20
+ category?: string;
21
+ applies_to?: string[];
22
+ profile?: string;
23
+ input: TInput;
24
+ expected: TExpected;
25
+ [key: string]: unknown;
26
+ }
27
+ declare class AepConformanceError extends Error {
28
+ readonly issues: ValidationIssue[];
29
+ constructor(message: string, issues: ValidationIssue[]);
30
+ }
31
+ declare function loadSpecArtifactManifest(): Promise<SpecArtifactManifest>;
32
+ declare function schemaArtifactPath(relativePath: string): string;
33
+ declare function testVectorArtifactPath(relativePath: string): string;
34
+ declare function loadSchemaArtifact<T = unknown>(relativePath: string): Promise<T>;
35
+ declare function loadTestVector<TInput = unknown, TExpected = unknown>(relativePath: string): Promise<AepTestVector<TInput, TExpected>>;
36
+ declare function validateInspectConformance(value: unknown): ValidationResult<InspectDocument>;
37
+ declare function validateEnrollRequestConformance(value: unknown): ValidationResult<EnrollRequest>;
38
+ declare function validateEnrollResponseConformance(value: unknown): ValidationResult<EnrollResponse>;
39
+ declare function validateStatusResponseConformance(value: unknown): ValidationResult<StatusResponse>;
40
+ declare function validateGrantRequestConformance(value: unknown): ValidationResult<GrantRequest>;
41
+ declare function validateRevokeRequestConformance(value: unknown): ValidationResult<RevokeRequest>;
42
+ declare function validateRevokeResponseConformance(value: unknown): ValidationResult<RevokeResponse>;
43
+ declare function validateBuiltInGrantResponseConformance(grantType: AepGrantType, value: unknown): ValidationResult<AepBuiltInGrantResponse>;
44
+ declare function validateProblemDetailsConformance(value: unknown): ValidationResult<AepProblemDetails>;
45
+ declare function assertInspectConformance(value: unknown): InspectDocument;
46
+ declare function assertEnrollRequestConformance(value: unknown): EnrollRequest;
47
+ declare function assertEnrollResponseConformance(value: unknown): EnrollResponse;
48
+ declare function assertStatusResponseConformance(value: unknown): StatusResponse;
49
+ declare function assertGrantRequestConformance(value: unknown): GrantRequest;
50
+ declare function assertRevokeRequestConformance(value: unknown): RevokeRequest;
51
+ declare function assertRevokeResponseConformance(value: unknown): RevokeResponse;
52
+ declare function assertBuiltInGrantResponseConformance(grantType: AepGrantType, value: unknown): AepBuiltInGrantResponse;
53
+ declare function assertProblemDetailsConformance(value: unknown): AepProblemDetails;
54
+ declare function loadMinimalInspectTestVector(): Promise<AepTestVector<Record<string, never>, InspectDocument>>;
55
+ declare function loadMinimalEnrollRequestTestVector(): Promise<AepTestVector<EnrollRequest, Record<string, unknown>>>;
56
+ declare function loadActiveEnrollResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, {
57
+ body: EnrollResponse;
58
+ content_type: string;
59
+ status: number;
60
+ }>>;
61
+ declare function loadActiveStatusResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, {
62
+ body: StatusResponse;
63
+ content_type: string;
64
+ status: number;
65
+ }>>;
66
+ declare function loadOAuthBearerGrantRequestTestVector(): Promise<AepTestVector<GrantRequest, AepCommandRequestExpectation<GrantRequest>>>;
67
+ declare function loadOAuthBearerRevokeRequestTestVector(): Promise<AepTestVector<RevokeRequest, AepCommandRequestExpectation<RevokeRequest>>>;
68
+ declare function loadAllGrantTypesRevokeRequestTestVector(): Promise<AepTestVector<RevokeRequest, AepCommandRequestExpectation<RevokeRequest> & {
69
+ must_not_contain?: string[];
70
+ }>>;
71
+ declare function loadEmptyRevokeResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, AepCommandResponseExpectation<RevokeResponse>>>;
72
+ declare function loadOAuthBearerGrantResponseTestVector(): Promise<AepTestVector<GrantRequest, AepBuiltInGrantResponse>>;
73
+ declare function loadApiKeyGrantResponseTestVector(): Promise<AepTestVector<GrantRequest, AepBuiltInGrantResponse>>;
74
+ declare function loadBasicGrantResponseTestVector(): Promise<AepTestVector<GrantRequest, AepBuiltInGrantResponse>>;
75
+ declare function loadNotRecognizedProblemTestVector(): Promise<AepTestVector<{
76
+ failure_class: string;
77
+ }, AepCommandResponseExpectation<AepProblemDetails>>>;
78
+ declare function loadEnrollIdempotencyConflictTestVector(): Promise<AepTestVector<AepEnrollIdempotencyConflictInput, AepCommandResponseExpectation<AepProblemDetails>>>;
79
+ declare function loadPlatformDiscoveryTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
80
+ declare function loadPlatformProvisionRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
81
+ declare function loadPlatformProvisionResponseTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
82
+ declare function loadPlatformListResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, unknown>>>;
83
+ declare function loadPlatformLifecycleRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
84
+ declare function loadPlatformLifecycleResponseTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
85
+ declare function loadPlatformSignRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
86
+ declare function loadPlatformSignResponseTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
87
+ declare function loadPlatformVerificationRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
88
+ declare function loadPlatformVerificationResponseRecognizedTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
89
+ declare function loadPlatformVerificationResponseUnrecognizedTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
90
+ interface AepCommandRequestExpectation<TBody> {
91
+ authorization_scheme: string;
92
+ body: TBody;
93
+ client_assertion_op: string;
94
+ content_type: string;
95
+ method: string;
96
+ path: string;
97
+ }
98
+ interface AepCommandResponseExpectation<TBody> {
99
+ body: TBody;
100
+ content_type: string;
101
+ status: number;
102
+ }
103
+ interface AepEnrollIdempotencyConflictInput {
104
+ agent_did: string;
105
+ first_body_hash: string;
106
+ idempotency_key: string;
107
+ second_body_hash: string;
108
+ }
109
+
110
+ export { type AepCommandResponseExpectation, AepConformanceError, type AepEnrollIdempotencyConflictInput, type AepTestVector, type SpecArtifactManifest, assertBuiltInGrantResponseConformance, assertEnrollRequestConformance, assertEnrollResponseConformance, assertGrantRequestConformance, assertInspectConformance, assertProblemDetailsConformance, assertRevokeRequestConformance, assertRevokeResponseConformance, assertStatusResponseConformance, loadActiveEnrollResponseTestVector, loadActiveStatusResponseTestVector, loadAllGrantTypesRevokeRequestTestVector, loadApiKeyGrantResponseTestVector, loadBasicGrantResponseTestVector, loadEmptyRevokeResponseTestVector, loadEnrollIdempotencyConflictTestVector, loadMinimalEnrollRequestTestVector, loadMinimalInspectTestVector, loadNotRecognizedProblemTestVector, loadOAuthBearerGrantRequestTestVector, loadOAuthBearerGrantResponseTestVector, loadOAuthBearerRevokeRequestTestVector, loadPlatformDiscoveryTestVector, loadPlatformLifecycleRequestTestVector, loadPlatformLifecycleResponseTestVector, loadPlatformListResponseTestVector, loadPlatformProvisionRequestTestVector, loadPlatformProvisionResponseTestVector, loadPlatformSignRequestTestVector, loadPlatformSignResponseTestVector, loadPlatformVerificationRequestTestVector, loadPlatformVerificationResponseRecognizedTestVector, loadPlatformVerificationResponseUnrecognizedTestVector, loadSchemaArtifact, loadSpecArtifactManifest, loadTestVector, schemaArtifactPath, schemaArtifactsRoot, specArtifactManifestPath, specArtifactsRoot, testVectorArtifactPath, testVectorArtifactsRoot, validateBuiltInGrantResponseConformance, validateEnrollRequestConformance, validateEnrollResponseConformance, validateGrantRequestConformance, validateInspectConformance, validateProblemDetailsConformance, validateRevokeRequestConformance, validateRevokeResponseConformance, validateStatusResponseConformance };
@@ -0,0 +1,110 @@
1
+ import { ValidationIssue, AepGrantType, AepBuiltInGrantResponse, EnrollRequest, EnrollResponse, GrantRequest, InspectDocument, AepProblemDetails, RevokeRequest, RevokeResponse, StatusResponse, ValidationResult } from '@aep-foundation/core';
2
+
3
+ declare const specArtifactsRoot: string;
4
+ declare const schemaArtifactsRoot: string;
5
+ declare const testVectorArtifactsRoot: string;
6
+ declare const specArtifactManifestPath: string;
7
+ interface SpecArtifactManifest {
8
+ source: string;
9
+ generated_by: string;
10
+ artifacts: {
11
+ schemas: string[];
12
+ "test-vectors": string[];
13
+ };
14
+ }
15
+ interface AepTestVector<TInput = unknown, TExpected = unknown> {
16
+ id: string;
17
+ title?: string;
18
+ description?: string;
19
+ drafts?: string[];
20
+ category?: string;
21
+ applies_to?: string[];
22
+ profile?: string;
23
+ input: TInput;
24
+ expected: TExpected;
25
+ [key: string]: unknown;
26
+ }
27
+ declare class AepConformanceError extends Error {
28
+ readonly issues: ValidationIssue[];
29
+ constructor(message: string, issues: ValidationIssue[]);
30
+ }
31
+ declare function loadSpecArtifactManifest(): Promise<SpecArtifactManifest>;
32
+ declare function schemaArtifactPath(relativePath: string): string;
33
+ declare function testVectorArtifactPath(relativePath: string): string;
34
+ declare function loadSchemaArtifact<T = unknown>(relativePath: string): Promise<T>;
35
+ declare function loadTestVector<TInput = unknown, TExpected = unknown>(relativePath: string): Promise<AepTestVector<TInput, TExpected>>;
36
+ declare function validateInspectConformance(value: unknown): ValidationResult<InspectDocument>;
37
+ declare function validateEnrollRequestConformance(value: unknown): ValidationResult<EnrollRequest>;
38
+ declare function validateEnrollResponseConformance(value: unknown): ValidationResult<EnrollResponse>;
39
+ declare function validateStatusResponseConformance(value: unknown): ValidationResult<StatusResponse>;
40
+ declare function validateGrantRequestConformance(value: unknown): ValidationResult<GrantRequest>;
41
+ declare function validateRevokeRequestConformance(value: unknown): ValidationResult<RevokeRequest>;
42
+ declare function validateRevokeResponseConformance(value: unknown): ValidationResult<RevokeResponse>;
43
+ declare function validateBuiltInGrantResponseConformance(grantType: AepGrantType, value: unknown): ValidationResult<AepBuiltInGrantResponse>;
44
+ declare function validateProblemDetailsConformance(value: unknown): ValidationResult<AepProblemDetails>;
45
+ declare function assertInspectConformance(value: unknown): InspectDocument;
46
+ declare function assertEnrollRequestConformance(value: unknown): EnrollRequest;
47
+ declare function assertEnrollResponseConformance(value: unknown): EnrollResponse;
48
+ declare function assertStatusResponseConformance(value: unknown): StatusResponse;
49
+ declare function assertGrantRequestConformance(value: unknown): GrantRequest;
50
+ declare function assertRevokeRequestConformance(value: unknown): RevokeRequest;
51
+ declare function assertRevokeResponseConformance(value: unknown): RevokeResponse;
52
+ declare function assertBuiltInGrantResponseConformance(grantType: AepGrantType, value: unknown): AepBuiltInGrantResponse;
53
+ declare function assertProblemDetailsConformance(value: unknown): AepProblemDetails;
54
+ declare function loadMinimalInspectTestVector(): Promise<AepTestVector<Record<string, never>, InspectDocument>>;
55
+ declare function loadMinimalEnrollRequestTestVector(): Promise<AepTestVector<EnrollRequest, Record<string, unknown>>>;
56
+ declare function loadActiveEnrollResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, {
57
+ body: EnrollResponse;
58
+ content_type: string;
59
+ status: number;
60
+ }>>;
61
+ declare function loadActiveStatusResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, {
62
+ body: StatusResponse;
63
+ content_type: string;
64
+ status: number;
65
+ }>>;
66
+ declare function loadOAuthBearerGrantRequestTestVector(): Promise<AepTestVector<GrantRequest, AepCommandRequestExpectation<GrantRequest>>>;
67
+ declare function loadOAuthBearerRevokeRequestTestVector(): Promise<AepTestVector<RevokeRequest, AepCommandRequestExpectation<RevokeRequest>>>;
68
+ declare function loadAllGrantTypesRevokeRequestTestVector(): Promise<AepTestVector<RevokeRequest, AepCommandRequestExpectation<RevokeRequest> & {
69
+ must_not_contain?: string[];
70
+ }>>;
71
+ declare function loadEmptyRevokeResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, AepCommandResponseExpectation<RevokeResponse>>>;
72
+ declare function loadOAuthBearerGrantResponseTestVector(): Promise<AepTestVector<GrantRequest, AepBuiltInGrantResponse>>;
73
+ declare function loadApiKeyGrantResponseTestVector(): Promise<AepTestVector<GrantRequest, AepBuiltInGrantResponse>>;
74
+ declare function loadBasicGrantResponseTestVector(): Promise<AepTestVector<GrantRequest, AepBuiltInGrantResponse>>;
75
+ declare function loadNotRecognizedProblemTestVector(): Promise<AepTestVector<{
76
+ failure_class: string;
77
+ }, AepCommandResponseExpectation<AepProblemDetails>>>;
78
+ declare function loadEnrollIdempotencyConflictTestVector(): Promise<AepTestVector<AepEnrollIdempotencyConflictInput, AepCommandResponseExpectation<AepProblemDetails>>>;
79
+ declare function loadPlatformDiscoveryTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
80
+ declare function loadPlatformProvisionRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
81
+ declare function loadPlatformProvisionResponseTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
82
+ declare function loadPlatformListResponseTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, unknown>>>;
83
+ declare function loadPlatformLifecycleRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
84
+ declare function loadPlatformLifecycleResponseTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
85
+ declare function loadPlatformSignRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
86
+ declare function loadPlatformSignResponseTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
87
+ declare function loadPlatformVerificationRequestTestVector(): Promise<AepTestVector<Record<string, unknown>, Record<string, never>>>;
88
+ declare function loadPlatformVerificationResponseRecognizedTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
89
+ declare function loadPlatformVerificationResponseUnrecognizedTestVector(): Promise<AepTestVector<Record<string, never>, Record<string, unknown>>>;
90
+ interface AepCommandRequestExpectation<TBody> {
91
+ authorization_scheme: string;
92
+ body: TBody;
93
+ client_assertion_op: string;
94
+ content_type: string;
95
+ method: string;
96
+ path: string;
97
+ }
98
+ interface AepCommandResponseExpectation<TBody> {
99
+ body: TBody;
100
+ content_type: string;
101
+ status: number;
102
+ }
103
+ interface AepEnrollIdempotencyConflictInput {
104
+ agent_did: string;
105
+ first_body_hash: string;
106
+ idempotency_key: string;
107
+ second_body_hash: string;
108
+ }
109
+
110
+ export { type AepCommandResponseExpectation, AepConformanceError, type AepEnrollIdempotencyConflictInput, type AepTestVector, type SpecArtifactManifest, assertBuiltInGrantResponseConformance, assertEnrollRequestConformance, assertEnrollResponseConformance, assertGrantRequestConformance, assertInspectConformance, assertProblemDetailsConformance, assertRevokeRequestConformance, assertRevokeResponseConformance, assertStatusResponseConformance, loadActiveEnrollResponseTestVector, loadActiveStatusResponseTestVector, loadAllGrantTypesRevokeRequestTestVector, loadApiKeyGrantResponseTestVector, loadBasicGrantResponseTestVector, loadEmptyRevokeResponseTestVector, loadEnrollIdempotencyConflictTestVector, loadMinimalEnrollRequestTestVector, loadMinimalInspectTestVector, loadNotRecognizedProblemTestVector, loadOAuthBearerGrantRequestTestVector, loadOAuthBearerGrantResponseTestVector, loadOAuthBearerRevokeRequestTestVector, loadPlatformDiscoveryTestVector, loadPlatformLifecycleRequestTestVector, loadPlatformLifecycleResponseTestVector, loadPlatformListResponseTestVector, loadPlatformProvisionRequestTestVector, loadPlatformProvisionResponseTestVector, loadPlatformSignRequestTestVector, loadPlatformSignResponseTestVector, loadPlatformVerificationRequestTestVector, loadPlatformVerificationResponseRecognizedTestVector, loadPlatformVerificationResponseUnrecognizedTestVector, loadSchemaArtifact, loadSpecArtifactManifest, loadTestVector, schemaArtifactPath, schemaArtifactsRoot, specArtifactManifestPath, specArtifactsRoot, testVectorArtifactPath, testVectorArtifactsRoot, validateBuiltInGrantResponseConformance, validateEnrollRequestConformance, validateEnrollResponseConformance, validateGrantRequestConformance, validateInspectConformance, validateProblemDetailsConformance, validateRevokeRequestConformance, validateRevokeResponseConformance, validateStatusResponseConformance };
package/dist/index.js ADDED
@@ -0,0 +1,406 @@
1
+ // src/index.ts
2
+ import { readFile } from "fs/promises";
3
+ import { createRequire } from "module";
4
+ import path from "path";
5
+ import {
6
+ parseBuiltInGrantResponse,
7
+ parseEnrollRequest,
8
+ parseEnrollResponse,
9
+ parseGrantRequest,
10
+ parseInspectDocument,
11
+ parseProblemDetails,
12
+ parseRevokeRequest,
13
+ parseRevokeResponse,
14
+ parseStatusResponse,
15
+ validateBuiltInGrantResponse,
16
+ validateEnrollRequest,
17
+ validateEnrollResponse,
18
+ validateGrantRequest,
19
+ validateInspectDocument,
20
+ validateProblemDetails,
21
+ validateRevokeRequest,
22
+ validateRevokeResponse,
23
+ validateStatusResponse
24
+ } from "@aep-foundation/core";
25
+ var requireFromCwd = createRequire(`${process.cwd()}/`);
26
+ var packageRoot = path.dirname(
27
+ requireFromCwd.resolve("@aep-foundation/conformance/package.json")
28
+ );
29
+ var specArtifactsRoot = path.join(packageRoot, "fixtures/aep-specs");
30
+ var schemaArtifactsRoot = path.join(specArtifactsRoot, "schemas");
31
+ var testVectorArtifactsRoot = path.join(specArtifactsRoot, "test-vectors");
32
+ var specArtifactManifestPath = path.join(specArtifactsRoot, "manifest.json");
33
+ var AepConformanceError = class extends Error {
34
+ issues;
35
+ constructor(message, issues) {
36
+ super(message);
37
+ this.name = "AepConformanceError";
38
+ this.issues = issues;
39
+ }
40
+ };
41
+ async function loadSpecArtifactManifest() {
42
+ return readJson(specArtifactManifestPath);
43
+ }
44
+ function schemaArtifactPath(relativePath) {
45
+ return path.join(schemaArtifactsRoot, relativePath);
46
+ }
47
+ function testVectorArtifactPath(relativePath) {
48
+ return path.join(testVectorArtifactsRoot, relativePath);
49
+ }
50
+ async function loadSchemaArtifact(relativePath) {
51
+ return readJson(schemaArtifactPath(relativePath));
52
+ }
53
+ async function loadTestVector(relativePath) {
54
+ return readJson(testVectorArtifactPath(relativePath));
55
+ }
56
+ function validateInspectConformance(value) {
57
+ return validateInspectDocument(value);
58
+ }
59
+ function validateEnrollRequestConformance(value) {
60
+ return validateEnrollRequest(value);
61
+ }
62
+ function validateEnrollResponseConformance(value) {
63
+ return validateEnrollResponse(value);
64
+ }
65
+ function validateStatusResponseConformance(value) {
66
+ return validateStatusResponse(value);
67
+ }
68
+ function validateGrantRequestConformance(value) {
69
+ return validateGrantRequest(value);
70
+ }
71
+ function validateRevokeRequestConformance(value) {
72
+ return validateRevokeRequest(value);
73
+ }
74
+ function validateRevokeResponseConformance(value) {
75
+ return validateRevokeResponse(value);
76
+ }
77
+ function validateBuiltInGrantResponseConformance(grantType, value) {
78
+ return validateBuiltInGrantResponse(grantType, value);
79
+ }
80
+ function validateProblemDetailsConformance(value) {
81
+ return validateProblemDetails(value);
82
+ }
83
+ function assertInspectConformance(value) {
84
+ const result = validateInspectDocument(value);
85
+ if (!result.ok) {
86
+ throw new AepConformanceError(
87
+ "Inspect document failed AEP conformance validation.",
88
+ result.issues
89
+ );
90
+ }
91
+ return result.value;
92
+ }
93
+ function assertEnrollRequestConformance(value) {
94
+ const result = validateEnrollRequest(value);
95
+ if (!result.ok) {
96
+ throw new AepConformanceError(
97
+ "Enroll request failed AEP conformance validation.",
98
+ result.issues
99
+ );
100
+ }
101
+ return result.value;
102
+ }
103
+ function assertEnrollResponseConformance(value) {
104
+ const result = validateEnrollResponse(value);
105
+ if (!result.ok) {
106
+ throw new AepConformanceError(
107
+ "Enroll response failed AEP conformance validation.",
108
+ result.issues
109
+ );
110
+ }
111
+ return result.value;
112
+ }
113
+ function assertStatusResponseConformance(value) {
114
+ const result = validateStatusResponse(value);
115
+ if (!result.ok) {
116
+ throw new AepConformanceError(
117
+ "Status response failed AEP conformance validation.",
118
+ result.issues
119
+ );
120
+ }
121
+ return result.value;
122
+ }
123
+ function assertGrantRequestConformance(value) {
124
+ const result = validateGrantRequest(value);
125
+ if (!result.ok) {
126
+ throw new AepConformanceError(
127
+ "Grant request failed AEP conformance validation.",
128
+ result.issues
129
+ );
130
+ }
131
+ return result.value;
132
+ }
133
+ function assertRevokeRequestConformance(value) {
134
+ const result = validateRevokeRequest(value);
135
+ if (!result.ok) {
136
+ throw new AepConformanceError(
137
+ "Revoke request failed AEP conformance validation.",
138
+ result.issues
139
+ );
140
+ }
141
+ return result.value;
142
+ }
143
+ function assertRevokeResponseConformance(value) {
144
+ const result = validateRevokeResponse(value);
145
+ if (!result.ok) {
146
+ throw new AepConformanceError(
147
+ "Revoke response failed AEP conformance validation.",
148
+ result.issues
149
+ );
150
+ }
151
+ return result.value;
152
+ }
153
+ function assertBuiltInGrantResponseConformance(grantType, value) {
154
+ const result = validateBuiltInGrantResponse(grantType, value);
155
+ if (!result.ok) {
156
+ throw new AepConformanceError(
157
+ "Grant response failed AEP conformance validation.",
158
+ result.issues
159
+ );
160
+ }
161
+ return result.value;
162
+ }
163
+ function assertProblemDetailsConformance(value) {
164
+ const result = validateProblemDetails(value);
165
+ if (!result.ok) {
166
+ throw new AepConformanceError(
167
+ "Problem Details response failed AEP conformance validation.",
168
+ result.issues
169
+ );
170
+ }
171
+ return result.value;
172
+ }
173
+ async function loadMinimalInspectTestVector() {
174
+ const vector = await loadTestVector("inspect/minimal-http.json");
175
+ return {
176
+ ...vector,
177
+ expected: parseInspectDocument(vector.expected)
178
+ };
179
+ }
180
+ async function loadMinimalEnrollRequestTestVector() {
181
+ const vector = await loadTestVector(
182
+ "enroll/request-minimal.json"
183
+ );
184
+ return {
185
+ ...vector,
186
+ input: parseEnrollRequest(vector.input)
187
+ };
188
+ }
189
+ async function loadActiveEnrollResponseTestVector() {
190
+ const vector = await loadTestVector("enroll/response-active.json");
191
+ return {
192
+ ...vector,
193
+ expected: {
194
+ ...vector.expected,
195
+ body: parseEnrollResponse(vector.expected.body)
196
+ }
197
+ };
198
+ }
199
+ async function loadActiveStatusResponseTestVector() {
200
+ const vector = await loadTestVector("status/response-active.json");
201
+ return {
202
+ ...vector,
203
+ expected: {
204
+ ...vector.expected,
205
+ body: parseStatusResponse(vector.expected.body)
206
+ }
207
+ };
208
+ }
209
+ async function loadOAuthBearerGrantRequestTestVector() {
210
+ const vector = await loadTestVector(
211
+ "grant-revoke/grant-request-oauth-bearer.json"
212
+ );
213
+ return {
214
+ ...vector,
215
+ input: parseGrantRequest(vector.input),
216
+ expected: {
217
+ ...vector.expected,
218
+ body: parseGrantRequest(vector.expected.body)
219
+ }
220
+ };
221
+ }
222
+ async function loadOAuthBearerRevokeRequestTestVector() {
223
+ const vector = await loadTestVector(
224
+ "grant-revoke/revoke-request-oauth-bearer.json"
225
+ );
226
+ return {
227
+ ...vector,
228
+ input: parseRevokeRequest(vector.input),
229
+ expected: {
230
+ ...vector.expected,
231
+ body: parseRevokeRequest(vector.expected.body)
232
+ }
233
+ };
234
+ }
235
+ async function loadAllGrantTypesRevokeRequestTestVector() {
236
+ const vector = await loadTestVector("grant-revoke/revoke-request-all-grant-types.json");
237
+ return {
238
+ ...vector,
239
+ input: parseRevokeRequest(vector.input),
240
+ expected: {
241
+ ...vector.expected,
242
+ body: parseRevokeRequest(vector.expected.body)
243
+ }
244
+ };
245
+ }
246
+ async function loadEmptyRevokeResponseTestVector() {
247
+ const vector = await loadTestVector("grant-revoke/revoke-response-empty.json");
248
+ return {
249
+ ...vector,
250
+ expected: {
251
+ ...vector.expected,
252
+ body: parseRevokeResponse(vector.expected.body)
253
+ }
254
+ };
255
+ }
256
+ async function loadOAuthBearerGrantResponseTestVector() {
257
+ return loadBuiltInGrantResponseTestVector(
258
+ "oauth-bearer",
259
+ "credentials/oauth-bearer/grant-response.json"
260
+ );
261
+ }
262
+ async function loadApiKeyGrantResponseTestVector() {
263
+ return loadBuiltInGrantResponseTestVector("api-key", "credentials/api-key/grant-response.json");
264
+ }
265
+ async function loadBasicGrantResponseTestVector() {
266
+ return loadBuiltInGrantResponseTestVector("basic", "credentials/basic/grant-response.json");
267
+ }
268
+ async function loadNotRecognizedProblemTestVector() {
269
+ return loadProblemDetailsResponseTestVector(
270
+ "errors/not-recognized-problem.json"
271
+ );
272
+ }
273
+ async function loadEnrollIdempotencyConflictTestVector() {
274
+ return loadProblemDetailsResponseTestVector(
275
+ "idempotency/enroll-conflict.json"
276
+ );
277
+ }
278
+ function loadPlatformDiscoveryTestVector() {
279
+ return loadTestVector("platform/discovery.json");
280
+ }
281
+ function loadPlatformProvisionRequestTestVector() {
282
+ return loadTestVector(
283
+ "platform/provision-request.json"
284
+ );
285
+ }
286
+ function loadPlatformProvisionResponseTestVector() {
287
+ return loadTestVector(
288
+ "platform/provision-response.json"
289
+ );
290
+ }
291
+ function loadPlatformListResponseTestVector() {
292
+ return loadTestVector(
293
+ "platform/list-response.json"
294
+ );
295
+ }
296
+ function loadPlatformLifecycleRequestTestVector() {
297
+ return loadTestVector(
298
+ "platform/lifecycle-request.json"
299
+ );
300
+ }
301
+ function loadPlatformLifecycleResponseTestVector() {
302
+ return loadTestVector(
303
+ "platform/lifecycle-response.json"
304
+ );
305
+ }
306
+ function loadPlatformSignRequestTestVector() {
307
+ return loadTestVector(
308
+ "platform/sign-request.json"
309
+ );
310
+ }
311
+ function loadPlatformSignResponseTestVector() {
312
+ return loadTestVector(
313
+ "platform/sign-response.json"
314
+ );
315
+ }
316
+ function loadPlatformVerificationRequestTestVector() {
317
+ return loadTestVector(
318
+ "platform/verification-request.json"
319
+ );
320
+ }
321
+ function loadPlatformVerificationResponseRecognizedTestVector() {
322
+ return loadTestVector(
323
+ "platform/verification-response-recognized.json"
324
+ );
325
+ }
326
+ function loadPlatformVerificationResponseUnrecognizedTestVector() {
327
+ return loadTestVector(
328
+ "platform/verification-response-unrecognized.json"
329
+ );
330
+ }
331
+ async function readJson(file) {
332
+ return JSON.parse(await readFile(file, "utf8"));
333
+ }
334
+ async function loadBuiltInGrantResponseTestVector(grantType, relativePath) {
335
+ const vector = await loadTestVector(relativePath);
336
+ return {
337
+ ...vector,
338
+ input: parseGrantRequest(vector.input),
339
+ expected: parseBuiltInGrantResponse(grantType, vector.expected)
340
+ };
341
+ }
342
+ async function loadProblemDetailsResponseTestVector(relativePath) {
343
+ const vector = await loadTestVector(relativePath);
344
+ return {
345
+ ...vector,
346
+ expected: {
347
+ ...vector.expected,
348
+ body: parseProblemDetails(vector.expected.body)
349
+ }
350
+ };
351
+ }
352
+ export {
353
+ AepConformanceError,
354
+ assertBuiltInGrantResponseConformance,
355
+ assertEnrollRequestConformance,
356
+ assertEnrollResponseConformance,
357
+ assertGrantRequestConformance,
358
+ assertInspectConformance,
359
+ assertProblemDetailsConformance,
360
+ assertRevokeRequestConformance,
361
+ assertRevokeResponseConformance,
362
+ assertStatusResponseConformance,
363
+ loadActiveEnrollResponseTestVector,
364
+ loadActiveStatusResponseTestVector,
365
+ loadAllGrantTypesRevokeRequestTestVector,
366
+ loadApiKeyGrantResponseTestVector,
367
+ loadBasicGrantResponseTestVector,
368
+ loadEmptyRevokeResponseTestVector,
369
+ loadEnrollIdempotencyConflictTestVector,
370
+ loadMinimalEnrollRequestTestVector,
371
+ loadMinimalInspectTestVector,
372
+ loadNotRecognizedProblemTestVector,
373
+ loadOAuthBearerGrantRequestTestVector,
374
+ loadOAuthBearerGrantResponseTestVector,
375
+ loadOAuthBearerRevokeRequestTestVector,
376
+ loadPlatformDiscoveryTestVector,
377
+ loadPlatformLifecycleRequestTestVector,
378
+ loadPlatformLifecycleResponseTestVector,
379
+ loadPlatformListResponseTestVector,
380
+ loadPlatformProvisionRequestTestVector,
381
+ loadPlatformProvisionResponseTestVector,
382
+ loadPlatformSignRequestTestVector,
383
+ loadPlatformSignResponseTestVector,
384
+ loadPlatformVerificationRequestTestVector,
385
+ loadPlatformVerificationResponseRecognizedTestVector,
386
+ loadPlatformVerificationResponseUnrecognizedTestVector,
387
+ loadSchemaArtifact,
388
+ loadSpecArtifactManifest,
389
+ loadTestVector,
390
+ schemaArtifactPath,
391
+ schemaArtifactsRoot,
392
+ specArtifactManifestPath,
393
+ specArtifactsRoot,
394
+ testVectorArtifactPath,
395
+ testVectorArtifactsRoot,
396
+ validateBuiltInGrantResponseConformance,
397
+ validateEnrollRequestConformance,
398
+ validateEnrollResponseConformance,
399
+ validateGrantRequestConformance,
400
+ validateInspectConformance,
401
+ validateProblemDetailsConformance,
402
+ validateRevokeRequestConformance,
403
+ validateRevokeResponseConformance,
404
+ validateStatusResponseConformance
405
+ };
406
+ //# sourceMappingURL=index.js.map