@pagopa/io-wallet-oid-federation 0.3.0 → 0.4.2
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/index.d.mts +44306 -31511
- package/dist/index.d.ts +44306 -31511
- package/dist/index.js +149 -144
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +151 -149
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -8
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
// src/entityConfiguration/createItWalletEntityConfiguration.ts
|
|
2
|
+
import {
|
|
3
|
+
createJsonWebToken,
|
|
4
|
+
createJwtSignableInput,
|
|
5
|
+
entityConfigurationHeaderSchema,
|
|
6
|
+
getUsedJsonWebKey
|
|
7
|
+
} from "@openid-federation/core";
|
|
8
|
+
|
|
9
|
+
// src/utils/validate.ts
|
|
10
|
+
import { ValidationError } from "@openid4vc/utils";
|
|
11
|
+
var parseWithErrorHandling = (schema, data, customErrorMessage) => {
|
|
12
|
+
try {
|
|
13
|
+
return schema.parse(data);
|
|
14
|
+
} catch (e) {
|
|
15
|
+
const error = e;
|
|
16
|
+
const errorMessage = customErrorMessage ?? `Error validating schema with data ${JSON.stringify(data)}`;
|
|
17
|
+
throw new ValidationError(`${errorMessage}: ${formattedErrors(error)}`);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
var formattedErrors = (error) => error.issues.map((issue) => {
|
|
21
|
+
const path = issue.path.join(".");
|
|
22
|
+
const message = issue.message;
|
|
23
|
+
return `${path}: ${message}`;
|
|
24
|
+
});
|
|
25
|
+
|
|
1
26
|
// src/entityStatement/itWalletEntityStatementClaims.ts
|
|
2
27
|
import {
|
|
3
28
|
constraintSchema,
|
|
@@ -44,7 +69,6 @@ var JWK = z.object({
|
|
|
44
69
|
/** JWK "use" (Public Key Use) Parameter. */
|
|
45
70
|
use: z.string().optional(),
|
|
46
71
|
x: z.string().optional(),
|
|
47
|
-
y: z.string().optional(),
|
|
48
72
|
/** JWK "x5c" (X.509 Certificate Chain) Parameter. */
|
|
49
73
|
x5c: z.array(z.string()).optional(),
|
|
50
74
|
/** JWK "x5t" (X.509 Certificate SHA-1 Thumbprint) Parameter. */
|
|
@@ -52,7 +76,8 @@ var JWK = z.object({
|
|
|
52
76
|
/** "x5t#S256" (X.509 Certificate SHA-256 Thumbprint) Parameter. */
|
|
53
77
|
"x5t#S256": z.string().optional(),
|
|
54
78
|
/** JWK "x5u" (X.509 URL) Parameter. */
|
|
55
|
-
x5u: z.string().optional()
|
|
79
|
+
x5u: z.string().optional(),
|
|
80
|
+
y: z.string().optional()
|
|
56
81
|
});
|
|
57
82
|
var JWKS = z.object({
|
|
58
83
|
keys: z.array(JWK)
|
|
@@ -60,172 +85,172 @@ var JWKS = z.object({
|
|
|
60
85
|
|
|
61
86
|
// src/metadata/entity/ItWalletProvider.ts
|
|
62
87
|
var itWalletProviderEntityMetadata = z2.object({
|
|
63
|
-
|
|
64
|
-
signed_jwks_uri: z2.string().url().optional(),
|
|
88
|
+
jwks: JWKS.optional(),
|
|
65
89
|
jwks_uri: z2.string().url().optional(),
|
|
66
|
-
|
|
90
|
+
// -- 5.2.1 Extensions for JWK Sets in Entity Metadata
|
|
91
|
+
signed_jwks_uri: z2.string().url().optional()
|
|
67
92
|
}).passthrough();
|
|
68
93
|
var itWalletProviderEntityIdentifier = "wallet_provider";
|
|
69
94
|
|
|
70
|
-
// src/metadata/entity/
|
|
95
|
+
// src/metadata/entity/itWalletAuthorizationServer.ts
|
|
71
96
|
import { z as z3 } from "zod";
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
|
|
97
|
+
var itWalletAuthorizationServerMetadata = z3.object({
|
|
98
|
+
acr_values_supported: z3.array(
|
|
99
|
+
z3.union([
|
|
100
|
+
z3.literal("https://trust-registry.eid-wallet.example.it/loa/low"),
|
|
101
|
+
z3.literal(
|
|
102
|
+
"https://trust-registry.eid-wallet.example.it/loa/substantial"
|
|
103
|
+
),
|
|
104
|
+
z3.literal("https://trust-registry.eid-wallet.example.it/loa/high")
|
|
105
|
+
])
|
|
106
|
+
),
|
|
107
|
+
authorization_endpoint: z3.string().url(),
|
|
108
|
+
authorization_signing_alg_values_supported: z3.array(z3.string()),
|
|
109
|
+
client_registration_types_supported: z3.array(
|
|
110
|
+
z3.union([z3.literal("automatic"), z3.literal("explicit")])
|
|
111
|
+
),
|
|
112
|
+
code_challenge_methods_supported: z3.array(z3.string()).refine((arr) => arr.includes("S256"), {
|
|
113
|
+
message: "The code_challenge_methods_supported array MUST include 'S256'."
|
|
114
|
+
}),
|
|
115
|
+
grant_types_supported: z3.array(z3.string()).refine((arr) => arr.includes("authorization_code"), {
|
|
116
|
+
message: "The grant_types_supported array MUST include 'authorization_code'."
|
|
117
|
+
}),
|
|
118
|
+
issuer: z3.string().url(),
|
|
119
|
+
jwks: JWKS,
|
|
120
|
+
pushed_authorization_request_endpoint: z3.string().url(),
|
|
121
|
+
request_object_signing_alg_values_supported: z3.array(z3.string()),
|
|
122
|
+
response_modes_supported: z3.array(
|
|
123
|
+
z3.union([z3.literal("query"), z3.literal("form_post.jwt")])
|
|
124
|
+
),
|
|
125
|
+
response_types_supported: z3.array(z3.string()).refine((arr) => arr.includes("code"), {
|
|
126
|
+
message: "The response_types_supported array MUST include 'code'."
|
|
127
|
+
}),
|
|
128
|
+
scopes_supported: z3.array(z3.string()),
|
|
129
|
+
token_endpoint: z3.string().url(),
|
|
130
|
+
token_endpoint_auth_methods_supported: z3.array(z3.string()).refine((arr) => arr.includes("attest_jwt_client_auth"), {
|
|
131
|
+
message: "The token_endpoint_auth_methods_supported array MUST include 'attest_jwt_client_auth'."
|
|
132
|
+
}),
|
|
133
|
+
token_endpoint_auth_signing_alg_values_supported: z3.array(z3.string())
|
|
134
|
+
}).passthrough();
|
|
135
|
+
var itWalletAuthorizationServerIdentifier = "oauth_authorization_server";
|
|
136
|
+
|
|
137
|
+
// src/metadata/entity/itWalletCredentialIssuer.ts
|
|
138
|
+
import { z as z4 } from "zod";
|
|
139
|
+
var CredentialDisplayMetadata = z4.object({
|
|
140
|
+
locale: z4.string(),
|
|
141
|
+
name: z4.string()
|
|
75
142
|
});
|
|
76
|
-
var ClaimsMetadata =
|
|
77
|
-
|
|
78
|
-
|
|
143
|
+
var ClaimsMetadata = z4.object({
|
|
144
|
+
display: z4.array(CredentialDisplayMetadata),
|
|
145
|
+
path: z4.array(z4.union([z4.string(), z4.number(), z4.null()]))
|
|
79
146
|
});
|
|
80
|
-
var SupportedCredentialMetadata =
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
147
|
+
var SupportedCredentialMetadata = z4.intersection(
|
|
148
|
+
z4.discriminatedUnion("format", [
|
|
149
|
+
z4.object({ format: z4.literal("dc+sd-jwt"), vct: z4.string() }),
|
|
150
|
+
z4.object({ doctype: z4.string(), format: z4.literal("mso_mdoc") })
|
|
84
151
|
]),
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
proof_signing_alg_values_supported: z3.array(z3.string())
|
|
152
|
+
z4.object({
|
|
153
|
+
claims: z4.array(ClaimsMetadata),
|
|
154
|
+
credential_signing_alg_values_supported: z4.array(z4.string()),
|
|
155
|
+
cryptographic_binding_methods_supported: z4.array(z4.string()),
|
|
156
|
+
display: z4.array(CredentialDisplayMetadata),
|
|
157
|
+
proof_types_supported: z4.object({
|
|
158
|
+
jwt: z4.object({
|
|
159
|
+
proof_signing_alg_values_supported: z4.array(z4.string())
|
|
94
160
|
})
|
|
95
|
-
})
|
|
161
|
+
}),
|
|
162
|
+
scope: z4.string()
|
|
96
163
|
})
|
|
97
164
|
);
|
|
98
|
-
var itWalletCredentialIssuerMetadata =
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
display:
|
|
109
|
-
|
|
110
|
-
jwks: JWKS,
|
|
111
|
-
trust_frameworks_supported: z3.array(
|
|
112
|
-
z3.union([
|
|
113
|
-
z3.literal("it_cie"),
|
|
114
|
-
z3.literal("it_wallet"),
|
|
115
|
-
z3.literal("eudi_wallet")
|
|
116
|
-
])
|
|
117
|
-
),
|
|
118
|
-
evidence_supported: z3.array(z3.string()).refine((arr) => arr.includes("vouch"), {
|
|
165
|
+
var itWalletCredentialIssuerMetadata = z4.object({
|
|
166
|
+
authorization_servers: z4.array(z4.string().url()).optional(),
|
|
167
|
+
batch_credential_issuance: z4.object({
|
|
168
|
+
batch_size: z4.number().int()
|
|
169
|
+
}),
|
|
170
|
+
credential_configurations_supported: z4.record(SupportedCredentialMetadata),
|
|
171
|
+
credential_endpoint: z4.string().url(),
|
|
172
|
+
credential_hash_alg_supported: z4.string(),
|
|
173
|
+
credential_issuer: z4.string().url(),
|
|
174
|
+
deferred_credential_endpoint: z4.string().url(),
|
|
175
|
+
display: z4.array(CredentialDisplayMetadata),
|
|
176
|
+
evidence_supported: z4.array(z4.string()).refine((arr) => arr.includes("vouch"), {
|
|
119
177
|
message: "The evidence_supported array MUST include 'vouch'."
|
|
120
178
|
}),
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
179
|
+
jwks: JWKS,
|
|
180
|
+
nonce_endpoint: z4.string().url(),
|
|
181
|
+
notification_endpoint: z4.string().url(),
|
|
182
|
+
revocation_endpoint: z4.string().url(),
|
|
183
|
+
status_assertion_endpoint: z4.string().url(),
|
|
184
|
+
status_attestation_endpoint: z4.string().url(),
|
|
185
|
+
trust_frameworks_supported: z4.array(
|
|
186
|
+
z4.union([
|
|
187
|
+
z4.literal("it_cie"),
|
|
188
|
+
z4.literal("it_wallet"),
|
|
189
|
+
z4.literal("eudi_wallet")
|
|
190
|
+
])
|
|
191
|
+
)
|
|
125
192
|
}).passthrough();
|
|
126
193
|
var itWalletCredentialIssuerIdentifier = "openid_credential_issuer";
|
|
127
194
|
|
|
128
|
-
// src/metadata/entity/itWalletFederationEntity.ts
|
|
129
|
-
import { federationEntityMetadata } from "@openid-federation/core";
|
|
130
|
-
import { z as z4 } from "zod";
|
|
131
|
-
var itWalletFederationEntityMetadata = federationEntityMetadata.schema.extend({
|
|
132
|
-
tos_uri: z4.string().url().optional()
|
|
133
|
-
}).passthrough();
|
|
134
|
-
var itWalletFederationEntityIdentifier = federationEntityMetadata.identifier;
|
|
135
|
-
|
|
136
195
|
// src/metadata/entity/itWalletCredentialVerifier.ts
|
|
137
196
|
import { z as z5 } from "zod";
|
|
138
197
|
var itWalletCredentialVerifierMetadata = z5.object({
|
|
139
|
-
client_id: z5.string().url(),
|
|
140
|
-
client_name: z5.string(),
|
|
141
198
|
application_type: z5.literal("web"),
|
|
142
|
-
|
|
143
|
-
|
|
199
|
+
authorization_encrypted_response_alg: z5.string(),
|
|
200
|
+
authorization_encrypted_response_enc: z5.string(),
|
|
144
201
|
authorization_signed_response_alg: z5.string().refine((v) => v !== "none", {
|
|
145
202
|
message: "The authorization_signed_response_alg MUST not be 'none'."
|
|
146
203
|
}),
|
|
147
|
-
|
|
148
|
-
|
|
204
|
+
client_id: z5.string().url(),
|
|
205
|
+
client_name: z5.string(),
|
|
206
|
+
erasure_endpoint: z5.string().url().optional(),
|
|
207
|
+
jwks: JWKS,
|
|
208
|
+
request_uris: z5.array(z5.string().url()),
|
|
209
|
+
response_uris: z5.array(z5.string().url()),
|
|
149
210
|
vp_formats: z5.record(
|
|
150
211
|
z5.string(),
|
|
151
212
|
z5.object({
|
|
152
|
-
|
|
153
|
-
|
|
213
|
+
alg: z5.array(z5.string()).optional(),
|
|
214
|
+
"sd-jwt_alg_values": z5.array(z5.string()).optional()
|
|
154
215
|
})
|
|
155
|
-
)
|
|
156
|
-
jwks: JWKS,
|
|
157
|
-
erasure_endpoint: z5.string().url().optional()
|
|
216
|
+
)
|
|
158
217
|
}).passthrough();
|
|
159
218
|
var itWalletCredentialVerifierIdentifier = "openid_credential_verifier";
|
|
160
219
|
|
|
161
|
-
// src/metadata/entity/
|
|
220
|
+
// src/metadata/entity/itWalletFederationEntity.ts
|
|
221
|
+
import { federationEntityMetadata } from "@openid-federation/core";
|
|
162
222
|
import { z as z6 } from "zod";
|
|
163
|
-
var
|
|
164
|
-
|
|
165
|
-
pushed_authorization_request_endpoint: z6.string().url(),
|
|
166
|
-
authorization_endpoint: z6.string().url(),
|
|
167
|
-
token_endpoint: z6.string().url(),
|
|
168
|
-
client_registration_types_supported: z6.array(
|
|
169
|
-
z6.union([z6.literal("automatic"), z6.literal("explicit")])
|
|
170
|
-
),
|
|
171
|
-
code_challenge_methods_supported: z6.array(z6.string()).refine((arr) => arr.includes("S256"), {
|
|
172
|
-
message: "The code_challenge_methods_supported array MUST include 'S256'."
|
|
173
|
-
}),
|
|
174
|
-
acr_values_supported: z6.array(
|
|
175
|
-
z6.union([
|
|
176
|
-
z6.literal("https://trust-registry.eid-wallet.example.it/loa/low"),
|
|
177
|
-
z6.literal(
|
|
178
|
-
"https://trust-registry.eid-wallet.example.it/loa/substantial"
|
|
179
|
-
),
|
|
180
|
-
z6.literal("https://trust-registry.eid-wallet.example.it/loa/high")
|
|
181
|
-
])
|
|
182
|
-
),
|
|
183
|
-
scopes_supported: z6.array(z6.string()),
|
|
184
|
-
response_modes_supported: z6.array(
|
|
185
|
-
z6.union([z6.literal("query"), z6.literal("form_post.jwt")])
|
|
186
|
-
),
|
|
187
|
-
response_types_supported: z6.array(z6.string()).refine((arr) => arr.includes("code"), {
|
|
188
|
-
message: "The response_types_supported array MUST include 'code'."
|
|
189
|
-
}),
|
|
190
|
-
authorization_signing_alg_values_supported: z6.array(z6.string()),
|
|
191
|
-
grant_types_supported: z6.array(z6.string()).refine((arr) => arr.includes("authorization_code"), {
|
|
192
|
-
message: "The grant_types_supported array MUST include 'authorization_code'."
|
|
193
|
-
}),
|
|
194
|
-
token_endpoint_auth_methods_supported: z6.array(z6.string()).refine((arr) => arr.includes("attest_jwt_client_auth"), {
|
|
195
|
-
message: "The token_endpoint_auth_methods_supported array MUST include 'attest_jwt_client_auth'."
|
|
196
|
-
}),
|
|
197
|
-
token_endpoint_auth_signing_alg_values_supported: z6.array(z6.string()),
|
|
198
|
-
request_object_signing_alg_values_supported: z6.array(z6.string()),
|
|
199
|
-
jwks: JWKS
|
|
223
|
+
var itWalletFederationEntityMetadata = federationEntityMetadata.schema.extend({
|
|
224
|
+
tos_uri: z6.string().url().optional()
|
|
200
225
|
}).passthrough();
|
|
201
|
-
var
|
|
226
|
+
var itWalletFederationEntityIdentifier = federationEntityMetadata.identifier;
|
|
202
227
|
|
|
203
228
|
// src/metadata/itWalletMetadata.ts
|
|
204
229
|
var itWalletMetadataSchema = z7.object({
|
|
205
|
-
[
|
|
206
|
-
[itWalletCredentialVerifierIdentifier]: itWalletCredentialVerifierMetadata.optional(),
|
|
230
|
+
[itWalletAuthorizationServerIdentifier]: itWalletAuthorizationServerMetadata.optional(),
|
|
207
231
|
[itWalletCredentialIssuerIdentifier]: itWalletCredentialIssuerMetadata.optional(),
|
|
208
|
-
[
|
|
209
|
-
[
|
|
232
|
+
[itWalletCredentialVerifierIdentifier]: itWalletCredentialVerifierMetadata.optional(),
|
|
233
|
+
[itWalletFederationEntityIdentifier]: itWalletFederationEntityMetadata.optional(),
|
|
234
|
+
[itWalletProviderEntityIdentifier]: itWalletProviderEntityMetadata.optional()
|
|
210
235
|
});
|
|
211
236
|
|
|
212
237
|
// src/entityStatement/itWalletEntityStatementClaims.ts
|
|
213
238
|
var itWalletEntityStatementClaimsSchema = z8.object({
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
239
|
+
authority_hints: z8.array(z8.string().url()).optional(),
|
|
240
|
+
constraints: constraintSchema.optional(),
|
|
241
|
+
crit: z8.array(z8.string()).optional(),
|
|
217
242
|
exp: dateSchema,
|
|
243
|
+
iat: dateSchema,
|
|
244
|
+
iss: z8.string(),
|
|
218
245
|
jwks: jsonWebKeySetSchema,
|
|
219
|
-
authority_hints: z8.array(z8.string().url()).optional(),
|
|
220
246
|
metadata: itWalletMetadataSchema.optional(),
|
|
221
247
|
metadata_policy: z8.record(z8.record(metadataPolicySchema).optional()).optional(),
|
|
222
|
-
constraints: constraintSchema.optional(),
|
|
223
|
-
crit: z8.array(z8.string()).optional(),
|
|
224
248
|
metadata_policy_crit: z8.array(z8.string()).optional(),
|
|
225
|
-
|
|
249
|
+
source_endpoint: z8.string().url().optional(),
|
|
250
|
+
sub: z8.string(),
|
|
226
251
|
trust_mark_issuers: trustMarkIssuerSchema.optional(),
|
|
227
252
|
trust_mark_owners: trustMarkOwnerSchema.optional(),
|
|
228
|
-
|
|
253
|
+
trust_marks: z8.array(trustMarkSchema).optional()
|
|
229
254
|
}).passthrough().refine(
|
|
230
255
|
(data) => {
|
|
231
256
|
const keyIds = data.jwks.keys.map((key) => key.kid);
|
|
@@ -244,36 +269,11 @@ var itWalletEntityConfigurationClaimsSchema = itWalletEntityStatementClaimsSchem
|
|
|
244
269
|
path: ["iss", "sub"]
|
|
245
270
|
});
|
|
246
271
|
|
|
247
|
-
// src/entityConfiguration/createItWalletEntityConfiguration.ts
|
|
248
|
-
import {
|
|
249
|
-
createJsonWebToken,
|
|
250
|
-
createJwtSignableInput,
|
|
251
|
-
entityConfigurationHeaderSchema,
|
|
252
|
-
getUsedJsonWebKey
|
|
253
|
-
} from "@openid-federation/core";
|
|
254
|
-
|
|
255
|
-
// src/utils/validate.ts
|
|
256
|
-
import { ValidationError } from "@openid4vc/utils";
|
|
257
|
-
var parseWithErrorHandling = (schema, data, customErrorMessage) => {
|
|
258
|
-
try {
|
|
259
|
-
return schema.parse(data);
|
|
260
|
-
} catch (e) {
|
|
261
|
-
const error = e;
|
|
262
|
-
const errorMessage = customErrorMessage ?? `Error validating schema with data ${JSON.stringify(data)}`;
|
|
263
|
-
throw new ValidationError(`${errorMessage}: ${formattedErrors(error)}`);
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
var formattedErrors = (error) => error.issues.map((issue) => {
|
|
267
|
-
const path = issue.path.join(".");
|
|
268
|
-
const message = issue.message;
|
|
269
|
-
return `${path}: ${message}`;
|
|
270
|
-
});
|
|
271
|
-
|
|
272
272
|
// src/entityConfiguration/createItWalletEntityConfiguration.ts
|
|
273
273
|
var createItWalletEntityConfiguration = async ({
|
|
274
|
+
claims,
|
|
274
275
|
header,
|
|
275
|
-
signJwtCallback
|
|
276
|
-
claims
|
|
276
|
+
signJwtCallback
|
|
277
277
|
}) => {
|
|
278
278
|
const validatedHeader = parseWithErrorHandling(
|
|
279
279
|
entityConfigurationHeaderSchema,
|
|
@@ -287,10 +287,12 @@ var createItWalletEntityConfiguration = async ({
|
|
|
287
287
|
);
|
|
288
288
|
const toBeSigned = createJwtSignableInput(header, claims);
|
|
289
289
|
const jwk = getUsedJsonWebKey(validatedHeader, validatedClaims);
|
|
290
|
-
const signature = await signJwtCallback({
|
|
290
|
+
const signature = await signJwtCallback({ jwk, toBeSigned });
|
|
291
291
|
return createJsonWebToken(header, claims, signature);
|
|
292
292
|
};
|
|
293
293
|
export {
|
|
294
|
+
JWK,
|
|
295
|
+
JWKS,
|
|
294
296
|
createItWalletEntityConfiguration,
|
|
295
297
|
itWalletAuthorizationServerIdentifier,
|
|
296
298
|
itWalletAuthorizationServerMetadata,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entityStatement/itWalletEntityStatementClaims.ts","../src/metadata/itWalletMetadata.ts","../src/metadata/entity/ItWalletProvider.ts","../src/jwk/jwk.ts","../src/metadata/entity/itWalletCredentialIssuer.ts","../src/metadata/entity/itWalletFederationEntity.ts","../src/metadata/entity/itWalletCredentialVerifier.ts","../src/metadata/entity/itWalletAuthorizationServer.ts","../src/entityConfiguration/itWalletEntityConfigurationClaims.ts","../src/entityConfiguration/createItWalletEntityConfiguration.ts","../src/utils/validate.ts"],"sourcesContent":["import {\n constraintSchema,\n dateSchema,\n jsonWebKeySetSchema,\n metadataPolicySchema,\n trustMarkIssuerSchema,\n trustMarkOwnerSchema,\n trustMarkSchema,\n} from \"@openid-federation/core\";\nimport { z } from \"zod\";\nimport { itWalletMetadataSchema } from \"../metadata/itWalletMetadata\";\n\nexport const itWalletEntityStatementClaimsSchema = z\n .object({\n iss: z.string(),\n sub: z.string(),\n iat: dateSchema,\n exp: dateSchema,\n jwks: jsonWebKeySetSchema,\n authority_hints: z.array(z.string().url()).optional(),\n metadata: itWalletMetadataSchema.optional(),\n metadata_policy: z\n .record(z.record(metadataPolicySchema).optional())\n .optional(),\n constraints: constraintSchema.optional(),\n crit: z.array(z.string()).optional(),\n metadata_policy_crit: z.array(z.string()).optional(),\n trust_marks: z.array(trustMarkSchema).optional(),\n trust_mark_issuers: trustMarkIssuerSchema.optional(),\n trust_mark_owners: trustMarkOwnerSchema.optional(),\n source_endpoint: z.string().url().optional(),\n })\n .passthrough()\n .refine(\n (data) => {\n const keyIds = data.jwks.keys.map((key) => key.kid);\n const uniqueKeyIds = new Set(keyIds);\n return uniqueKeyIds.size === keyIds.length;\n },\n {\n message: \"keys include duplicate key ids\",\n path: [\"jwks\", \"keys\"],\n },\n );\n\nexport type ItWalletEntityStatementClaimsOptions = z.input<\n typeof itWalletEntityStatementClaimsSchema\n>;\n\nexport type ItWalletEntityStatementClaims = z.output<\n typeof itWalletEntityStatementClaimsSchema\n>;\n","import { z } from \"zod\";\nimport {\n itWalletFederationEntityMetadata,\n itWalletFederationEntityIdentifier,\n itWalletProviderEntityMetadata,\n itWalletProviderEntityIdentifier,\n itWalletCredentialVerifierMetadata,\n itWalletCredentialVerifierIdentifier,\n itWalletAuthorizationServerIdentifier,\n itWalletAuthorizationServerMetadata,\n itWalletCredentialIssuerIdentifier,\n itWalletCredentialIssuerMetadata,\n} from \"./entity\";\n\nexport const itWalletMetadataSchema = z.object({\n [itWalletFederationEntityIdentifier]:\n itWalletFederationEntityMetadata.optional(),\n [itWalletCredentialVerifierIdentifier]:\n itWalletCredentialVerifierMetadata.optional(),\n [itWalletCredentialIssuerIdentifier]:\n itWalletCredentialIssuerMetadata.optional(),\n [itWalletProviderEntityIdentifier]: itWalletProviderEntityMetadata.optional(),\n [itWalletAuthorizationServerIdentifier]:\n itWalletAuthorizationServerMetadata.optional(),\n});\n\nexport type Metadata = z.input<typeof itWalletMetadataSchema>;\n","import { z } from \"zod\";\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/wallet-provider-metadata.html}\n *\n */\nexport const itWalletProviderEntityMetadata = z\n .object({\n // -- 5.2.1 Extensions for JWK Sets in Entity Metadata\n signed_jwks_uri: z.string().url().optional(),\n jwks_uri: z.string().url().optional(),\n jwks: JWKS.optional(),\n })\n .passthrough();\n\nexport type ItWalletProviderEntityMetadata = z.input<\n typeof itWalletProviderEntityMetadata\n>;\n\nexport const itWalletProviderEntityIdentifier = \"wallet_provider\";\n","import { z } from \"zod\";\n\nexport type JWK = z.infer<typeof JWK>;\nexport const JWK = z.object({\n /** JWK \"alg\" (Algorithm) Parameter. */\n alg: z.string().optional(),\n crv: z.string().optional(),\n d: z.string().optional(),\n dp: z.string().optional(),\n dq: z.string().optional(),\n e: z.string().optional(),\n /** JWK \"ext\" (Extractable) Parameter. */\n ext: z.boolean().optional(),\n k: z.string().optional(),\n /** JWK \"key_ops\" (Key Operations) Parameter. */\n key_ops: z.array(z.string()).optional(),\n /** JWK \"kid\" (Key ID) Parameter. */\n kid: z.string().optional(),\n /** JWK \"kty\" (Key Type) Parameter.\n * This attribute is required to discriminate the\n * type of EC/RSA algorithm */\n kty: z.union([z.literal(\"RSA\"), z.literal(\"EC\")]),\n n: z.string().optional(),\n p: z.string().optional(),\n q: z.string().optional(),\n qi: z.string().optional(),\n /** JWK \"use\" (Public Key Use) Parameter. */\n use: z.string().optional(),\n x: z.string().optional(),\n y: z.string().optional(),\n /** JWK \"x5c\" (X.509 Certificate Chain) Parameter. */\n x5c: z.array(z.string()).optional(),\n /** JWK \"x5t\" (X.509 Certificate SHA-1 Thumbprint) Parameter. */\n x5t: z.string().optional(),\n /** \"x5t#S256\" (X.509 Certificate SHA-256 Thumbprint) Parameter. */\n \"x5t#S256\": z.string().optional(),\n /** JWK \"x5u\" (X.509 URL) Parameter. */\n x5u: z.string().optional(),\n});\n\nexport type JWKS = z.infer<typeof JWKS>;\nexport const JWKS = z.object({\n keys: z.array(JWK),\n});\n","import { z } from \"zod\";\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/credential-issuer-solution.html#metadata-for-openid-credential-issuer}\n *\n */\ntype CredentialDisplayMetadata = z.infer<typeof CredentialDisplayMetadata>;\nconst CredentialDisplayMetadata = z.object({\n name: z.string(),\n locale: z.string(),\n});\n\ntype ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nconst ClaimsMetadata = z.object({\n path: z.array(z.union([z.string(), z.number(), z.null()])),\n display: z.array(CredentialDisplayMetadata),\n});\n\n// Metadata for a credential which is supported by an Issuer\ntype SupportedCredentialMetadata = z.infer<typeof SupportedCredentialMetadata>;\nconst SupportedCredentialMetadata = z.intersection(\n z.discriminatedUnion(\"format\", [\n z.object({ format: z.literal(\"dc+sd-jwt\"), vct: z.string() }),\n z.object({ format: z.literal(\"mso_mdoc\"), doctype: z.string() }),\n ]),\n z.object({\n scope: z.string(),\n display: z.array(CredentialDisplayMetadata),\n claims: z.array(ClaimsMetadata),\n cryptographic_binding_methods_supported: z.array(z.string()),\n credential_signing_alg_values_supported: z.array(z.string()),\n proof_types_supported: z.object({\n jwt: z.object({\n proof_signing_alg_values_supported: z.array(z.string()),\n }),\n }),\n }),\n);\n\nexport const itWalletCredentialIssuerMetadata = z\n .object({\n credential_issuer: z.string().url(),\n credential_endpoint: z.string().url(),\n nonce_endpoint: z.string().url(),\n revocation_endpoint: z.string().url(),\n deferred_credential_endpoint: z.string().url(),\n status_assertion_endpoint: z.string().url(),\n status_attestation_endpoint: z.string().url(),\n notification_endpoint: z.string().url(),\n authorization_servers: z.array(z.string().url()).optional(),\n display: z.array(CredentialDisplayMetadata),\n credential_configurations_supported: z.record(SupportedCredentialMetadata),\n jwks: JWKS,\n trust_frameworks_supported: z.array(\n z.union([\n z.literal(\"it_cie\"),\n z.literal(\"it_wallet\"),\n z.literal(\"eudi_wallet\"),\n ]),\n ),\n evidence_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"vouch\"), {\n message: \"The evidence_supported array MUST include 'vouch'.\",\n }),\n credential_hash_alg_supported: z.string(),\n batch_credential_issuance: z.object({\n batch_size: z.number().int(),\n }),\n })\n .passthrough();\n\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { federationEntityMetadata } from \"@openid-federation/core\";\nimport { z } from \"zod\";\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/trust.html#metadata-of-federation-entity-leaves}\n *\n */\nexport const itWalletFederationEntityMetadata = federationEntityMetadata.schema\n .extend({\n tos_uri: z.string().url().optional(),\n })\n .passthrough();\n\nexport type ItWalletFederationEntityMetadata = z.input<\n typeof itWalletFederationEntityMetadata\n>;\n\nexport const itWalletFederationEntityIdentifier =\n federationEntityMetadata.identifier;\n","import { z } from \"zod\";\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/relying-party-metadata.html}\n *\n */\nexport const itWalletCredentialVerifierMetadata = z\n .object({\n client_id: z.string().url(),\n client_name: z.string(),\n application_type: z.literal(\"web\"),\n request_uris: z.array(z.string().url()),\n response_uris: z.array(z.string().url()),\n authorization_signed_response_alg: z.string().refine((v) => v !== \"none\", {\n message: \"The authorization_signed_response_alg MUST not be 'none'.\",\n }),\n authorization_encrypted_response_alg: z.string(),\n authorization_encrypted_response_enc: z.string(),\n vp_formats: z.record(\n z.string(),\n z.object({\n \"sd-jwt_alg_values\": z.array(z.string()).optional(),\n alg: z.array(z.string()).optional(),\n }),\n ),\n jwks: JWKS,\n erasure_endpoint: z.string().url().optional(),\n })\n .passthrough();\n\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\nexport const itWalletCredentialVerifierIdentifier =\n \"openid_credential_verifier\";\n","import { z } from \"zod\";\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/credential-issuer-solution.html#metadata-for-oauth-authorization-server}\n *\n */\nexport const itWalletAuthorizationServerMetadata = z\n .object({\n issuer: z.string().url(),\n pushed_authorization_request_endpoint: z.string().url(),\n authorization_endpoint: z.string().url(),\n token_endpoint: z.string().url(),\n client_registration_types_supported: z.array(\n z.union([z.literal(\"automatic\"), z.literal(\"explicit\")]),\n ),\n code_challenge_methods_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"S256\"), {\n message:\n \"The code_challenge_methods_supported array MUST include 'S256'.\",\n }),\n acr_values_supported: z.array(\n z.union([\n z.literal(\"https://trust-registry.eid-wallet.example.it/loa/low\"),\n z.literal(\n \"https://trust-registry.eid-wallet.example.it/loa/substantial\",\n ),\n z.literal(\"https://trust-registry.eid-wallet.example.it/loa/high\"),\n ]),\n ),\n scopes_supported: z.array(z.string()),\n response_modes_supported: z.array(\n z.union([z.literal(\"query\"), z.literal(\"form_post.jwt\")]),\n ),\n response_types_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"code\"), {\n message: \"The response_types_supported array MUST include 'code'.\",\n }),\n authorization_signing_alg_values_supported: z.array(z.string()),\n grant_types_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"authorization_code\"), {\n message:\n \"The grant_types_supported array MUST include 'authorization_code'.\",\n }),\n token_endpoint_auth_methods_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"attest_jwt_client_auth\"), {\n message:\n \"The token_endpoint_auth_methods_supported array MUST include 'attest_jwt_client_auth'.\",\n }),\n token_endpoint_auth_signing_alg_values_supported: z.array(z.string()),\n request_object_signing_alg_values_supported: z.array(z.string()),\n jwks: JWKS,\n })\n .passthrough();\n\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import type { z } from \"zod\";\nimport { itWalletEntityStatementClaimsSchema } from \"../entityStatement/itWalletEntityStatementClaims\";\n\nexport const itWalletEntityConfigurationClaimsSchema =\n itWalletEntityStatementClaimsSchema.refine((data) => data.iss === data.sub, {\n message: \"iss and sub must be equal\",\n path: [\"iss\", \"sub\"],\n });\n\nexport type ItWalletEntityConfigurationClaimsOptions = z.input<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n\nexport type ItWalletEntityConfigurationClaims = z.output<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n","import {\n createJsonWebToken,\n createJwtSignableInput,\n EntityConfigurationHeaderOptions,\n entityConfigurationHeaderSchema,\n getUsedJsonWebKey,\n SignCallback,\n} from \"@openid-federation/core\";\nimport {\n ItWalletEntityConfigurationClaimsOptions,\n itWalletEntityConfigurationClaimsSchema,\n} from \"./itWalletEntityConfigurationClaims\";\nimport { parseWithErrorHandling } from \"../utils/validate\";\n\nexport type CreateEntityConfigurationOptions = {\n claims: ItWalletEntityConfigurationClaimsOptions;\n header: EntityConfigurationHeaderOptions;\n signJwtCallback: SignCallback;\n};\n\n/**\n *\n * Create an entity configuration\n *\n * The signing callback will be called with the `header.kid` value in the `claims.jwks.keys` and a signed JWT will be returned\n *\n */\nexport const createItWalletEntityConfiguration = async ({\n header,\n signJwtCallback,\n claims,\n}: CreateEntityConfigurationOptions) => {\n const validatedHeader = parseWithErrorHandling(\n entityConfigurationHeaderSchema,\n header,\n \"invalid header claims provided\",\n );\n const validatedClaims = parseWithErrorHandling(\n itWalletEntityConfigurationClaimsSchema,\n claims,\n \"invalid payload claims provided\",\n );\n\n const toBeSigned = createJwtSignableInput(header, claims);\n\n const jwk = getUsedJsonWebKey(validatedHeader, validatedClaims);\n\n const signature = await signJwtCallback({ toBeSigned, jwk });\n\n return createJsonWebToken(header, claims, signature);\n};\n","import { ValidationError } from \"@openid4vc/utils\";\nimport type { z } from \"zod\";\n\nexport const parseWithErrorHandling = <Schema extends z.ZodSchema>(\n schema: Schema,\n data: unknown,\n customErrorMessage?: string,\n): z.infer<Schema> => {\n try {\n return schema.parse(data);\n } catch (e) {\n const error = e as z.ZodError;\n const errorMessage =\n customErrorMessage ??\n `Error validating schema with data ${JSON.stringify(data)}`;\n\n throw new ValidationError(`${errorMessage}: ${formattedErrors(error)}`);\n }\n};\nconst formattedErrors = (error: z.ZodError) =>\n error.issues.map((issue) => {\n // Joins nested paths with a dot, e.g., ['user', 'name'] -> 'user.name'\n const path = issue.path.join(\".\");\n const message = issue.message;\n\n // Example output: \"kid: Required\"\n return `${path}: ${message}`;\n });\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAAA,UAAS;;;ACTlB,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;;;ACAlB,SAAS,SAAS;AAGX,IAAM,MAAM,EAAE,OAAO;AAAA;AAAA,EAE1B,KAAK,EAAE,OAAO,EAAE,SAAS;AAAA,EACzB,KAAK,EAAE,OAAO,EAAE,SAAS;AAAA,EACzB,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA,EACvB,IAAI,EAAE,OAAO,EAAE,SAAS;AAAA,EACxB,IAAI,EAAE,OAAO,EAAE,SAAS;AAAA,EACxB,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEvB,KAAK,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC1B,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEvB,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA,EAEtC,KAAK,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA;AAAA;AAAA,EAIzB,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC;AAAA,EAChD,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA,EACvB,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA,EACvB,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA,EACvB,IAAI,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAExB,KAAK,EAAE,OAAO,EAAE,SAAS;AAAA,EACzB,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA,EACvB,GAAG,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEvB,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA;AAAA,EAElC,KAAK,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEzB,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEhC,KAAK,EAAE,OAAO,EAAE,SAAS;AAC3B,CAAC;AAGM,IAAM,OAAO,EAAE,OAAO;AAAA,EAC3B,MAAM,EAAE,MAAM,GAAG;AACnB,CAAC;;;ADnCM,IAAM,iCAAiCC,GAC3C,OAAO;AAAA;AAAA,EAEN,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EAC3C,UAAUA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACpC,MAAM,KAAK,SAAS;AACtB,CAAC,EACA,YAAY;AAMR,IAAM,mCAAmC;;;AErBhD,SAAS,KAAAC,UAAS;AASlB,IAAM,4BAA4BC,GAAE,OAAO;AAAA,EACzC,MAAMA,GAAE,OAAO;AAAA,EACf,QAAQA,GAAE,OAAO;AACnB,CAAC;AAGD,IAAM,iBAAiBA,GAAE,OAAO;AAAA,EAC9B,MAAMA,GAAE,MAAMA,GAAE,MAAM,CAACA,GAAE,OAAO,GAAGA,GAAE,OAAO,GAAGA,GAAE,KAAK,CAAC,CAAC,CAAC;AAAA,EACzD,SAASA,GAAE,MAAM,yBAAyB;AAC5C,CAAC;AAID,IAAM,8BAA8BA,GAAE;AAAA,EACpCA,GAAE,mBAAmB,UAAU;AAAA,IAC7BA,GAAE,OAAO,EAAE,QAAQA,GAAE,QAAQ,WAAW,GAAG,KAAKA,GAAE,OAAO,EAAE,CAAC;AAAA,IAC5DA,GAAE,OAAO,EAAE,QAAQA,GAAE,QAAQ,UAAU,GAAG,SAASA,GAAE,OAAO,EAAE,CAAC;AAAA,EACjE,CAAC;AAAA,EACDA,GAAE,OAAO;AAAA,IACP,OAAOA,GAAE,OAAO;AAAA,IAChB,SAASA,GAAE,MAAM,yBAAyB;AAAA,IAC1C,QAAQA,GAAE,MAAM,cAAc;AAAA,IAC9B,yCAAyCA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,IAC3D,yCAAyCA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,IAC3D,uBAAuBA,GAAE,OAAO;AAAA,MAC9B,KAAKA,GAAE,OAAO;AAAA,QACZ,oCAAoCA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,MACxD,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH;AAEO,IAAM,mCAAmCA,GAC7C,OAAO;AAAA,EACN,mBAAmBA,GAAE,OAAO,EAAE,IAAI;AAAA,EAClC,qBAAqBA,GAAE,OAAO,EAAE,IAAI;AAAA,EACpC,gBAAgBA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC/B,qBAAqBA,GAAE,OAAO,EAAE,IAAI;AAAA,EACpC,8BAA8BA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC7C,2BAA2BA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC1C,6BAA6BA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC5C,uBAAuBA,GAAE,OAAO,EAAE,IAAI;AAAA,EACtC,uBAAuBA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC1D,SAASA,GAAE,MAAM,yBAAyB;AAAA,EAC1C,qCAAqCA,GAAE,OAAO,2BAA2B;AAAA,EACzE,MAAM;AAAA,EACN,4BAA4BA,GAAE;AAAA,IAC5BA,GAAE,MAAM;AAAA,MACNA,GAAE,QAAQ,QAAQ;AAAA,MAClBA,GAAE,QAAQ,WAAW;AAAA,MACrBA,GAAE,QAAQ,aAAa;AAAA,IACzB,CAAC;AAAA,EACH;AAAA,EACA,oBAAoBA,GACjB,MAAMA,GAAE,OAAO,CAAC,EAChB,OAAO,CAAC,QAAQ,IAAI,SAAS,OAAO,GAAG;AAAA,IACtC,SAAS;AAAA,EACX,CAAC;AAAA,EACH,+BAA+BA,GAAE,OAAO;AAAA,EACxC,2BAA2BA,GAAE,OAAO;AAAA,IAClC,YAAYA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC7B,CAAC;AACH,CAAC,EACA,YAAY;AAMR,IAAM,qCAAqC;;;AC9ElD,SAAS,gCAAgC;AACzC,SAAS,KAAAC,UAAS;AAMX,IAAM,mCAAmC,yBAAyB,OACtE,OAAO;AAAA,EACN,SAASA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AACrC,CAAC,EACA,YAAY;AAMR,IAAM,qCACX,yBAAyB;;;AClB3B,SAAS,KAAAC,UAAS;AAQX,IAAM,qCAAqCC,GAC/C,OAAO;AAAA,EACN,WAAWA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC1B,aAAaA,GAAE,OAAO;AAAA,EACtB,kBAAkBA,GAAE,QAAQ,KAAK;AAAA,EACjC,cAAcA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACtC,eAAeA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACvC,mCAAmCA,GAAE,OAAO,EAAE,OAAO,CAAC,MAAM,MAAM,QAAQ;AAAA,IACxE,SAAS;AAAA,EACX,CAAC;AAAA,EACD,sCAAsCA,GAAE,OAAO;AAAA,EAC/C,sCAAsCA,GAAE,OAAO;AAAA,EAC/C,YAAYA,GAAE;AAAA,IACZA,GAAE,OAAO;AAAA,IACTA,GAAE,OAAO;AAAA,MACP,qBAAqBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MAClD,KAAKA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACpC,CAAC;AAAA,EACH;AAAA,EACA,MAAM;AAAA,EACN,kBAAkBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAC9C,CAAC,EACA,YAAY;AAMR,IAAM,uCACX;;;ACrCF,SAAS,KAAAC,UAAS;AAQX,IAAM,sCAAsCC,GAChD,OAAO;AAAA,EACN,QAAQA,GAAE,OAAO,EAAE,IAAI;AAAA,EACvB,uCAAuCA,GAAE,OAAO,EAAE,IAAI;AAAA,EACtD,wBAAwBA,GAAE,OAAO,EAAE,IAAI;AAAA,EACvC,gBAAgBA,GAAE,OAAO,EAAE,IAAI;AAAA,EAC/B,qCAAqCA,GAAE;AAAA,IACrCA,GAAE,MAAM,CAACA,GAAE,QAAQ,WAAW,GAAGA,GAAE,QAAQ,UAAU,CAAC,CAAC;AAAA,EACzD;AAAA,EACA,kCAAkCA,GAC/B,MAAMA,GAAE,OAAO,CAAC,EAChB,OAAO,CAAC,QAAQ,IAAI,SAAS,MAAM,GAAG;AAAA,IACrC,SACE;AAAA,EACJ,CAAC;AAAA,EACH,sBAAsBA,GAAE;AAAA,IACtBA,GAAE,MAAM;AAAA,MACNA,GAAE,QAAQ,sDAAsD;AAAA,MAChEA,GAAE;AAAA,QACA;AAAA,MACF;AAAA,MACAA,GAAE,QAAQ,uDAAuD;AAAA,IACnE,CAAC;AAAA,EACH;AAAA,EACA,kBAAkBA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EACpC,0BAA0BA,GAAE;AAAA,IAC1BA,GAAE,MAAM,CAACA,GAAE,QAAQ,OAAO,GAAGA,GAAE,QAAQ,eAAe,CAAC,CAAC;AAAA,EAC1D;AAAA,EACA,0BAA0BA,GACvB,MAAMA,GAAE,OAAO,CAAC,EAChB,OAAO,CAAC,QAAQ,IAAI,SAAS,MAAM,GAAG;AAAA,IACrC,SAAS;AAAA,EACX,CAAC;AAAA,EACH,4CAA4CA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EAC9D,uBAAuBA,GACpB,MAAMA,GAAE,OAAO,CAAC,EAChB,OAAO,CAAC,QAAQ,IAAI,SAAS,oBAAoB,GAAG;AAAA,IACnD,SACE;AAAA,EACJ,CAAC;AAAA,EACH,uCAAuCA,GACpC,MAAMA,GAAE,OAAO,CAAC,EAChB,OAAO,CAAC,QAAQ,IAAI,SAAS,wBAAwB,GAAG;AAAA,IACvD,SACE;AAAA,EACJ,CAAC;AAAA,EACH,kDAAkDA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EACpE,6CAA6CA,GAAE,MAAMA,GAAE,OAAO,CAAC;AAAA,EAC/D,MAAM;AACR,CAAC,EACA,YAAY;AAMR,IAAM,wCACX;;;ANnDK,IAAM,yBAAyBC,GAAE,OAAO;AAAA,EAC7C,CAAC,kCAAkC,GACjC,iCAAiC,SAAS;AAAA,EAC5C,CAAC,oCAAoC,GACnC,mCAAmC,SAAS;AAAA,EAC9C,CAAC,kCAAkC,GACjC,iCAAiC,SAAS;AAAA,EAC5C,CAAC,gCAAgC,GAAG,+BAA+B,SAAS;AAAA,EAC5E,CAAC,qCAAqC,GACpC,oCAAoC,SAAS;AACjD,CAAC;;;ADZM,IAAM,sCAAsCC,GAChD,OAAO;AAAA,EACN,KAAKA,GAAE,OAAO;AAAA,EACd,KAAKA,GAAE,OAAO;AAAA,EACd,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,iBAAiBA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACpD,UAAU,uBAAuB,SAAS;AAAA,EAC1C,iBAAiBA,GACd,OAAOA,GAAE,OAAO,oBAAoB,EAAE,SAAS,CAAC,EAChD,SAAS;AAAA,EACZ,aAAa,iBAAiB,SAAS;AAAA,EACvC,MAAMA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnC,sBAAsBA,GAAE,MAAMA,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnD,aAAaA,GAAE,MAAM,eAAe,EAAE,SAAS;AAAA,EAC/C,oBAAoB,sBAAsB,SAAS;AAAA,EACnD,mBAAmB,qBAAqB,SAAS;AAAA,EACjD,iBAAiBA,GAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAC7C,CAAC,EACA,YAAY,EACZ;AAAA,EACC,CAAC,SAAS;AACR,UAAM,SAAS,KAAK,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,GAAG;AAClD,UAAM,eAAe,IAAI,IAAI,MAAM;AACnC,WAAO,aAAa,SAAS,OAAO;AAAA,EACtC;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,MAAM,CAAC,QAAQ,MAAM;AAAA,EACvB;AACF;;;AQxCK,IAAM,0CACX,oCAAoC,OAAO,CAAC,SAAS,KAAK,QAAQ,KAAK,KAAK;AAAA,EAC1E,SAAS;AAAA,EACT,MAAM,CAAC,OAAO,KAAK;AACrB,CAAC;;;ACPH;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OAEK;;;ACPP,SAAS,uBAAuB;AAGzB,IAAM,yBAAyB,CACpC,QACA,MACA,uBACoB;AACpB,MAAI;AACF,WAAO,OAAO,MAAM,IAAI;AAAA,EAC1B,SAAS,GAAG;AACV,UAAM,QAAQ;AACd,UAAM,eACJ,sBACA,qCAAqC,KAAK,UAAU,IAAI,CAAC;AAE3D,UAAM,IAAI,gBAAgB,GAAG,YAAY,KAAK,gBAAgB,KAAK,CAAC,EAAE;AAAA,EACxE;AACF;AACA,IAAM,kBAAkB,CAAC,UACvB,MAAM,OAAO,IAAI,CAAC,UAAU;AAE1B,QAAM,OAAO,MAAM,KAAK,KAAK,GAAG;AAChC,QAAM,UAAU,MAAM;AAGtB,SAAO,GAAG,IAAI,KAAK,OAAO;AAC5B,CAAC;;;ADAI,IAAM,oCAAoC,OAAO;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AACF,MAAwC;AACtC,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,aAAa,uBAAuB,QAAQ,MAAM;AAExD,QAAM,MAAM,kBAAkB,iBAAiB,eAAe;AAE9D,QAAM,YAAY,MAAM,gBAAgB,EAAE,YAAY,IAAI,CAAC;AAE3D,SAAO,mBAAmB,QAAQ,QAAQ,SAAS;AACrD;","names":["z","z","z","z","z","z","z","z","z","z","z","z","z"]}
|
|
1
|
+
{"version":3,"sources":["../src/entityConfiguration/createItWalletEntityConfiguration.ts","../src/utils/validate.ts","../src/entityStatement/itWalletEntityStatementClaims.ts","../src/metadata/itWalletMetadata.ts","../src/metadata/entity/ItWalletProvider.ts","../src/jwk/jwk.ts","../src/metadata/entity/itWalletAuthorizationServer.ts","../src/metadata/entity/itWalletCredentialIssuer.ts","../src/metadata/entity/itWalletCredentialVerifier.ts","../src/metadata/entity/itWalletFederationEntity.ts","../src/entityConfiguration/itWalletEntityConfigurationClaims.ts"],"sourcesContent":["import {\n EntityConfigurationHeaderOptions,\n SignCallback,\n createJsonWebToken,\n createJwtSignableInput,\n entityConfigurationHeaderSchema,\n getUsedJsonWebKey,\n} from \"@openid-federation/core\";\n\nimport { parseWithErrorHandling } from \"../utils/validate\";\nimport {\n ItWalletEntityConfigurationClaimsOptions,\n itWalletEntityConfigurationClaimsSchema,\n} from \"./itWalletEntityConfigurationClaims\";\n\nexport interface CreateEntityConfigurationOptions {\n claims: ItWalletEntityConfigurationClaimsOptions;\n header: EntityConfigurationHeaderOptions;\n signJwtCallback: SignCallback;\n}\n\n/**\n *\n * Create an entity configuration\n *\n * The signing callback will be called with the `header.kid` value in the `claims.jwks.keys` and a signed JWT will be returned\n *\n */\nexport const createItWalletEntityConfiguration = async ({\n claims,\n header,\n signJwtCallback,\n}: CreateEntityConfigurationOptions) => {\n const validatedHeader = parseWithErrorHandling(\n entityConfigurationHeaderSchema,\n header,\n \"invalid header claims provided\",\n );\n const validatedClaims = parseWithErrorHandling(\n itWalletEntityConfigurationClaimsSchema,\n claims,\n \"invalid payload claims provided\",\n );\n\n const toBeSigned = createJwtSignableInput(header, claims);\n\n const jwk = getUsedJsonWebKey(validatedHeader, validatedClaims);\n\n const signature = await signJwtCallback({ jwk, toBeSigned });\n\n return createJsonWebToken(header, claims, signature);\n};\n","import type { z } from \"zod\";\n\nimport { ValidationError } from \"@openid4vc/utils\";\n\nexport const parseWithErrorHandling = <Schema extends z.ZodSchema>(\n schema: Schema,\n data: unknown,\n customErrorMessage?: string,\n): z.infer<Schema> => {\n try {\n return schema.parse(data);\n } catch (e) {\n const error = e as z.ZodError;\n const errorMessage =\n customErrorMessage ??\n `Error validating schema with data ${JSON.stringify(data)}`;\n\n throw new ValidationError(`${errorMessage}: ${formattedErrors(error)}`);\n }\n};\nconst formattedErrors = (error: z.ZodError) =>\n error.issues.map((issue) => {\n // Joins nested paths with a dot, e.g., ['user', 'name'] -> 'user.name'\n const path = issue.path.join(\".\");\n const message = issue.message;\n\n // Example output: \"kid: Required\"\n return `${path}: ${message}`;\n });\n","import {\n constraintSchema,\n dateSchema,\n jsonWebKeySetSchema,\n metadataPolicySchema,\n trustMarkIssuerSchema,\n trustMarkOwnerSchema,\n trustMarkSchema,\n} from \"@openid-federation/core\";\nimport { z } from \"zod\";\n\nimport { itWalletMetadataSchema } from \"../metadata/itWalletMetadata\";\n\nexport const itWalletEntityStatementClaimsSchema = z\n .object({\n authority_hints: z.array(z.string().url()).optional(),\n constraints: constraintSchema.optional(),\n crit: z.array(z.string()).optional(),\n exp: dateSchema,\n iat: dateSchema,\n iss: z.string(),\n jwks: jsonWebKeySetSchema,\n metadata: itWalletMetadataSchema.optional(),\n metadata_policy: z\n .record(z.record(metadataPolicySchema).optional())\n .optional(),\n metadata_policy_crit: z.array(z.string()).optional(),\n source_endpoint: z.string().url().optional(),\n sub: z.string(),\n trust_mark_issuers: trustMarkIssuerSchema.optional(),\n trust_mark_owners: trustMarkOwnerSchema.optional(),\n trust_marks: z.array(trustMarkSchema).optional(),\n })\n .passthrough()\n .refine(\n (data) => {\n const keyIds = data.jwks.keys.map((key) => key.kid);\n const uniqueKeyIds = new Set(keyIds);\n return uniqueKeyIds.size === keyIds.length;\n },\n {\n message: \"keys include duplicate key ids\",\n path: [\"jwks\", \"keys\"],\n },\n );\n\nexport type ItWalletEntityStatementClaimsOptions = z.input<\n typeof itWalletEntityStatementClaimsSchema\n>;\n\nexport type ItWalletEntityStatementClaims = z.output<\n typeof itWalletEntityStatementClaimsSchema\n>;\n","import { z } from \"zod\";\n\nimport {\n itWalletAuthorizationServerIdentifier,\n itWalletAuthorizationServerMetadata,\n itWalletCredentialIssuerIdentifier,\n itWalletCredentialIssuerMetadata,\n itWalletCredentialVerifierIdentifier,\n itWalletCredentialVerifierMetadata,\n itWalletFederationEntityIdentifier,\n itWalletFederationEntityMetadata,\n itWalletProviderEntityIdentifier,\n itWalletProviderEntityMetadata,\n} from \"./entity\";\n\nexport const itWalletMetadataSchema = z.object({\n [itWalletAuthorizationServerIdentifier]:\n itWalletAuthorizationServerMetadata.optional(),\n [itWalletCredentialIssuerIdentifier]:\n itWalletCredentialIssuerMetadata.optional(),\n [itWalletCredentialVerifierIdentifier]:\n itWalletCredentialVerifierMetadata.optional(),\n [itWalletFederationEntityIdentifier]:\n itWalletFederationEntityMetadata.optional(),\n [itWalletProviderEntityIdentifier]: itWalletProviderEntityMetadata.optional(),\n});\n\nexport type Metadata = z.input<typeof itWalletMetadataSchema>;\n","import { z } from \"zod\";\n\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/wallet-provider-metadata.html}\n *\n */\nexport const itWalletProviderEntityMetadata = z\n .object({\n jwks: JWKS.optional(),\n jwks_uri: z.string().url().optional(),\n // -- 5.2.1 Extensions for JWK Sets in Entity Metadata\n signed_jwks_uri: z.string().url().optional(),\n })\n .passthrough();\n\nexport type ItWalletProviderEntityMetadata = z.input<\n typeof itWalletProviderEntityMetadata\n>;\n\nexport const itWalletProviderEntityIdentifier = \"wallet_provider\";\n","import { z } from \"zod\";\n\nexport type JWK = z.infer<typeof JWK>;\nexport const JWK = z.object({\n /** JWK \"alg\" (Algorithm) Parameter. */\n alg: z.string().optional(),\n crv: z.string().optional(),\n d: z.string().optional(),\n dp: z.string().optional(),\n dq: z.string().optional(),\n e: z.string().optional(),\n /** JWK \"ext\" (Extractable) Parameter. */\n ext: z.boolean().optional(),\n k: z.string().optional(),\n /** JWK \"key_ops\" (Key Operations) Parameter. */\n key_ops: z.array(z.string()).optional(),\n /** JWK \"kid\" (Key ID) Parameter. */\n kid: z.string().optional(),\n /** JWK \"kty\" (Key Type) Parameter.\n * This attribute is required to discriminate the\n * type of EC/RSA algorithm */\n kty: z.union([z.literal(\"RSA\"), z.literal(\"EC\")]),\n n: z.string().optional(),\n p: z.string().optional(),\n q: z.string().optional(),\n qi: z.string().optional(),\n /** JWK \"use\" (Public Key Use) Parameter. */\n use: z.string().optional(),\n x: z.string().optional(),\n /** JWK \"x5c\" (X.509 Certificate Chain) Parameter. */\n x5c: z.array(z.string()).optional(),\n /** JWK \"x5t\" (X.509 Certificate SHA-1 Thumbprint) Parameter. */\n x5t: z.string().optional(),\n /** \"x5t#S256\" (X.509 Certificate SHA-256 Thumbprint) Parameter. */\n \"x5t#S256\": z.string().optional(),\n /** JWK \"x5u\" (X.509 URL) Parameter. */\n x5u: z.string().optional(),\n y: z.string().optional(),\n});\n\nexport type JWKS = z.infer<typeof JWKS>;\nexport const JWKS = z.object({\n keys: z.array(JWK),\n});\n","import { z } from \"zod\";\n\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/credential-issuer-solution.html#metadata-for-oauth-authorization-server}\n *\n */\nexport const itWalletAuthorizationServerMetadata = z\n .object({\n acr_values_supported: z.array(\n z.union([\n z.literal(\"https://trust-registry.eid-wallet.example.it/loa/low\"),\n z.literal(\n \"https://trust-registry.eid-wallet.example.it/loa/substantial\",\n ),\n z.literal(\"https://trust-registry.eid-wallet.example.it/loa/high\"),\n ]),\n ),\n authorization_endpoint: z.string().url(),\n authorization_signing_alg_values_supported: z.array(z.string()),\n client_registration_types_supported: z.array(\n z.union([z.literal(\"automatic\"), z.literal(\"explicit\")]),\n ),\n code_challenge_methods_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"S256\"), {\n message:\n \"The code_challenge_methods_supported array MUST include 'S256'.\",\n }),\n grant_types_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"authorization_code\"), {\n message:\n \"The grant_types_supported array MUST include 'authorization_code'.\",\n }),\n issuer: z.string().url(),\n jwks: JWKS,\n pushed_authorization_request_endpoint: z.string().url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n response_modes_supported: z.array(\n z.union([z.literal(\"query\"), z.literal(\"form_post.jwt\")]),\n ),\n response_types_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"code\"), {\n message: \"The response_types_supported array MUST include 'code'.\",\n }),\n scopes_supported: z.array(z.string()),\n token_endpoint: z.string().url(),\n token_endpoint_auth_methods_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"attest_jwt_client_auth\"), {\n message:\n \"The token_endpoint_auth_methods_supported array MUST include 'attest_jwt_client_auth'.\",\n }),\n token_endpoint_auth_signing_alg_values_supported: z.array(z.string()),\n })\n .passthrough();\n\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/credential-issuer-solution.html#metadata-for-openid-credential-issuer}\n *\n */\ntype CredentialDisplayMetadata = z.infer<typeof CredentialDisplayMetadata>;\nconst CredentialDisplayMetadata = z.object({\n locale: z.string(),\n name: z.string(),\n});\n\ntype ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nconst ClaimsMetadata = z.object({\n display: z.array(CredentialDisplayMetadata),\n path: z.array(z.union([z.string(), z.number(), z.null()])),\n});\n\n// Metadata for a credential which is supported by an Issuer\ntype SupportedCredentialMetadata = z.infer<typeof SupportedCredentialMetadata>;\nconst SupportedCredentialMetadata = z.intersection(\n z.discriminatedUnion(\"format\", [\n z.object({ format: z.literal(\"dc+sd-jwt\"), vct: z.string() }),\n z.object({ doctype: z.string(), format: z.literal(\"mso_mdoc\") }),\n ]),\n z.object({\n claims: z.array(ClaimsMetadata),\n credential_signing_alg_values_supported: z.array(z.string()),\n cryptographic_binding_methods_supported: z.array(z.string()),\n display: z.array(CredentialDisplayMetadata),\n proof_types_supported: z.object({\n jwt: z.object({\n proof_signing_alg_values_supported: z.array(z.string()),\n }),\n }),\n scope: z.string(),\n }),\n);\n\nexport const itWalletCredentialIssuerMetadata = z\n .object({\n authorization_servers: z.array(z.string().url()).optional(),\n batch_credential_issuance: z.object({\n batch_size: z.number().int(),\n }),\n credential_configurations_supported: z.record(SupportedCredentialMetadata),\n credential_endpoint: z.string().url(),\n credential_hash_alg_supported: z.string(),\n credential_issuer: z.string().url(),\n deferred_credential_endpoint: z.string().url(),\n display: z.array(CredentialDisplayMetadata),\n evidence_supported: z\n .array(z.string())\n .refine((arr) => arr.includes(\"vouch\"), {\n message: \"The evidence_supported array MUST include 'vouch'.\",\n }),\n jwks: JWKS,\n nonce_endpoint: z.string().url(),\n notification_endpoint: z.string().url(),\n revocation_endpoint: z.string().url(),\n status_assertion_endpoint: z.string().url(),\n status_attestation_endpoint: z.string().url(),\n trust_frameworks_supported: z.array(\n z.union([\n z.literal(\"it_cie\"),\n z.literal(\"it_wallet\"),\n z.literal(\"eudi_wallet\"),\n ]),\n ),\n })\n .passthrough();\n\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { JWKS } from \"../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/relying-party-metadata.html}\n *\n */\nexport const itWalletCredentialVerifierMetadata = z\n .object({\n application_type: z.literal(\"web\"),\n authorization_encrypted_response_alg: z.string(),\n authorization_encrypted_response_enc: z.string(),\n authorization_signed_response_alg: z.string().refine((v) => v !== \"none\", {\n message: \"The authorization_signed_response_alg MUST not be 'none'.\",\n }),\n client_id: z.string().url(),\n client_name: z.string(),\n erasure_endpoint: z.string().url().optional(),\n jwks: JWKS,\n request_uris: z.array(z.string().url()),\n response_uris: z.array(z.string().url()),\n vp_formats: z.record(\n z.string(),\n z.object({\n alg: z.array(z.string()).optional(),\n \"sd-jwt_alg_values\": z.array(z.string()).optional(),\n }),\n ),\n })\n .passthrough();\n\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\nexport const itWalletCredentialVerifierIdentifier =\n \"openid_credential_verifier\";\n","import { federationEntityMetadata } from \"@openid-federation/core\";\nimport { z } from \"zod\";\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.1.0/en/trust.html#metadata-of-federation-entity-leaves}\n *\n */\nexport const itWalletFederationEntityMetadata = federationEntityMetadata.schema\n .extend({\n tos_uri: z.string().url().optional(),\n })\n .passthrough();\n\nexport type ItWalletFederationEntityMetadata = z.input<\n typeof itWalletFederationEntityMetadata\n>;\n\nexport const itWalletFederationEntityIdentifier =\n federationEntityMetadata.identifier;\n","import type { z } from \"zod\";\n\nimport { itWalletEntityStatementClaimsSchema } from \"../entityStatement/itWalletEntityStatementClaims\";\n\nexport const itWalletEntityConfigurationClaimsSchema =\n itWalletEntityStatementClaimsSchema.refine((data) => data.iss === data.sub, {\n message: \"iss and sub must be equal\",\n path: [\"iss\", \"sub\"],\n });\n\nexport type ItWalletEntityConfigurationClaimsOptions = z.input<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n\nexport type ItWalletEntityConfigurationClaims = z.output<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z","z","z","z","z","z"]}
|
package/package.json
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pagopa/io-wallet-oid-federation",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist"
|
|
6
6
|
],
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"module": "./dist/index.mjs",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
8
11
|
"exports": {
|
|
9
12
|
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
10
14
|
"import": "./dist/index.mjs",
|
|
11
|
-
"require": "./dist/index.js"
|
|
12
|
-
"types": "./dist/index.d.ts"
|
|
15
|
+
"require": "./dist/index.js"
|
|
13
16
|
},
|
|
14
17
|
"./package.json": "./package.json"
|
|
15
18
|
},
|
|
@@ -19,9 +22,12 @@
|
|
|
19
22
|
"url": "https://github.com/pagopa/io-wallet-sdk",
|
|
20
23
|
"directory": "packages/oid-federation"
|
|
21
24
|
},
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
22
28
|
"dependencies": {
|
|
23
29
|
"@openid-federation/core": "^0.2.0",
|
|
24
|
-
"@openid4vc/utils": "
|
|
30
|
+
"@openid4vc/utils": "0.3.0-alpha-20250714110838",
|
|
25
31
|
"zod": "^3.24.2"
|
|
26
32
|
},
|
|
27
33
|
"devDependencies": {
|
|
@@ -29,8 +35,5 @@
|
|
|
29
35
|
},
|
|
30
36
|
"scripts": {
|
|
31
37
|
"build": "tsup src/index.ts --format cjs,esm --dts --clean --sourcemap"
|
|
32
|
-
}
|
|
33
|
-
"main": "./dist/index.js",
|
|
34
|
-
"module": "./dist/index.mjs",
|
|
35
|
-
"types": "./dist/index.d.ts"
|
|
38
|
+
}
|
|
36
39
|
}
|