dcql 0.2.3 → 0.2.4

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 (148) hide show
  1. package/dist/src/dcql-query/claims-path.d.ts +14 -0
  2. package/dist/src/dcql-query/claims-path.d.ts.map +1 -0
  3. package/dist/src/dcql-query/claims-path.js +23 -0
  4. package/dist/src/dcql-query/claims-path.js.map +1 -0
  5. package/dist/src/dcql-query/claims-path.test.d.ts +2 -0
  6. package/dist/src/dcql-query/claims-path.test.d.ts.map +1 -0
  7. package/dist/src/dcql-query/claims-path.test.js +97 -0
  8. package/dist/src/dcql-query/claims-path.test.js.map +1 -0
  9. package/dist/src/dcql-query/dcql-query.d.ts +5 -0
  10. package/dist/src/dcql-query/dcql-query.d.ts.map +1 -0
  11. package/dist/src/dcql-query/dcql-query.js +53 -0
  12. package/dist/src/dcql-query/dcql-query.js.map +1 -0
  13. package/dist/src/dcql-query/dcql-query.test.d.ts +2 -0
  14. package/dist/src/dcql-query/dcql-query.test.d.ts.map +1 -0
  15. package/dist/src/dcql-query/dcql-query.test.js +165 -0
  16. package/dist/src/dcql-query/dcql-query.test.js.map +1 -0
  17. package/dist/src/dcql-query/m-dcql-claims-query.d.ts +37 -0
  18. package/dist/src/dcql-query/m-dcql-claims-query.d.ts.map +1 -0
  19. package/dist/src/dcql-query/m-dcql-claims-query.js +57 -0
  20. package/dist/src/dcql-query/m-dcql-claims-query.js.map +1 -0
  21. package/dist/src/dcql-query/m-dcql-credential-query.d.ts +186 -0
  22. package/dist/src/dcql-query/m-dcql-credential-query.d.ts.map +1 -0
  23. package/dist/src/dcql-query/m-dcql-credential-query.js +85 -0
  24. package/dist/src/dcql-query/m-dcql-credential-query.js.map +1 -0
  25. package/dist/src/dcql-query/m-dcql-credential-set-query.d.ts +18 -0
  26. package/dist/src/dcql-query/m-dcql-credential-set-query.d.ts.map +1 -0
  27. package/dist/src/dcql-query/m-dcql-credential-set-query.js +41 -0
  28. package/dist/src/dcql-query/m-dcql-credential-set-query.js.map +1 -0
  29. package/dist/src/dcql-query/m-dcql-query.d.ts +433 -0
  30. package/dist/src/dcql-query/m-dcql-query.d.ts.map +1 -0
  31. package/dist/src/dcql-query/m-dcql-query.js +89 -0
  32. package/dist/src/dcql-query/m-dcql-query.js.map +1 -0
  33. package/dist/src/dcql-query-result/dcql-claims-query-result.d.ts +81 -0
  34. package/dist/src/dcql-query-result/dcql-claims-query-result.d.ts.map +1 -0
  35. package/dist/src/dcql-query-result/dcql-claims-query-result.js +158 -0
  36. package/dist/src/dcql-query-result/dcql-claims-query-result.js.map +1 -0
  37. package/dist/src/dcql-query-result/dcql-credential-query-result.d.ts +38 -0
  38. package/dist/src/dcql-query-result/dcql-credential-query-result.d.ts.map +1 -0
  39. package/dist/src/dcql-query-result/dcql-credential-query-result.js +61 -0
  40. package/dist/src/dcql-query-result/dcql-credential-query-result.js.map +1 -0
  41. package/dist/src/dcql-query-result/m-dcql-query-result.d.ts +730 -0
  42. package/dist/src/dcql-query-result/m-dcql-query-result.d.ts.map +1 -0
  43. package/dist/src/dcql-query-result/m-dcql-query-result.js +78 -0
  44. package/dist/src/dcql-query-result/m-dcql-query-result.js.map +1 -0
  45. package/dist/src/dcql-query-vp-token/m-dcql-query-vp-token.d.ts +65 -0
  46. package/dist/src/dcql-query-vp-token/m-dcql-query-vp-token.d.ts.map +1 -0
  47. package/dist/src/dcql-query-vp-token/m-dcql-query-vp-token.js +50 -0
  48. package/dist/src/dcql-query-vp-token/m-dcql-query-vp-token.js.map +1 -0
  49. package/dist/src/e-base.d.ts +15 -0
  50. package/dist/src/e-base.d.ts.map +1 -0
  51. package/dist/{esm/src → src}/e-base.js +18 -23
  52. package/dist/src/e-base.js.map +1 -0
  53. package/dist/src/e-dcql.d.ts +32 -0
  54. package/dist/src/e-dcql.d.ts.map +1 -0
  55. package/dist/src/e-dcql.js +35 -0
  56. package/dist/src/e-dcql.js.map +1 -0
  57. package/dist/src/index.d.ts +9 -0
  58. package/dist/src/index.d.ts.map +1 -0
  59. package/dist/src/index.js +30 -0
  60. package/dist/src/index.js.map +1 -0
  61. package/dist/src/u-dcql-credential-representation.d.ts +28 -0
  62. package/dist/src/u-dcql-credential-representation.d.ts.map +1 -0
  63. package/dist/src/u-dcql-credential-representation.js +32 -0
  64. package/dist/src/u-dcql-credential-representation.js.map +1 -0
  65. package/dist/src/u-dcql.d.ts +49 -0
  66. package/dist/src/u-dcql.d.ts.map +1 -0
  67. package/dist/src/u-dcql.js +76 -0
  68. package/dist/src/u-dcql.js.map +1 -0
  69. package/package.json +14 -9
  70. package/.cache/tsbuildinfo.json +0 -1
  71. package/.turbo/turbo-build.log +0 -4
  72. package/CHANGELOG.md +0 -13
  73. package/dist/esm/src/claims-query/claims-query-result.d.ts +0 -24
  74. package/dist/esm/src/claims-query/claims-query-result.d.ts.map +0 -1
  75. package/dist/esm/src/claims-query/claims-query-result.js +0 -67
  76. package/dist/esm/src/claims-query/claims-query-result.js.map +0 -1
  77. package/dist/esm/src/claims-query/v-claims-query-result.d.ts +0 -82
  78. package/dist/esm/src/claims-query/v-claims-query-result.d.ts.map +0 -1
  79. package/dist/esm/src/claims-query/v-claims-query-result.js +0 -30
  80. package/dist/esm/src/claims-query/v-claims-query-result.js.map +0 -1
  81. package/dist/esm/src/claims-query/v-claims-query.d.ts +0 -34
  82. package/dist/esm/src/claims-query/v-claims-query.d.ts.map +0 -1
  83. package/dist/esm/src/claims-query/v-claims-query.js +0 -24
  84. package/dist/esm/src/claims-query/v-claims-query.js.map +0 -1
  85. package/dist/esm/src/credential-query/credential-query-result.d.ts +0 -101
  86. package/dist/esm/src/credential-query/credential-query-result.d.ts.map +0 -1
  87. package/dist/esm/src/credential-query/credential-query-result.js +0 -91
  88. package/dist/esm/src/credential-query/credential-query-result.js.map +0 -1
  89. package/dist/esm/src/credential-query/v-credential-query-result.d.ts +0 -696
  90. package/dist/esm/src/credential-query/v-credential-query-result.d.ts.map +0 -1
  91. package/dist/esm/src/credential-query/v-credential-query-result.js +0 -44
  92. package/dist/esm/src/credential-query/v-credential-query-result.js.map +0 -1
  93. package/dist/esm/src/credential-query/v-credential-query.d.ts +0 -109
  94. package/dist/esm/src/credential-query/v-credential-query.d.ts.map +0 -1
  95. package/dist/esm/src/credential-query/v-credential-query.js +0 -57
  96. package/dist/esm/src/credential-query/v-credential-query.js.map +0 -1
  97. package/dist/esm/src/e-base.d.ts +0 -25
  98. package/dist/esm/src/e-base.d.ts.map +0 -1
  99. package/dist/esm/src/e-base.js.map +0 -1
  100. package/dist/esm/src/e-vp-query.d.ts +0 -32
  101. package/dist/esm/src/e-vp-query.d.ts.map +0 -1
  102. package/dist/esm/src/e-vp-query.js +0 -27
  103. package/dist/esm/src/e-vp-query.js.map +0 -1
  104. package/dist/esm/src/index.d.ts +0 -7
  105. package/dist/esm/src/index.d.ts.map +0 -1
  106. package/dist/esm/src/index.js +0 -7
  107. package/dist/esm/src/index.js.map +0 -1
  108. package/dist/esm/src/u-query.d.ts +0 -20
  109. package/dist/esm/src/u-query.d.ts.map +0 -1
  110. package/dist/esm/src/u-query.js +0 -25
  111. package/dist/esm/src/u-query.js.map +0 -1
  112. package/dist/esm/src/vp-query/v-vp-query-result.d.ts +0 -767
  113. package/dist/esm/src/vp-query/v-vp-query-result.d.ts.map +0 -1
  114. package/dist/esm/src/vp-query/v-vp-query-result.js +0 -18
  115. package/dist/esm/src/vp-query/v-vp-query-result.js.map +0 -1
  116. package/dist/esm/src/vp-query/v-vp-query.d.ts +0 -94
  117. package/dist/esm/src/vp-query/v-vp-query.d.ts.map +0 -1
  118. package/dist/esm/src/vp-query/v-vp-query.js +0 -52
  119. package/dist/esm/src/vp-query/v-vp-query.js.map +0 -1
  120. package/dist/esm/src/vp-query/vp-query.d.ts +0 -5
  121. package/dist/esm/src/vp-query/vp-query.d.ts.map +0 -1
  122. package/dist/esm/src/vp-query/vp-query.fixtures.d.ts +0 -7
  123. package/dist/esm/src/vp-query/vp-query.fixtures.d.ts.map +0 -1
  124. package/dist/esm/src/vp-query/vp-query.fixtures.js +0 -172
  125. package/dist/esm/src/vp-query/vp-query.fixtures.js.map +0 -1
  126. package/dist/esm/src/vp-query/vp-query.js +0 -21
  127. package/dist/esm/src/vp-query/vp-query.js.map +0 -1
  128. package/dist/esm/src/vp-query/vp-query.test.d.ts +0 -31
  129. package/dist/esm/src/vp-query/vp-query.test.d.ts.map +0 -1
  130. package/dist/esm/src/vp-query/vp-query.test.js +0 -130
  131. package/dist/esm/src/vp-query/vp-query.test.js.map +0 -1
  132. package/eslint.config.js +0 -10
  133. package/src/claims-query/claims-query-result.ts +0 -104
  134. package/src/claims-query/v-claims-query-result.ts +0 -42
  135. package/src/claims-query/v-claims-query.ts +0 -34
  136. package/src/credential-query/credential-query-result.ts +0 -130
  137. package/src/credential-query/v-credential-query-result.ts +0 -71
  138. package/src/credential-query/v-credential-query.ts +0 -85
  139. package/src/e-base.ts +0 -116
  140. package/src/e-vp-query.ts +0 -31
  141. package/src/index.ts +0 -6
  142. package/src/u-query.ts +0 -39
  143. package/src/vp-query/v-vp-query-result.ts +0 -23
  144. package/src/vp-query/v-vp-query.ts +0 -71
  145. package/src/vp-query/vp-query.fixtures.ts +0 -178
  146. package/src/vp-query/vp-query.test.ts +0 -156
  147. package/src/vp-query/vp-query.ts +0 -44
  148. package/tsconfig.json +0 -5
