dcql 0.2.3 → 0.2.5
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/src/dcql-presentation/index.d.ts +2 -0
- package/dist/src/dcql-presentation/index.d.ts.map +1 -0
- package/dist/src/dcql-presentation/index.js +3 -0
- package/dist/src/dcql-presentation/index.js.map +1 -0
- package/dist/src/dcql-presentation/m-dcql-presentation-record.d.ts +20 -0
- package/dist/src/dcql-presentation/m-dcql-presentation-record.d.ts.map +1 -0
- package/dist/src/dcql-presentation/m-dcql-presentation-record.js +61 -0
- package/dist/src/dcql-presentation/m-dcql-presentation-record.js.map +1 -0
- package/dist/src/dcql-presentation/m-dcql-presentation.d.ts +2 -0
- package/dist/src/dcql-presentation/m-dcql-presentation.d.ts.map +1 -0
- package/dist/src/dcql-presentation/m-dcql-presentation.js +3 -0
- package/dist/src/dcql-presentation/m-dcql-presentation.js.map +1 -0
- package/dist/src/dcql-query/claims-path.d.ts +14 -0
- package/dist/src/dcql-query/claims-path.d.ts.map +1 -0
- package/dist/src/dcql-query/claims-path.js +23 -0
- package/dist/src/dcql-query/claims-path.js.map +1 -0
- package/dist/src/dcql-query/claims-path.test.d.ts +2 -0
- package/dist/src/dcql-query/claims-path.test.d.ts.map +1 -0
- package/dist/src/dcql-query/claims-path.test.js +103 -0
- package/dist/src/dcql-query/claims-path.test.js.map +1 -0
- package/dist/src/dcql-query/dcql-query.d.ts +8 -0
- package/dist/src/dcql-query/dcql-query.d.ts.map +1 -0
- package/dist/src/dcql-query/dcql-query.js +53 -0
- package/dist/src/dcql-query/dcql-query.js.map +1 -0
- package/dist/src/dcql-query/dcql-query.test.d.ts +2 -0
- package/dist/src/dcql-query/dcql-query.test.d.ts.map +1 -0
- package/dist/src/dcql-query/dcql-query.test.js +188 -0
- package/dist/src/dcql-query/dcql-query.test.js.map +1 -0
- package/dist/src/dcql-query/m-dcql-claims-query.d.ts +37 -0
- package/dist/src/dcql-query/m-dcql-claims-query.d.ts.map +1 -0
- package/dist/src/dcql-query/m-dcql-claims-query.js +57 -0
- package/dist/src/dcql-query/m-dcql-claims-query.js.map +1 -0
- package/dist/src/dcql-query/m-dcql-credential-query.d.ts +186 -0
- package/dist/src/dcql-query/m-dcql-credential-query.d.ts.map +1 -0
- package/dist/src/dcql-query/m-dcql-credential-query.js +85 -0
- package/dist/src/dcql-query/m-dcql-credential-query.js.map +1 -0
- package/dist/src/dcql-query/m-dcql-credential-set-query.d.ts +18 -0
- package/dist/src/dcql-query/m-dcql-credential-set-query.d.ts.map +1 -0
- package/dist/src/dcql-query/m-dcql-credential-set-query.js +41 -0
- package/dist/src/dcql-query/m-dcql-credential-set-query.js.map +1 -0
- package/dist/src/dcql-query/m-dcql-query.d.ts +701 -0
- package/dist/src/dcql-query/m-dcql-query.d.ts.map +1 -0
- package/dist/src/dcql-query/m-dcql-query.js +91 -0
- package/dist/src/dcql-query/m-dcql-query.js.map +1 -0
- package/dist/src/dcql-query-result/dcql-claims-query-result.d.ts +22 -0
- package/dist/src/dcql-query-result/dcql-claims-query-result.d.ts.map +1 -0
- package/dist/src/dcql-query-result/dcql-claims-query-result.js +175 -0
- package/dist/src/dcql-query-result/dcql-claims-query-result.js.map +1 -0
- package/dist/src/dcql-query-result/dcql-credential-query-result.d.ts +8 -0
- package/dist/src/dcql-query-result/dcql-credential-query-result.d.ts.map +1 -0
- package/dist/src/dcql-query-result/dcql-credential-query-result.js +65 -0
- package/dist/src/dcql-query-result/dcql-credential-query-result.js.map +1 -0
- package/dist/src/dcql-query-result/m-dcql-query-result.d.ts +650 -0
- package/dist/src/dcql-query-result/m-dcql-query-result.d.ts.map +1 -0
- package/dist/src/dcql-query-result/m-dcql-query-result.js +78 -0
- package/dist/src/dcql-query-result/m-dcql-query-result.js.map +1 -0
- package/dist/src/e-base.d.ts +15 -0
- package/dist/src/e-base.d.ts.map +1 -0
- package/dist/{esm/src → src}/e-base.js +18 -23
- package/dist/src/e-base.js.map +1 -0
- package/dist/src/e-dcql.d.ts +44 -0
- package/dist/src/e-dcql.d.ts.map +1 -0
- package/dist/src/e-dcql.js +47 -0
- package/dist/src/e-dcql.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +28 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/u-dcql-credential-representation.d.ts +28 -0
- package/dist/src/u-dcql-credential-representation.d.ts.map +1 -0
- package/dist/src/u-dcql-credential-representation.js +32 -0
- package/dist/src/u-dcql-credential-representation.js.map +1 -0
- package/dist/src/u-dcql.d.ts +48 -0
- package/dist/src/u-dcql.d.ts.map +1 -0
- package/dist/src/u-dcql.js +76 -0
- package/dist/src/u-dcql.js.map +1 -0
- package/package.json +14 -9
- package/.cache/tsbuildinfo.json +0 -1
- package/.turbo/turbo-build.log +0 -4
- package/CHANGELOG.md +0 -13
- package/dist/esm/src/claims-query/claims-query-result.d.ts +0 -24
- package/dist/esm/src/claims-query/claims-query-result.d.ts.map +0 -1
- package/dist/esm/src/claims-query/claims-query-result.js +0 -67
- package/dist/esm/src/claims-query/claims-query-result.js.map +0 -1
- package/dist/esm/src/claims-query/v-claims-query-result.d.ts +0 -82
- package/dist/esm/src/claims-query/v-claims-query-result.d.ts.map +0 -1
- package/dist/esm/src/claims-query/v-claims-query-result.js +0 -30
- package/dist/esm/src/claims-query/v-claims-query-result.js.map +0 -1
- package/dist/esm/src/claims-query/v-claims-query.d.ts +0 -34
- package/dist/esm/src/claims-query/v-claims-query.d.ts.map +0 -1
- package/dist/esm/src/claims-query/v-claims-query.js +0 -24
- package/dist/esm/src/claims-query/v-claims-query.js.map +0 -1
- package/dist/esm/src/credential-query/credential-query-result.d.ts +0 -101
- package/dist/esm/src/credential-query/credential-query-result.d.ts.map +0 -1
- package/dist/esm/src/credential-query/credential-query-result.js +0 -91
- package/dist/esm/src/credential-query/credential-query-result.js.map +0 -1
- package/dist/esm/src/credential-query/v-credential-query-result.d.ts +0 -696
- package/dist/esm/src/credential-query/v-credential-query-result.d.ts.map +0 -1
- package/dist/esm/src/credential-query/v-credential-query-result.js +0 -44
- package/dist/esm/src/credential-query/v-credential-query-result.js.map +0 -1
- package/dist/esm/src/credential-query/v-credential-query.d.ts +0 -109
- package/dist/esm/src/credential-query/v-credential-query.d.ts.map +0 -1
- package/dist/esm/src/credential-query/v-credential-query.js +0 -57
- package/dist/esm/src/credential-query/v-credential-query.js.map +0 -1
- package/dist/esm/src/e-base.d.ts +0 -25
- package/dist/esm/src/e-base.d.ts.map +0 -1
- package/dist/esm/src/e-base.js.map +0 -1
- package/dist/esm/src/e-vp-query.d.ts +0 -32
- package/dist/esm/src/e-vp-query.d.ts.map +0 -1
- package/dist/esm/src/e-vp-query.js +0 -27
- package/dist/esm/src/e-vp-query.js.map +0 -1
- package/dist/esm/src/index.d.ts +0 -7
- package/dist/esm/src/index.d.ts.map +0 -1
- package/dist/esm/src/index.js +0 -7
- package/dist/esm/src/index.js.map +0 -1
- package/dist/esm/src/u-query.d.ts +0 -20
- package/dist/esm/src/u-query.d.ts.map +0 -1
- package/dist/esm/src/u-query.js +0 -25
- package/dist/esm/src/u-query.js.map +0 -1
- package/dist/esm/src/vp-query/v-vp-query-result.d.ts +0 -767
- package/dist/esm/src/vp-query/v-vp-query-result.d.ts.map +0 -1
- package/dist/esm/src/vp-query/v-vp-query-result.js +0 -18
- package/dist/esm/src/vp-query/v-vp-query-result.js.map +0 -1
- package/dist/esm/src/vp-query/v-vp-query.d.ts +0 -94
- package/dist/esm/src/vp-query/v-vp-query.d.ts.map +0 -1
- package/dist/esm/src/vp-query/v-vp-query.js +0 -52
- package/dist/esm/src/vp-query/v-vp-query.js.map +0 -1
- package/dist/esm/src/vp-query/vp-query.d.ts +0 -5
- package/dist/esm/src/vp-query/vp-query.d.ts.map +0 -1
- package/dist/esm/src/vp-query/vp-query.fixtures.d.ts +0 -7
- package/dist/esm/src/vp-query/vp-query.fixtures.d.ts.map +0 -1
- package/dist/esm/src/vp-query/vp-query.fixtures.js +0 -172
- package/dist/esm/src/vp-query/vp-query.fixtures.js.map +0 -1
- package/dist/esm/src/vp-query/vp-query.js +0 -21
- package/dist/esm/src/vp-query/vp-query.js.map +0 -1
- package/dist/esm/src/vp-query/vp-query.test.d.ts +0 -31
- package/dist/esm/src/vp-query/vp-query.test.d.ts.map +0 -1
- package/dist/esm/src/vp-query/vp-query.test.js +0 -130
- package/dist/esm/src/vp-query/vp-query.test.js.map +0 -1
- package/eslint.config.js +0 -10
- package/src/claims-query/claims-query-result.ts +0 -104
- package/src/claims-query/v-claims-query-result.ts +0 -42
- package/src/claims-query/v-claims-query.ts +0 -34
- package/src/credential-query/credential-query-result.ts +0 -130
- package/src/credential-query/v-credential-query-result.ts +0 -71
- package/src/credential-query/v-credential-query.ts +0 -85
- package/src/e-base.ts +0 -116
- package/src/e-vp-query.ts +0 -31
- package/src/index.ts +0 -6
- package/src/u-query.ts +0 -39
- package/src/vp-query/v-vp-query-result.ts +0 -23
- package/src/vp-query/v-vp-query.ts +0 -71
- package/src/vp-query/vp-query.fixtures.ts +0 -178
- package/src/vp-query/vp-query.test.ts +0 -156
- package/src/vp-query/vp-query.ts +0 -44
- package/tsconfig.json +0 -5
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"m-dcql-query.d.ts","sourceRoot":"","sources":["../../../src/dcql-query/m-dcql-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAK7B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAM3F;;;;;;;GAOG;AACH,yBAAiB,SAAS,CAAC;IAClB,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcjB,CAAC;IACH,KAAY,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;IAChD,KAAY,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,cAAe,MAAM,SAIzC,CAAC;IACK,MAAM,KAAK,cACL,MAAM,eACJ,4BAA4B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAG5C,CAAC;IAEK,MAAM,KAAK,UAAW,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAIjC,CAAC;CACH;AACD,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC"}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.DcqlQuery = void 0;
|
27
|
+
const v = __importStar(require("valibot"));
|
28
|
+
const e_dcql_js_1 = require("../e-dcql.js");
|
29
|
+
const u_dcql_js_1 = require("../u-dcql.js");
|
30
|
+
const dcql_query_js_1 = require("./dcql-query.js");
|
31
|
+
const m_dcql_credential_query_js_1 = require("./m-dcql-credential-query.js");
|
32
|
+
const m_dcql_credential_set_query_js_1 = require("./m-dcql-credential-set-query.js");
|
33
|
+
/**
|
34
|
+
* The Digital Credentials Query Language (DCQL, pronounced [ˈdakl̩]) is a
|
35
|
+
* JSON-encoded query language that allows the Verifier to request Verifiable
|
36
|
+
* Presentations that match the query. The Verifier MAY encode constraints on the
|
37
|
+
* combinations of credentials and claims that are requested. The Wallet evaluates
|
38
|
+
* the query against the Verifiable Credentials it holds and returns Verifiable
|
39
|
+
* Presentations matching the query.
|
40
|
+
*/
|
41
|
+
var DcqlQuery;
|
42
|
+
(function (DcqlQuery) {
|
43
|
+
DcqlQuery.vModel = v.object({
|
44
|
+
credentials: v.pipe(v.array(m_dcql_credential_query_js_1.DcqlCredentialQuery.vModel), (0, u_dcql_js_1.vNonEmptyArray)(), v.description(`REQUIRED. A non-empty array of Credential Queries that specify the requested Verifiable Credentials.`)),
|
45
|
+
credential_sets: v.pipe(v.optional(v.pipe(v.array(m_dcql_credential_set_query_js_1.CredentialSetQuery.vModel), (0, u_dcql_js_1.vNonEmptyArray)())), v.description(`OPTIONAL. A non-empty array of credential set queries that specifies additional constraints on which of the requested Verifiable Credentials to return.`)),
|
46
|
+
});
|
47
|
+
DcqlQuery.validate = (dcqlQuery) => {
|
48
|
+
validateUniqueCredentialQueryIds(dcqlQuery);
|
49
|
+
validateCredentialSets(dcqlQuery);
|
50
|
+
dcqlQuery.credentials.forEach(m_dcql_credential_query_js_1.DcqlCredentialQuery.validate);
|
51
|
+
};
|
52
|
+
DcqlQuery.query = (dcqlQuery, credentials) => {
|
53
|
+
return (0, dcql_query_js_1.performDcqlQuery)(dcqlQuery, { credentials, presentation: false });
|
54
|
+
};
|
55
|
+
DcqlQuery.parse = (input) => {
|
56
|
+
const parsed = v.parse(DcqlQuery.vModel, input);
|
57
|
+
DcqlQuery.validate(parsed);
|
58
|
+
return parsed;
|
59
|
+
};
|
60
|
+
})(DcqlQuery || (exports.DcqlQuery = DcqlQuery = {}));
|
61
|
+
// --- validations --- //
|
62
|
+
const validateUniqueCredentialQueryIds = (query) => {
|
63
|
+
const ids = query.credentials.map(c => c.id);
|
64
|
+
const duplicates = ids.filter((id, index) => ids.indexOf(id) !== index);
|
65
|
+
if (duplicates.length > 0) {
|
66
|
+
throw new e_dcql_js_1.DcqlNonUniqueCredentialQueryIdsError({
|
67
|
+
message: `Duplicate credential query ids found: ${duplicates.join(', ')}`,
|
68
|
+
});
|
69
|
+
}
|
70
|
+
};
|
71
|
+
const validateCredentialSets = (query) => {
|
72
|
+
if (!query.credential_sets)
|
73
|
+
return;
|
74
|
+
const credentialQueryIds = new Set(query.credentials.map(c => c.id));
|
75
|
+
const undefinedCredentialQueryIds = [];
|
76
|
+
for (const credential_set of query.credential_sets) {
|
77
|
+
for (const credentialSetOption of credential_set.options) {
|
78
|
+
for (const credentialQueryId of credentialSetOption) {
|
79
|
+
if (!credentialQueryIds.has(credentialQueryId)) {
|
80
|
+
undefinedCredentialQueryIds.push(credentialQueryId);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
}
|
85
|
+
if (undefinedCredentialQueryIds.length > 0) {
|
86
|
+
throw new e_dcql_js_1.DcqlCredentialSetError({
|
87
|
+
message: `Credential set contains undefined credential id${undefinedCredentialQueryIds.length === 1 ? '' : '`s'} '${undefinedCredentialQueryIds.join(', ')}'`,
|
88
|
+
});
|
89
|
+
}
|
90
|
+
};
|
91
|
+
//# sourceMappingURL=m-dcql-query.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"m-dcql-query.js","sourceRoot":"","sources":["../../../src/dcql-query/m-dcql-query.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import * as v from 'valibot';
|
2
|
+
import { DcqlClaimsQuery } from '../dcql-query/m-dcql-claims-query.js';
|
3
|
+
import type { DcqlCredentialQuery } from '../dcql-query/m-dcql-credential-query.js';
|
4
|
+
export declare const getNamespacesParser: (claimsQueries: DcqlClaimsQuery.Mdoc[]) => v.ObjectSchema<any, undefined>;
|
5
|
+
export declare const getJsonClaimsParser: (claimsQueries: DcqlClaimsQuery.W3cAndSdJwtVc[], ctx: {
|
6
|
+
presentation: boolean;
|
7
|
+
}) => v.IntersectSchema<v.RecordSchema<v.StringSchema<undefined>, v.GenericSchema<import("../u-dcql.js").Json, import("../u-dcql.js").Json, v.BaseIssue<unknown>>, undefined>[], undefined>;
|
8
|
+
export declare const getMdocClaimsQueriesForClaimSet: (claimsQueries: DcqlClaimsQuery.Mdoc[], claimSet: string[]) => DcqlClaimsQuery.Mdoc[];
|
9
|
+
export declare const getJsonClaimsQueriesForClaimSet: (claimsQueries: DcqlClaimsQuery.W3cAndSdJwtVc[], claimSet: string[]) => DcqlClaimsQuery.W3cAndSdJwtVc[];
|
10
|
+
export declare const getCredentialParser: (credentialQuery: DcqlCredentialQuery, ctx: {
|
11
|
+
claimSet?: NonNullable<DcqlCredentialQuery["claim_sets"]>[number];
|
12
|
+
presentation: boolean;
|
13
|
+
}) => v.ObjectSchema<{
|
14
|
+
readonly docType: v.StringSchema<undefined> | v.LiteralSchema<string, undefined>;
|
15
|
+
readonly namespaces: v.ObjectSchema<any, undefined> | v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
|
16
|
+
}, undefined> | v.ObjectSchema<{
|
17
|
+
readonly vct: v.StringSchema<undefined> | v.PicklistSchema<string[], undefined>;
|
18
|
+
readonly claims: v.RecordSchema<v.StringSchema<undefined>, v.GenericSchema<import("../u-dcql.js").Json, import("../u-dcql.js").Json, v.BaseIssue<unknown>>, undefined> | v.IntersectSchema<v.RecordSchema<v.StringSchema<undefined>, v.GenericSchema<import("../u-dcql.js").Json, import("../u-dcql.js").Json, v.BaseIssue<unknown>>, undefined>[], undefined>;
|
19
|
+
}, undefined> | v.ObjectSchema<{
|
20
|
+
readonly claims: v.RecordSchema<v.StringSchema<undefined>, v.GenericSchema<import("../u-dcql.js").Json, import("../u-dcql.js").Json, v.BaseIssue<unknown>>, undefined> | v.IntersectSchema<v.RecordSchema<v.StringSchema<undefined>, v.GenericSchema<import("../u-dcql.js").Json, import("../u-dcql.js").Json, v.BaseIssue<unknown>>, undefined>[], undefined>;
|
21
|
+
}, undefined>;
|
22
|
+
//# sourceMappingURL=dcql-claims-query-result.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dcql-claims-query-result.d.ts","sourceRoot":"","sources":["../../../src/dcql-query-result/dcql-claims-query-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAuBpF,eAAO,MAAM,mBAAmB,kBAAmB,eAAe,CAAC,IAAI,EAAE,mCAwBxE,CAAC;AAkDF,eAAO,MAAM,mBAAmB,kBACf,eAAe,CAAC,aAAa,EAAE,OACzC;IAAE,YAAY,EAAE,OAAO,CAAA;CAAE,0LAa/B,CAAC;AAEF,eAAO,MAAM,+BAA+B,kBAC3B,eAAe,CAAC,IAAI,EAAE,YAC3B,MAAM,EAAE,KACjB,eAAe,CAAC,IAAI,EAUtB,CAAC;AAEF,eAAO,MAAM,+BAA+B,kBAC3B,eAAe,CAAC,aAAa,EAAE,YACpC,MAAM,EAAE,KACjB,eAAe,CAAC,aAAa,EAU/B,CAAC;AA4DF,eAAO,MAAM,mBAAmB,oBACb,mBAAmB,OAC/B;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;CACvB;;;;;;;;aAaF,CAAC"}
|
@@ -0,0 +1,175 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.getCredentialParser = exports.getJsonClaimsQueriesForClaimSet = exports.getMdocClaimsQueriesForClaimSet = exports.getJsonClaimsParser = exports.getNamespacesParser = void 0;
|
27
|
+
const v = __importStar(require("valibot"));
|
28
|
+
const m_dcql_claims_query_js_1 = require("../dcql-query/m-dcql-claims-query.js");
|
29
|
+
const e_dcql_js_1 = require("../e-dcql.js");
|
30
|
+
const u_dcql_js_1 = require("../u-dcql.js");
|
31
|
+
const getClaimParser = (input) => {
|
32
|
+
const { value, values } = input;
|
33
|
+
if (value) {
|
34
|
+
return v.literal(value);
|
35
|
+
}
|
36
|
+
if (values) {
|
37
|
+
return v.union(values.map(val => v.literal(val)));
|
38
|
+
}
|
39
|
+
return m_dcql_claims_query_js_1.DcqlClaimsQuery.vValue;
|
40
|
+
};
|
41
|
+
const getNamespacesParser = (claimsQueries) => {
|
42
|
+
const claimsForNamespace = {};
|
43
|
+
for (const claimQuery of claimsQueries) {
|
44
|
+
if (claimsForNamespace[claimQuery.namespace]) {
|
45
|
+
claimsForNamespace[claimQuery.namespace]?.push({ ...claimQuery });
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
claimsForNamespace[claimQuery.namespace] = [{ ...claimQuery }];
|
49
|
+
}
|
50
|
+
}
|
51
|
+
const parsersForNamespaces = Object.entries(claimsForNamespace).map(([namespace, claims]) => {
|
52
|
+
const claimParsers = Object.fromEntries(claims.map(claim => [claim.claim_name, getClaimParser(claim)]));
|
53
|
+
return [namespace, v.object(claimParsers)];
|
54
|
+
});
|
55
|
+
return v.object(Object.fromEntries(parsersForNamespaces));
|
56
|
+
};
|
57
|
+
exports.getNamespacesParser = getNamespacesParser;
|
58
|
+
const getParserForClaimQuery = (claimQuery, ctx) => {
|
59
|
+
const { index, presentation } = ctx;
|
60
|
+
const pathElement = claimQuery.path[index];
|
61
|
+
const isLast = index === claimQuery.path.length - 1;
|
62
|
+
const vClaimParser = claimQuery.values ? getClaimParser(claimQuery) : u_dcql_js_1.vJson;
|
63
|
+
if (typeof pathElement === 'number') {
|
64
|
+
const elementParser = isLast
|
65
|
+
? vClaimParser
|
66
|
+
: getParserForClaimQuery(claimQuery, { ...ctx, index: index + 1 });
|
67
|
+
if (presentation) {
|
68
|
+
// We allow both the concrete value and an array of one value
|
69
|
+
return v.union([
|
70
|
+
v.pipe(v.array(u_dcql_js_1.vJson), v.length(1), v.transform(input => input[0]), elementParser),
|
71
|
+
elementParser,
|
72
|
+
]);
|
73
|
+
}
|
74
|
+
return v.pipe(v.array(u_dcql_js_1.vJson), v.transform(input => input[pathElement]), elementParser);
|
75
|
+
}
|
76
|
+
else if (typeof pathElement === 'string') {
|
77
|
+
return v.object({
|
78
|
+
[pathElement]: isLast
|
79
|
+
? vClaimParser
|
80
|
+
: getParserForClaimQuery(claimQuery, { ...ctx, index: index + 1 }),
|
81
|
+
});
|
82
|
+
}
|
83
|
+
else {
|
84
|
+
return isLast
|
85
|
+
? v.array(vClaimParser)
|
86
|
+
: v.array(getParserForClaimQuery(claimQuery, { ...ctx, index: index + 1 }));
|
87
|
+
}
|
88
|
+
};
|
89
|
+
const getJsonClaimsParser = (claimsQueries, ctx) => {
|
90
|
+
const claimParser = v.intersect(claimsQueries.map(claimQuery => getParserForClaimQuery(claimQuery, {
|
91
|
+
...ctx,
|
92
|
+
index: 0,
|
93
|
+
})));
|
94
|
+
return claimParser;
|
95
|
+
};
|
96
|
+
exports.getJsonClaimsParser = getJsonClaimsParser;
|
97
|
+
const getMdocClaimsQueriesForClaimSet = (claimsQueries, claimSet) => {
|
98
|
+
return claimSet.map(credential_id => {
|
99
|
+
const query = claimsQueries.find(query => query.id === credential_id);
|
100
|
+
if (!query) {
|
101
|
+
throw new e_dcql_js_1.DcqlInvalidClaimsQueryIdError({
|
102
|
+
message: `Claims-query with id '${credential_id}' not found.`,
|
103
|
+
});
|
104
|
+
}
|
105
|
+
return query;
|
106
|
+
});
|
107
|
+
};
|
108
|
+
exports.getMdocClaimsQueriesForClaimSet = getMdocClaimsQueriesForClaimSet;
|
109
|
+
const getJsonClaimsQueriesForClaimSet = (claimsQueries, claimSet) => {
|
110
|
+
return claimSet.map(credential_id => {
|
111
|
+
const query = claimsQueries.find(query => query.id === credential_id);
|
112
|
+
if (!query) {
|
113
|
+
throw new e_dcql_js_1.DcqlInvalidClaimsQueryIdError({
|
114
|
+
message: `Claims-query with id '${credential_id}' not found.`,
|
115
|
+
});
|
116
|
+
}
|
117
|
+
return query;
|
118
|
+
});
|
119
|
+
};
|
120
|
+
exports.getJsonClaimsQueriesForClaimSet = getJsonClaimsQueriesForClaimSet;
|
121
|
+
const getMdocCredentialParser = (credentialQuery, ctx) => {
|
122
|
+
const { claimSet } = ctx;
|
123
|
+
const vDocType = credentialQuery.meta?.doctype_value
|
124
|
+
? v.literal(credentialQuery.meta.doctype_value)
|
125
|
+
: v.string();
|
126
|
+
const claimSetQueries = credentialQuery.claims && claimSet
|
127
|
+
? (0, exports.getMdocClaimsQueriesForClaimSet)(credentialQuery.claims, claimSet)
|
128
|
+
: credentialQuery.claims;
|
129
|
+
const credentialParser = v.object({
|
130
|
+
docType: vDocType,
|
131
|
+
namespaces: claimSetQueries
|
132
|
+
? (0, exports.getNamespacesParser)(claimSetQueries)
|
133
|
+
: v.record(v.string(), v.record(v.string(), v.unknown())),
|
134
|
+
});
|
135
|
+
return credentialParser;
|
136
|
+
};
|
137
|
+
const getJsonCredentialParser = (credentialQuery, ctx) => {
|
138
|
+
const { claimSet } = ctx;
|
139
|
+
const claimSetQueries = credentialQuery.claims && claimSet
|
140
|
+
? (0, exports.getJsonClaimsQueriesForClaimSet)(credentialQuery.claims, claimSet)
|
141
|
+
: credentialQuery.claims;
|
142
|
+
if (credentialQuery.format === 'vc+sd-jwt') {
|
143
|
+
return v.object({
|
144
|
+
vct: credentialQuery.meta?.vct_values
|
145
|
+
? v.picklist(credentialQuery.meta.vct_values)
|
146
|
+
: v.string(),
|
147
|
+
claims: claimSetQueries
|
148
|
+
? (0, exports.getJsonClaimsParser)(claimSetQueries, ctx)
|
149
|
+
: u_dcql_js_1.vJsonRecord,
|
150
|
+
});
|
151
|
+
}
|
152
|
+
else {
|
153
|
+
const credentialParser = v.object({
|
154
|
+
claims: claimSetQueries
|
155
|
+
? (0, exports.getJsonClaimsParser)(claimSetQueries, ctx)
|
156
|
+
: u_dcql_js_1.vJsonRecord,
|
157
|
+
});
|
158
|
+
return credentialParser;
|
159
|
+
}
|
160
|
+
};
|
161
|
+
const getCredentialParser = (credentialQuery, ctx) => {
|
162
|
+
if (credentialQuery.claim_sets && !ctx.claimSet) {
|
163
|
+
throw new e_dcql_js_1.DcqlMissingClaimSetParseError({
|
164
|
+
message: `credentialQuery specifies claim_sets but no claim_set for parsing is provided.`,
|
165
|
+
});
|
166
|
+
}
|
167
|
+
if (credentialQuery.format === 'mso_mdoc') {
|
168
|
+
return getMdocCredentialParser(credentialQuery, ctx);
|
169
|
+
}
|
170
|
+
else {
|
171
|
+
return getJsonCredentialParser(credentialQuery, ctx);
|
172
|
+
}
|
173
|
+
};
|
174
|
+
exports.getCredentialParser = getCredentialParser;
|
175
|
+
//# sourceMappingURL=dcql-claims-query-result.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dcql-claims-query-result.js","sourceRoot":"","sources":["../../../src/dcql-query-result/dcql-claims-query-result.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import type { DcqlCredentialQuery } from '../dcql-query/m-dcql-credential-query.js';
|
2
|
+
import type { DcqlCredentialRepresentation } from '../u-dcql-credential-representation.js';
|
3
|
+
import type { DcqlQueryResult } from './m-dcql-query-result.js';
|
4
|
+
export declare const queryCredentialFromCredentialQuery: (credentialQuery: DcqlCredentialQuery, ctx: {
|
5
|
+
credentials: DcqlCredentialRepresentation[];
|
6
|
+
presentation: boolean;
|
7
|
+
}) => DcqlQueryResult.CredentialQueryResult;
|
8
|
+
//# sourceMappingURL=dcql-credential-query-result.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dcql-credential-query-result.d.ts","sourceRoot":"","sources":["../../../src/dcql-query-result/dcql-credential-query-result.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAG3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,kCAAkC,oBAC5B,mBAAmB,OAC/B;IACH,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC;CACvB,KACA,eAAe,CAAC,qBA0ClB,CAAC"}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.queryCredentialFromCredentialQuery = void 0;
|
27
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
28
|
+
const v = __importStar(require("valibot"));
|
29
|
+
const dcql_claims_query_result_js_1 = require("./dcql-claims-query-result.js");
|
30
|
+
const queryCredentialFromCredentialQuery = (credentialQuery, ctx) => {
|
31
|
+
const { credentials, presentation } = ctx;
|
32
|
+
const claimSets = credentialQuery.claim_sets ?? [undefined];
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
34
|
+
const credentialQueryResult = new Array(claimSets.length).fill([]);
|
35
|
+
for (const [claimSetIndex, claim_set] of claimSets.entries()) {
|
36
|
+
const credentialParser = (0, dcql_claims_query_result_js_1.getCredentialParser)(credentialQuery, {
|
37
|
+
claimSet: claim_set,
|
38
|
+
presentation,
|
39
|
+
});
|
40
|
+
for (const [credentialIndex, credential] of credentials.entries()) {
|
41
|
+
if (claimSetIndex > 0) {
|
42
|
+
// if one the credential was successfully parsed against a previous claimsset we don't need to further validate other claim sets
|
43
|
+
const previous = credentialQueryResult[claimSetIndex - 1][credentialIndex];
|
44
|
+
// if the previous credential was successfully parsed we don't need to further validate the current credential
|
45
|
+
// we set all further parsing attempts to undefined
|
46
|
+
if (previous?.success || !previous) {
|
47
|
+
credentialQueryResult[claimSetIndex][credentialIndex] = undefined;
|
48
|
+
continue;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
const parseResult = v.safeParse(credentialParser, credential);
|
52
|
+
credentialQueryResult[claimSetIndex].push({
|
53
|
+
...parseResult,
|
54
|
+
...(parseResult.issues && {
|
55
|
+
flattened: v.flatten(parseResult.issues),
|
56
|
+
}),
|
57
|
+
credential_index: credentialIndex,
|
58
|
+
claim_set_index: credentialQuery.claim_sets ? claimSetIndex : undefined,
|
59
|
+
});
|
60
|
+
}
|
61
|
+
}
|
62
|
+
return credentialQueryResult;
|
63
|
+
};
|
64
|
+
exports.queryCredentialFromCredentialQuery = queryCredentialFromCredentialQuery;
|
65
|
+
//# sourceMappingURL=dcql-credential-query-result.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dcql-credential-query-result.js","sourceRoot":"","sources":["../../../src/dcql-query-result/dcql-credential-query-result.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA6D;AAC7D,2CAA6B;AAI7B,+EAAoE;AAG7D,MAAM,kCAAkC,GAAG,CAChD,eAAoC,EACpC,GAGC,EACsC,EAAE;IACzC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;IAC1C,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5D,mEAAmE;IACnE,MAAM,qBAAqB,GAEvB,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEzC,KAAK,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7D,MAAM,gBAAgB,GAAG,IAAA,iDAAmB,EAAC,eAAe,EAAE;YAC5D,QAAQ,EAAE,SAAS;YACnB,YAAY;SACb,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,gIAAgI;gBAChI,MAAM,QAAQ,GACZ,qBAAqB,CAAC,aAAa,GAAG,CAAC,CAAE,CAAC,eAAe,CAAC,CAAC;gBAE7D,8GAA8G;gBAC9G,mDAAmD;gBACnD,IAAI,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnC,qBAAqB,CAAC,aAAa,CAAE,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;oBACnE,SAAS;gBACX,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;YAC9D,qBAAqB,CAAC,aAAa,CAAE,CAAC,IAAI,CAAC;gBACzC,GAAG,WAAW;gBACd,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI;oBACxB,SAAS,EAAE,CAAC,CAAC,OAAO,CAA0B,WAAW,CAAC,MAAM,CAAC;iBAClE,CAAC;gBACF,gBAAgB,EAAE,eAAe;gBACjC,eAAe,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,qBAA8D,CAAC;AACxE,CAAC,CAAC;AAhDW,QAAA,kCAAkC,sCAgD7C"}
|