@@ -1,101 +0,0 @@
1
- import type { Mdoc } from '../u-query.js';
2
- import type { CredentialQuery } from './v-credential-query.js';
3
- export declare const queryCredentialSet: (credentialQueries: CredentialQuery[], credentials: Mdoc[], credential_set?: [string, ...string[]]) => ({
4
- id: string;
5
- isOptional: boolean;
6
- format: "mso_mdoc";
7
- claim_sets_results: ({
8
- output: {
9
- [x: string]: unknown;
10
- };
11
- areRequiredClaimsPresent: true;
12
- } | {
13
- output: unknown;
14
- areRequiredClaimsPresent: false;
15
- })[][];
16
- meta?: {
17
- doctype_values?: string[] | undefined;
18
- } | undefined;
19
- claims?: {
20
- namespace: string;
21
- claim_name: string;
22
- claim_query_results: ("all" | (({
23
- output: string | number | boolean;
24
- success: true;
25
- } & {
26
- [key: string]: unknown;
27
- }) | ({
28
- output: unknown;
29
- success: false;
30
- } & {
31
- [key: string]: unknown;
32
- }))[])[][];
33
- values?: (string | number | boolean)[] | undefined;
34
- id?: string | undefined;
35
- }[] | undefined;
36
- claim_sets?: string[][] | undefined;
37
- } | {
38
- id: string;
39
- isOptional: boolean;
40
- format: "vc+sd-jwt";
41
- claim_sets_results: ({
42
- output: {
43
- [x: string]: unknown;
44
- };
45
- areRequiredClaimsPresent: true;
46
- } | {
47
- output: unknown;
48
- areRequiredClaimsPresent: false;
49
- })[][];
50
- meta?: {
51
- vct_values?: string[] | undefined;
52
- } | undefined;
53
- claims?: {
54
- claim_query_results: ("all" | (({
55
- output: string | number | boolean;
56
- success: true;
57
- } & {
58
- [key: string]: unknown;
59
- }) | ({
60
- output: unknown;
61
- success: false;
62
- } & {
63
- [key: string]: unknown;
64
- }))[])[][];
65
- values?: (string | number | boolean)[] | undefined;
66
- id?: string | undefined;
67
- path?: (string | number)[] | undefined;
68
- }[] | undefined;
69
- claim_sets?: string[][] | undefined;
70
- } | {
71
- id: string;
72
- isOptional: boolean;
73
- format: "jwt_vc_json" | "jwt_vc_json-ld";
74
- claim_sets_results: ({
75
- output: {
76
- [x: string]: unknown;
77
- };
78
- areRequiredClaimsPresent: true;
79
- } | {
80
- output: unknown;
81
- areRequiredClaimsPresent: false;
82
- })[][];
83
- claims?: {
84
- claim_query_results: ("all" | (({
85
- output: string | number | boolean;
86
- success: true;
87
- } & {
88
- [key: string]: unknown;
89
- }) | ({
90
- output: unknown;
91
- success: false;
92
- } & {
93
- [key: string]: unknown;
94
- }))[])[][];
95
- values?: (string | number | boolean)[] | undefined;
96
- id?: string | undefined;
97
- path?: (string | number)[] | undefined;
98
- }[] | undefined;
99
- claim_sets?: string[][] | undefined;
100
- })[];
101
- //# sourceMappingURL=credential-query-result.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credential-query-result.d.ts","sourceRoot":"","sources":["../../../../src/credential-query/credential-query-result.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAmD/D,eAAO,MAAM,kBAAkB,sBACV,eAAe,EAAE,eACvB,IAAI,EAAE,mBACF,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgEvC,CAAC"}
@@ -1,91 +0,0 @@
1
- import * as v from 'valibot';
2
- import { getClaimsQueriesForClaimSet, getNamespacesParser, queryClaimFromMdoc, } from '../claims-query/claims-query-result.js';
3
- import { InvalidCredentialQueryIdError } from '../e-vp-query.js';
4
- import { getIdMetadata } from '../u-query.js';
5
- const queryClaimsFromCredentials = (credentialQuery, credentials) => {
6
- const claimQueryResults = [];
7
- if (!credentialQuery.claims) {
8
- claimQueryResults.push(['all']);
9
- return claimQueryResults;
10
- }
11
- if (credentialQuery.format !== 'mso_mdoc') {
12
- throw new Error('Hello World');
13
- }
14
- for (const claimQuery of credentialQuery.claims) {
15
- const claimQueryResultsForClaimSet = [];
16
- for (const credential of credentials) {
17
- const res = queryClaimFromMdoc(claimQuery, credential);
18
- claimQueryResultsForClaimSet.push(res);
19
- }
20
- claimQueryResults.push(claimQueryResultsForClaimSet);
21
- }
22
- return claimQueryResults;
23
- };
24
- const getCredentialQueriesForCredentialSet = (credentialQueries, credentialSet) => {
25
- if (!credentialSet) {
26
- return credentialQueries.map(query => ({ ...query, isOptional: false }));
27
- }
28
- return credentialSet.map(credential_id => {
29
- const { isOptional, baseId } = getIdMetadata(credential_id);
30
- const query = credentialQueries.find(credentialQuery => (credentialQuery.id = baseId));
31
- if (!query) {
32
- throw new InvalidCredentialQueryIdError({
33
- message: `Credential-query with id '${baseId}' not found.`,
34
- });
35
- }
36
- return { ...query, isOptional };
37
- });
38
- };
39
- export const queryCredentialSet = (credentialQueries, credentials, credential_set) => {
40
- const credentialQueriesForCredentialSet = getCredentialQueriesForCredentialSet(credentialQueries, credential_set);
41
- const credentialQueryResults = [];
42
- for (const credentialQuery of credentialQueriesForCredentialSet) {
43
- if (credentialQuery.format !== 'mso_mdoc') {
44
- throw new Error('asdfasdf');
45
- }
46
- const vDocType = credentialQuery.meta?.doctype_values
47
- ? v.union(credentialQuery.meta.doctype_values.map(v.literal))
48
- : v.unknown();
49
- const claim_sets_results = [];
50
- for (const claim_set of credentialQuery.claim_sets ?? [undefined]) {
51
- const x2 = credentialQuery.claims
52
- ? getClaimsQueriesForClaimSet(credentialQuery.claims, claim_set)
53
- : undefined;
54
- const credentialParser = v.object({
55
- docType: vDocType,
56
- namespaces: x2
57
- ? getNamespacesParser(x2)
58
- : v.record(v.string(), v.record(v.string(), v.unknown())),
59
- });
60
- const credentialQueryResult = [];
61
- for (const credential of credentials) {
62
- const parseResult = v.safeParse(credentialParser, credential);
63
- const { typed, ...result } = parseResult;
64
- if (result.success) {
65
- credentialQueryResult.push({
66
- areRequiredClaimsPresent: result.success,
67
- ...result,
68
- });
69
- }
70
- else {
71
- credentialQueryResult.push({
72
- areRequiredClaimsPresent: result.success,
73
- ...result,
74
- });
75
- }
76
- }
77
- claim_sets_results.push(credentialQueryResult);
78
- }
79
- const claimQueryResults = queryClaimsFromCredentials(credentialQuery, credentials);
80
- credentialQueryResults.push({
81
- ...credentialQuery,
82
- claim_sets_results,
83
- claims: credentialQuery.claims?.map(claim => ({
84
- ...claim,
85
- claim_query_results: claimQueryResults,
86
- })),
87
- });
88
- }
89
- return credentialQueryResults;
90
- };
91
- //# sourceMappingURL=credential-query-result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credential-query-result.js","sourceRoot":"","sources":["../../../../src/credential-query/credential-query-result.ts"],"names":[],"mappings":"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"}