@pagopa/io-wallet-oid-federation 1.2.0 → 1.2.1
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.js +1 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -135,12 +135,7 @@ var getUsedJsonWebKey = (header, claims) => {
|
|
|
135
135
|
`key with id: '${header.kid}' could not be found in the claims`
|
|
136
136
|
);
|
|
137
137
|
}
|
|
138
|
-
|
|
139
|
-
const jwk = jsonWebKeySchema.parse({
|
|
140
|
-
...jwkWithoutX5c,
|
|
141
|
-
x5c: [...x5c ?? []]
|
|
142
|
-
});
|
|
143
|
-
return jwk;
|
|
138
|
+
return key;
|
|
144
139
|
};
|
|
145
140
|
|
|
146
141
|
// src/metadata/common.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/entityConfiguration/createItWalletEntityConfiguration.ts","../src/jsonWeb/getUsedJsonWebKey.ts","../src/jwk/jwk.ts","../src/metadata/common.ts","../src/metadata/operator/utils/create-policy-operator-schema.ts","../src/metadata/operator/utils/swap-validators.ts","../src/metadata/policy.ts","../src/metadata/operator/metadata-merge-strategy.ts","../src/metadata/operator/metadata-order-of-application.ts","../src/metadata/operator/standard/add.ts","../src/metadata/operator/standard/default.ts","../src/metadata/operator/standard/essential.ts","../src/metadata/operator/standard/oneOf.ts","../src/metadata/operator/standard/subsetOf.ts","../src/metadata/operator/standard/supersetOf.ts","../src/metadata/operator/standard/value.ts","../src/utils/create-entity.ts","../src/utils/encoding.ts","../src/entityStatement/itWalletEntityStatementClaims.ts","../src/metadata/itWalletMetadata.ts","../src/metadata/entity/itWalletFederationEntity.ts","../src/metadata/entity/v1.0/ItWalletProvider.ts","../src/metadata/entity/v1.0/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.0/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.0/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.3/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.3/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletSolution.ts","../src/entityStatement/z-constraint.ts","../src/entityStatement/z-trustmark.ts","../src/entityConfiguration/itWalletEntityConfigurationClaims.ts","../src/entityConfiguration/z-entity-configuration-header.ts"],"sourcesContent":["export * from \"./entityConfiguration\";\nexport * from \"./entityStatement\";\nexport * from \"./jwk\";\nexport * from \"./metadata\";\nexport type * from \"./utils\";\n","import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport { Buffer } from \"buffer\";\n\nimport { getUsedJsonWebKey } from \"../jsonWeb/getUsedJsonWebKey\";\nimport { SignCallback, base64ToBase64URL } from \"../utils\";\nimport {\n ItWalletEntityConfigurationClaimsOptions,\n itWalletEntityConfigurationClaimsSchema,\n} from \"./itWalletEntityConfigurationClaims\";\nimport {\n EntityConfigurationHeaderOptions,\n entityConfigurationHeaderSchema,\n} from \"./z-entity-configuration-header\";\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\nfunction createJsonWebToken(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n signature: Uint8Array,\n) {\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const encodedSignature = base64ToBase64URL(\n Buffer.from(signature).toString(\"base64\"),\n );\n\n return `${encodedHeader}.${encodedPayload}.${encodedSignature}`;\n}\n\nfunction createJwtSignableInput(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n) {\n if (Object.keys(header).length === 0) {\n throw new Error(\"Can not create JWT with an empty header\");\n }\n\n if (Object.keys(payload).length === 0) {\n throw new Error(\"Can not create JWT with an empty payload\");\n }\n\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const toBeSignedString = `${encodedHeader}.${encodedPayload}`;\n\n return new Uint8Array(Buffer.from(toBeSignedString));\n}\n","import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport z from \"zod\";\n\nimport { jsonWebKeySchema, jsonWebKeySetSchema } from \"../jwk\";\n\nexport const getUsedJsonWebKey = (\n header: Record<string, unknown>,\n claims: Record<string, unknown>,\n) => {\n const validatedHeader = parseWithErrorHandling(\n z.looseObject({\n kid: z.string(),\n }),\n header,\n \"invalid header claims. Should contain a key id\",\n );\n\n const validatedClaims = parseWithErrorHandling(\n z.looseObject({\n jwks: jsonWebKeySetSchema,\n }),\n claims,\n \"Invalid payload claims. Should contain a json web key set\",\n );\n\n // Get the key from the `claims.jwks` by the `header.kid`\n const key = validatedClaims.jwks?.keys.find(\n (key) => key.kid === validatedHeader.kid,\n );\n\n if (!key) {\n throw new Error(\n `key with id: '${header.kid}' could not be found in the claims`,\n );\n }\n\n // Fix a @openid-federation bug where x5c is expected to be an array\n const { x5c, ...jwkWithoutX5c } = key;\n const jwk = jsonWebKeySchema.parse({\n ...jwkWithoutX5c,\n x5c: [...(x5c ?? [])],\n });\n\n return jwk;\n};\n","import { zCertificateChain } from \"@pagopa/io-wallet-oauth2\";\nimport { z } from \"zod\";\n\nexport const jsonWebKeySchema = z.looseObject({\n alg: z.string().optional(),\n key_ops: z.array(z.string()).optional(),\n kid: z.string(),\n kty: z.string(),\n use: z.string().optional(),\n x5c: zCertificateChain.optional(),\n x5t: z.string().optional(),\n \"x5t#S256\": z.string().optional(),\n x5u: z.string().optional(),\n});\n\nexport type JsonWebKey = z.input<typeof jsonWebKeySchema>;\n\nexport const jsonWebKeySetSchema = z.object({\n keys: z.array(jsonWebKeySchema),\n});\n\nexport type jsonWebKeySet = z.infer<typeof jsonWebKeySetSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\nexport const commonMetadataSchema = z.object({\n contacts: z.array(z.string()).min(1).optional(),\n homepage_uri: z.url().optional(),\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n logo_uri: z.url().optional(),\n organization_name: z.string().optional(),\n policy_uri: z.url().optional(),\n signed_jwks_uri: z.url().optional(),\n});\n","import type { MetadataOperator } from \"../metadata-operator\";\n\nexport const createPolicyOperatorSchema = <TKey extends string>(\n operator: MetadataOperator<TKey>,\n) =>\n ({\n /**\n * The key of the operator which is used to identify the operator\n */\n key: operator.key,\n /**\n * The merge strategy of the operator\n */\n mergeStrategy: operator.mergeStrategy,\n /**\n * The operator itself\n */\n operator: operator,\n /**\n * The schema for the operator itself so for essential it is only a boolean\n */\n operatorSchema: operator.operatorJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n /**\n * The order of application of the operator\n */\n orderOfApplication: operator.orderOfApplication,\n /**\n * The schema for the parameter the operator can be applied to so when the policy is targeting federation_entity we can check if the policy can handle that property\n */\n parameterSchema: operator.parameterJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n }) as const;\n","import { z } from \"zod\";\n\nexport const swapValidators = <T extends z.ZodRawShape>(\n schema: z.ZodObject<T>,\n newValidator: z.ZodSchema,\n): z.ZodObject<Record<string, typeof newValidator>> =>\n z.object(\n Object.keys(schema.shape).reduce(\n (acc, key) => {\n acc[key as keyof typeof acc] = newValidator;\n return acc;\n },\n {} as { [k in keyof T]: z.ZodSchema },\n ),\n );\n","import { z } from \"zod\";\n\nimport {\n addOperator,\n defaultOperator,\n essentialOperator,\n oneOfOperator,\n subsetOfOperator,\n supersetOfOperator,\n valueOperator,\n} from \"./operator\";\n\nexport const allSupportedPolicies = {\n [addOperator.key]: addOperator,\n [defaultOperator.key]: defaultOperator,\n [essentialOperator.key]: essentialOperator,\n [oneOfOperator.key]: oneOfOperator,\n [subsetOfOperator.key]: subsetOfOperator,\n [supersetOfOperator.key]: supersetOfOperator,\n [valueOperator.key]: valueOperator,\n} as const;\n\nexport type SupportedPolicyKey = keyof typeof allSupportedPolicies;\n\nexport const isExistingPolicyKey = (key: string): key is SupportedPolicyKey =>\n Object.hasOwn(allSupportedPolicies, key);\n\nexport const metadataPolicySchema = z\n .object(\n Object.entries(allSupportedPolicies).reduce(\n (acc, [key, policy]) => ({ ...acc, [key]: policy.operatorSchema }),\n {} as {\n [key in keyof typeof allSupportedPolicies]: (typeof allSupportedPolicies)[key][\"operatorSchema\"];\n },\n ),\n )\n .and(z.record(z.string(), z.any()))\n .superRefine((data, ctx) => {\n const dataKeys = Object.keys(data);\n const supportedDataKeys = dataKeys.filter(isExistingPolicyKey);\n\n for (const dataKey of supportedDataKeys) {\n const { operator } = allSupportedPolicies[dataKey];\n\n if (\n supportedDataKeys.some(\n (key) =>\n key !== operator.key && !operator.canBeCombinedWith.includes(key),\n )\n ) {\n ctx.addIssue({\n code: \"custom\",\n message: `policy operator '${\n operator.key\n }' can only be combined with one of: [${operator.canBeCombinedWith.join(\n \", \",\n )}]. keys: [${Object.keys(data).join(\",\")}]`,\n });\n }\n }\n });\n\nexport type MetadataPolicyOperator = z.input<typeof metadataPolicySchema>;\n","export enum MetadataMergeStrategy {\n /**\n *\n * The result of merging the values of two these operators is the intersection of the operator values. If the intersection is empty, this MUST result in a policy error.\n *\n */\n Intersection = 2,\n /**\n *\n * Allowed only when the operator values are equal. If not, this MUST result in a policy error.\n *\n */\n OperatorValuesEqual = 0,\n /**\n *\n * If a Superior has specified essential=true, then a Subordinate MUST NOT change that. If a Superior has specified essential=false, then a Subordinate is allowed to change that to essential=true. If a Superior has not specified essential, then a Subordinate can set essential to true or false. If those conditions are not met, this MUST result in a policy error.\n *\n */\n SuperiorFollowsIfTrue = 3,\n /**\n *\n * The result of merging the values of two these operators is the union of the operator values.\n *\n */\n Union = 1,\n}\n","/* eslint-disable perfectionist/sort-enums */\n\nexport enum MetadataOrderOfApplication {\n First = 0,\n AfterValue = 1,\n AfterAdd = 2,\n AfterDefault = 3,\n AfterOneOf = 4,\n AfterSubsetOf = 5,\n Last = 6,\n}\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const addOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"add\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterValue,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const defaultOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"one_of\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"default\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterAdd,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const essentialOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\n \"add\",\n \"default\",\n \"one_of\",\n \"subset_of\",\n \"superset_of\",\n \"value\",\n ],\n key: \"essential\",\n mergeStrategy: MetadataMergeStrategy.SuperiorFollowsIfTrue,\n operatorJsonValues: [z.boolean()],\n orderOfApplication: MetadataOrderOfApplication.Last,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.union([z.string(), z.number()])),\n z.unknown(),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const oneOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"essential\"],\n key: \"one_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterDefault,\n parameterJsonValues: [\n z.string(),\n // TODO: See how we want to we handle the comparison of objects\n // z.record(z.string().or(z.number()), z.unknown()),\n z.number(),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const subsetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"superset_of\", \"essential\"],\n key: \"subset_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterOneOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const supersetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"subset_of\", \"essential\"],\n key: \"superset_of\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterSubsetOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const valueOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"essential\"],\n key: \"value\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string().or(z.number()), z.unknown()),\n z.array(z.unknown()),\n z.null(),\n ],\n orderOfApplication: MetadataOrderOfApplication.First,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { commonMetadataSchema } from \"../metadata/common\";\nimport { swapValidators } from \"../metadata/operator/utils\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\n\nexport const createEntity = <T extends string, S extends z.ZodRawShape>({\n additionalValidation = {} as S,\n identifier,\n passThroughUnknownProperties = false,\n}: {\n additionalValidation?: S;\n identifier: T;\n passThroughUnknownProperties?: boolean;\n}) => {\n const schema = commonMetadataSchema.extend(additionalValidation);\n return {\n identifier,\n policySchema: swapValidators(schema, metadataPolicySchema.optional()),\n schema: passThroughUnknownProperties ? schema.loose() : schema,\n };\n};\n","export function base64ToBase64URL(base64: string) {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk/jwk\";\nimport { itWalletMetadataSchema } from \"../metadata/itWalletMetadata\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\nimport { constraintSchema } from \"./z-constraint\";\nimport {\n trustMarkIssuerSchema,\n trustMarkOwnerSchema,\n trustMarkSchema,\n} from \"./z-trustmark\";\n\nconst baseSchema = z.object({\n authority_hints: z.array(z.url()).optional(),\n constraints: constraintSchema.optional(),\n crit: z.array(z.string()).optional(),\n exp: z\n .number()\n .describe(\"Expiration time as a UNIX timestamp in seconds since epoch\"),\n iat: z\n .number()\n .describe(\"Issued-at time as a UNIX timestamp in seconds since epoch\"),\n iss: z.string(),\n jwks: jsonWebKeySetSchema,\n metadata: itWalletMetadataSchema.optional(),\n metadata_policy: z\n .record(z.string(), z.record(z.string(), metadataPolicySchema).optional())\n .optional(),\n metadata_policy_crit: z.array(z.string()).optional(),\n source_endpoint: z.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\ntype ItWalletEntityStatementClaimsOptions = z.input<typeof baseSchema>;\n\ntype ItWalletEntityStatementClaims = z.output<typeof baseSchema>;\n\nconst entityStatementClaimsSchema = baseSchema.loose().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\n// The explicit type annotation here is necessary to avoid this node exceeds the maximum length the compiler will serialize.\nexport const itWalletEntityStatementClaimsSchema: z.ZodType<\n ItWalletEntityStatementClaims,\n ItWalletEntityStatementClaimsOptions\n> = entityStatementClaimsSchema;\n","import { z } from \"zod\";\n\nimport {\n itWalletAuthorizationServerIdentifier,\n itWalletAuthorizationServerIdentifierV1_3,\n itWalletAuthorizationServerMetadata,\n itWalletAuthorizationServerMetadataV1_3,\n itWalletCredentialIssuerIdentifier,\n itWalletCredentialIssuerIdentifierV1_3,\n itWalletCredentialIssuerMetadata,\n itWalletCredentialIssuerMetadataV1_3,\n itWalletCredentialVerifierIdentifier,\n itWalletCredentialVerifierIdentifierV1_3,\n itWalletCredentialVerifierMetadata,\n itWalletCredentialVerifierMetadataV1_3,\n itWalletFederationEntityIdentifier,\n itWalletFederationEntityMetadata,\n itWalletProviderEntityIdentifier,\n itWalletProviderEntityMetadata,\n itWalletSolutionEntityIdentifierV1_3,\n itWalletSolutionEntityMetadataV1_3,\n} from \"./entity\";\n\n// v1.0 combined metadata\nexport const itWalletMetadataV1_0 = z.strictObject({\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\n// v1.3 combined metadata (stubs re-export v1.0 schemas for some entities)\nexport const itWalletMetadataV1_3 = z.strictObject({\n [itWalletAuthorizationServerIdentifierV1_3]:\n itWalletAuthorizationServerMetadataV1_3.optional(),\n [itWalletCredentialIssuerIdentifierV1_3]:\n itWalletCredentialIssuerMetadataV1_3.optional(),\n [itWalletCredentialVerifierIdentifierV1_3]:\n itWalletCredentialVerifierMetadataV1_3.optional(),\n [itWalletFederationEntityIdentifier]:\n itWalletFederationEntityMetadata.optional(),\n [itWalletSolutionEntityIdentifierV1_3]:\n itWalletSolutionEntityMetadataV1_3.optional(),\n});\n\n// Union — used by entity statement / entity configuration claims\n// v1.3 is tried first so that v1.3-specific fields are preserved during parsing\nexport const itWalletMetadataSchema =\n itWalletMetadataV1_3.or(itWalletMetadataV1_0);\n\nexport type MetadataV1_0 = z.input<typeof itWalletMetadataV1_0>;\nexport type MetadataV1_3 = z.input<typeof itWalletMetadataV1_3>;\nexport type Metadata = MetadataV1_0 | MetadataV1_3;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../jwk\";\nimport { createEntity } from \"../../utils\";\n\nexport const federationEntityMetadata = createEntity({\n additionalValidation: {\n federation_fetch_endpoint: z.url().optional(),\n federation_historical_keys_endpoint: z.url().optional(),\n federation_list_endpoint: z.url().optional(),\n federation_resolve_endpoint: z.url().optional(),\n federation_trust_mark_endpoint: z.url().optional(),\n federation_trust_mark_list_endpoint: z.url().optional(),\n federation_trust_mark_status_endpoint: z.url().optional(),\n },\n identifier: \"federation_entity\",\n});\n\nexport type FederationEntityMetadata = z.input<\n (typeof federationEntityMetadata)[\"schema\"]\n>;\n\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 jwks: jsonWebKeySetSchema.optional(),\n tos_uri: z.url().optional(),\n })\n .loose();\n\nexport type ItWalletFederationEntityMetadata = z.input<\n typeof itWalletFederationEntityMetadata\n>;\n\nexport const itWalletFederationEntityIdentifier =\n federationEntityMetadata.identifier;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // -- 5.2.1 Extensions for JWK Sets in Entity Metadata\n signed_jwks_uri: z.url().optional(),\n});\n\nexport type ItWalletProviderEntityMetadata = z.input<\n typeof itWalletProviderEntityMetadata\n>;\n\nexport const itWalletProviderEntityIdentifier = \"wallet_provider\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.boolean().optional(),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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 */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\nexport const CredentialDisplayMetadata = z.object({\n locale: z.string(),\n name: z.string(),\n});\n\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const 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\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z.object({\n batch_size: z.number().int(),\n }),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_hash_alg_supported: z.string(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.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: jsonWebKeySetSchema,\n nonce_endpoint: z.url(),\n notification_endpoint: z.url(),\n revocation_endpoint: z.url(),\n status_assertion_endpoint: z.url(),\n status_attestation_endpoint: z.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\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\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.url(),\n client_name: z.string(),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n request_uris: z.array(z.url()),\n response_uris: z.array(z.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\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\nexport const itWalletCredentialVerifierIdentifier =\n \"openid_credential_verifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.3/en/credential-issuer-solution.html#metadata-for-oauth-authorization-server}\n *\n */\nexport const itWalletAuthorizationServerMetadata = z.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.url(),\n authorization_signing_alg_values_supported: z.array(z.string()),\n client_attestation_pop_signing_alg_values_supported: z\n .array(z.string())\n .min(1),\n client_attestation_signing_alg_values_supported: z.array(z.string()).min(1),\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 dpop_signing_alg_values_supported: z.array(z.string()).min(1),\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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.literal(true),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * Image metadata with integrity hash support\n * Follows IT Wallet v1.3 specification\n */\nexport type ImageMetadata = z.infer<typeof ImageMetadata>;\nexport const ImageMetadata = z.object({\n alt_text: z.string().optional(),\n uri: z.url(),\n \"uri#integrity\": z.string().optional(),\n});\n\n/**\n * Enhanced credential display metadata\n * Supports background images, watermarks, and colors\n */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\n\nexport const CredentialDisplayMetadata = z.object({\n background_color: z.string().optional(),\n background_image: ImageMetadata.optional(),\n description: z.string().optional(),\n locale: z.string(),\n logo: ImageMetadata.optional(),\n name: z.string(),\n watermark_image: ImageMetadata.optional(),\n});\n\n/**\n * Claim display metadata\n */\nexport type ClaimDisplayMetadata = z.infer<typeof ClaimDisplayMetadata>;\nexport const ClaimDisplayMetadata = z.object({\n description: z.string().optional(),\n locale: z.string(),\n name: z.string(),\n});\n\n/**\n * Enhanced claims metadata with selective disclosure and mandatory flags\n */\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const ClaimsMetadata = z.object({\n display: z.array(ClaimDisplayMetadata).optional(),\n mandatory: z.boolean().optional(),\n path: z.array(z.union([z.string(), z.number(), z.null()])),\n sd: z.enum([\"always\", \"never\"]).optional(),\n});\n\n/**\n * Complete credential metadata structure\n * This is the new mandatory field in credential_configurations_supported\n */\nexport type CredentialMetadata = z.infer<typeof CredentialMetadata>;\nexport const CredentialMetadata = z.object({\n claims: z.array(ClaimsMetadata).optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n});\n\nexport const zKeyStorageLevel = z.enum([\n \"iso_18045_high\",\n \"iso_18045_moderate\",\n \"iso_18045_enhanced-basic\",\n \"iso_18045_basic\",\n]);\n\nexport type KeyStorageLevel = z.infer<typeof zKeyStorageLevel>;\n\nexport const zUserAuthenticationLevel = zKeyStorageLevel;\nexport type UserAuthenticationLevel = KeyStorageLevel;\n\n/**\n * Enhanced proof types support with optional key attestations\n * References OpenID4VCI Appendix F.1 and Section 12.2\n */\nexport type ProofTypesSupported = z.infer<typeof ProofTypesSupported>;\nexport const ProofTypesSupported = z.object({\n jwt: z.object({\n key_attestations_required: z\n .object({\n key_storage: z.array(zKeyStorageLevel).min(1).optional(),\n user_authentication: z\n .array(zUserAuthenticationLevel)\n .min(1)\n .optional(),\n })\n .optional(),\n proof_signing_alg_values_supported: z.array(z.string()),\n }),\n});\n\n/**\n * Authentic sources metadata linking to trusted data sources\n */\nexport type AuthenticSources = z.infer<typeof AuthenticSources>;\nexport const AuthenticSources = z.object({\n dataset_id: z.string(),\n entity_id: z.string(),\n});\n\n/**\n * Enhanced metadata for a credential supported by an Issuer\n * Includes new mandatory credential_metadata, schema_id, and authentic_sources\n */\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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 authentic_sources: AuthenticSources,\n credential_metadata: CredentialMetadata,\n credential_signing_alg_values_supported: z.array(z.string()),\n cryptographic_binding_methods_supported: z.array(z.string()),\n proof_types_supported: ProofTypesSupported,\n schema_id: z.string(),\n scope: z.string(),\n }),\n);\n\n/**\n * IT Wallet Credential Issuer Metadata for v1.3 specification\n *\n * Changes from v1.0:\n * - REMOVED: revocation_endpoint, status_assertion_endpoint, credential_hash_alg_supported, evidence_supported\n * - ADDED: batch_credential_issuance, status_list_aggregation_endpoint\n * - MODIFIED: credential_configurations_supported now requires credential_metadata, schema_id, authentic_sources\n * - MODIFIED: proof_types_supported supports key_attestations_required\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.0/en/credential-issuer-solution.html#metadata-for-openid-credential-issuer}\n */\nexport const itWalletCredentialIssuerMetadata = z.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z\n .object({\n batch_size: z.number().int().positive(),\n })\n .optional(),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.url().optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n jwks: jsonWebKeySetSchema,\n nonce_endpoint: z.url().optional(),\n notification_endpoint: z.url().optional(),\n status_list_aggregation_endpoint: z.url().optional(),\n trust_frameworks_supported: z.array(\n z.union([\n z.literal(\"eudi_wallet\"),\n z.literal(\"it_cie\"),\n z.literal(\"it_wallet\"),\n z.literal(\"it_l2+document_proof\"),\n ]),\n ),\n});\n\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * IT Wallet Credential Verifier Metadata for OpenID Federation v1.3.3\n *\n * This schema defines the metadata structure for OpenID credential verifiers\n * (relying parties) in the Italian Wallet ecosystem, aligned with specification v1.3.3.\n *\n * Key changes from v1.0:\n * - Added `logo_uri` field (MIME type MUST be application/svg)\n * - Added `encrypted_response_enc_values_supported` for content encryption algorithms\n * - Renamed `vp_formats` to `vp_formats_supported`\n * - Enhanced VP formats structure with separate algorithm arrays:\n * - For SD-JWT: `sd-jwt_alg_values` and `kb-jwt_alg_values`\n * - For mso_mdoc: `issuerauth_alg_values` and `deviceauth_alg_values` (COSE algorithm numbers)\n * - Removed deprecated JARM fields: `authorization_signed_response_alg`,\n * `authorization_encrypted_response_alg`, `authorization_encrypted_response_enc`\n *\n * @see {@link https://italia.github.io/eidas-it-wallet-docs/versioned_docs/version-1.3.3/en/relying-party-metadata.html}\n */\nexport const itWalletCredentialVerifierMetadata = z.looseObject({\n application_type: z.literal(\"web\"),\n client_id: z.url(),\n client_name: z.string(),\n encrypted_response_enc_values_supported: z.array(z.string()).min(1),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n logo_uri: z.url(),\n request_uris: z.array(z.url()),\n response_uris: z.array(z.url()),\n vp_formats_supported: z.record(\n z.string(),\n z.object({\n alg: z.array(z.string()).optional(),\n deviceauth_alg_values: z.array(z.number()).optional(),\n issuerauth_alg_values: z.array(z.number()).optional(),\n \"kb-jwt_alg_values\": z.array(z.string()).optional(),\n \"sd-jwt_alg_values\": z.array(z.string()).optional(),\n }),\n ),\n});\n\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\n/**\n * Re-export the identifier from v1.0 as it remains unchanged\n */\nexport { itWalletCredentialVerifierIdentifier } from \"../v1.0/itWalletCredentialVerifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\nconst walletMetadataSchema = z.looseObject({\n authorization_endpoint: z.url(),\n client_id_prefixes_supported: z.array(\n z.enum([\"openid_federation\", \"x509_hash\"]),\n ),\n credential_offer_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n response_modes_supported: z.array(z.literal(\"query\")).min(1),\n response_types_supported: z.array(z.string()),\n vp_formats_supported: z.record(z.string(), z.looseObject({})),\n wallet_name: z.string(),\n});\n\nexport const itWalletSolutionEntityMetadata = z.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // logo_uri MIME type MUST be application/svg per spec; validated at fetch-time\n logo_uri: z.url(),\n signed_jwks_uri: z.url().optional(),\n wallet_metadata: walletMetadataSchema,\n});\n\nexport type ItWalletSolutionEntityMetadata = z.input<\n typeof itWalletSolutionEntityMetadata\n>;\n\nexport const itWalletSolutionEntityIdentifier = \"wallet_solution\";\n","import { z } from \"zod\";\n\nexport const constraintSchema = z.object({\n allowed_entity_types: z\n .array(\n z.string().refine((s) => s !== \"federation_entity\", {\n message: `Value cannot be \"federation_entity\"`,\n }),\n )\n .optional(),\n max_path_length: z.number().optional(),\n naming_constraints: z\n .object({\n excluded: z.array(z.string()).optional(),\n permitted: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\n/**\n *\n * {@link https://openid.net/specs/openid-federation-1_0.html#name-constraints | Constraints}\n *\n * Trust Anchors and Intermediate Entities MAY define constraining criteria that apply to their Subordinates. They are expressed in the constraints claim of a Subordinate Statement, as described in {@link https://openid.net/specs/openid-federation-1_0.html#entity-statement | Section 3}.\n *\n */\nexport type Constraint = z.input<typeof constraintSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\n/**\n * @example https://<federation_authority_domain>/trust_marks/<purpose>/<entity_type>\n */\nexport const trustMarkUrlSchema = z\n .url()\n .regex(/^https:\\/\\/[^/]+\\/trust_marks\\/[^/]+\\/[^/]+$/);\n\nexport const trustMarkSchema = z.object({\n trust_mark: z.string(),\n trust_mark_type: trustMarkUrlSchema,\n});\n\nexport type TrustMark = z.output<typeof trustMarkSchema>;\n\nexport const trustMarkIssuerSchema = z.record(z.string(), z.array(z.string()));\n\nexport type TrustMarkIssuer = z.input<typeof trustMarkIssuerSchema>;\n\nexport const trustMarkOwnerSchema = z.record(\n z.string(),\n z.object({\n jwks: jsonWebKeySetSchema,\n sub: z.string(),\n }),\n);\n\nexport type TrustMarkOwner = z.input<typeof trustMarkOwnerSchema>;\n","import type { z } from \"zod\";\n\nimport { itWalletEntityStatementClaimsSchema } from \"../entityStatement/itWalletEntityStatementClaims\";\n\nexport const itWalletEntityConfigurationClaimsSchema =\n itWalletEntityStatementClaimsSchema;\n\nexport type ItWalletEntityConfigurationClaimsOptions = z.input<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n\nexport type ItWalletEntityConfigurationClaims = z.output<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n","import { z } from \"zod\";\n\nexport const entityConfigurationHeaderSchema = z.looseObject({\n kid: z.string(),\n typ: z.literal(\"entity-statement+jwt\"),\n});\n\nexport type EntityConfigurationHeaderOptions = z.input<\n typeof entityConfigurationHeaderSchema\n>;\n\nexport type EntityConfigurationHeader = z.output<\n typeof entityConfigurationHeaderSchema\n>;\n"],"mappings":"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","names":["itWalletAuthorizationServerIdentifier","itWalletAuthorizationServerMetadata","itWalletCredentialIssuerIdentifier","itWalletCredentialIssuerMetadata","itWalletCredentialVerifierMetadata","import_io_wallet_utils","import_zod","z","key","import_zod","import_zod","import_zod","MetadataMergeStrategy","MetadataOrderOfApplication","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","itWalletAuthorizationServerMetadata","itWalletAuthorizationServerIdentifier","import_zod","CredentialDisplayMetadata","ClaimsMetadata","SupportedCredentialMetadata","itWalletCredentialIssuerMetadata","itWalletCredentialIssuerIdentifier","import_zod","itWalletCredentialVerifierMetadata","import_zod","itWalletAuthorizationServerIdentifier","itWalletAuthorizationServerMetadata","itWalletCredentialIssuerIdentifier","itWalletCredentialIssuerMetadata","itWalletCredentialVerifierMetadata","import_zod","import_zod","import_zod"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/entityConfiguration/createItWalletEntityConfiguration.ts","../src/jsonWeb/getUsedJsonWebKey.ts","../src/jwk/jwk.ts","../src/metadata/common.ts","../src/metadata/operator/utils/create-policy-operator-schema.ts","../src/metadata/operator/utils/swap-validators.ts","../src/metadata/policy.ts","../src/metadata/operator/metadata-merge-strategy.ts","../src/metadata/operator/metadata-order-of-application.ts","../src/metadata/operator/standard/add.ts","../src/metadata/operator/standard/default.ts","../src/metadata/operator/standard/essential.ts","../src/metadata/operator/standard/oneOf.ts","../src/metadata/operator/standard/subsetOf.ts","../src/metadata/operator/standard/supersetOf.ts","../src/metadata/operator/standard/value.ts","../src/utils/create-entity.ts","../src/utils/encoding.ts","../src/entityStatement/itWalletEntityStatementClaims.ts","../src/metadata/itWalletMetadata.ts","../src/metadata/entity/itWalletFederationEntity.ts","../src/metadata/entity/v1.0/ItWalletProvider.ts","../src/metadata/entity/v1.0/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.0/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.0/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.3/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.3/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletSolution.ts","../src/entityStatement/z-constraint.ts","../src/entityStatement/z-trustmark.ts","../src/entityConfiguration/itWalletEntityConfigurationClaims.ts","../src/entityConfiguration/z-entity-configuration-header.ts"],"sourcesContent":["export * from \"./entityConfiguration\";\nexport * from \"./entityStatement\";\nexport * from \"./jwk\";\nexport * from \"./metadata\";\nexport type * from \"./utils\";\n","import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport { Buffer } from \"buffer\";\n\nimport { getUsedJsonWebKey } from \"../jsonWeb/getUsedJsonWebKey\";\nimport { SignCallback, base64ToBase64URL } from \"../utils\";\nimport {\n ItWalletEntityConfigurationClaimsOptions,\n itWalletEntityConfigurationClaimsSchema,\n} from \"./itWalletEntityConfigurationClaims\";\nimport {\n EntityConfigurationHeaderOptions,\n entityConfigurationHeaderSchema,\n} from \"./z-entity-configuration-header\";\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\nfunction createJsonWebToken(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n signature: Uint8Array,\n) {\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const encodedSignature = base64ToBase64URL(\n Buffer.from(signature).toString(\"base64\"),\n );\n\n return `${encodedHeader}.${encodedPayload}.${encodedSignature}`;\n}\n\nfunction createJwtSignableInput(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n) {\n if (Object.keys(header).length === 0) {\n throw new Error(\"Can not create JWT with an empty header\");\n }\n\n if (Object.keys(payload).length === 0) {\n throw new Error(\"Can not create JWT with an empty payload\");\n }\n\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const toBeSignedString = `${encodedHeader}.${encodedPayload}`;\n\n return new Uint8Array(Buffer.from(toBeSignedString));\n}\n","import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport z from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\nexport const getUsedJsonWebKey = (\n header: Record<string, unknown>,\n claims: Record<string, unknown>,\n) => {\n const validatedHeader = parseWithErrorHandling(\n z.looseObject({\n kid: z.string(),\n }),\n header,\n \"invalid header claims. Should contain a key id\",\n );\n\n const validatedClaims = parseWithErrorHandling(\n z.looseObject({\n jwks: jsonWebKeySetSchema,\n }),\n claims,\n \"Invalid payload claims. Should contain a json web key set\",\n );\n\n // Get the key from the `claims.jwks` by the `header.kid`\n const key = validatedClaims.jwks?.keys.find(\n (key) => key.kid === validatedHeader.kid,\n );\n\n if (!key) {\n throw new Error(\n `key with id: '${header.kid}' could not be found in the claims`,\n );\n }\n\n return key;\n};\n","import { zCertificateChain } from \"@pagopa/io-wallet-oauth2\";\nimport { z } from \"zod\";\n\nexport const jsonWebKeySchema = z.looseObject({\n alg: z.string().optional(),\n key_ops: z.array(z.string()).optional(),\n kid: z.string(),\n kty: z.string(),\n use: z.string().optional(),\n x5c: zCertificateChain.optional(),\n x5t: z.string().optional(),\n \"x5t#S256\": z.string().optional(),\n x5u: z.string().optional(),\n});\n\nexport type JsonWebKey = z.input<typeof jsonWebKeySchema>;\n\nexport const jsonWebKeySetSchema = z.object({\n keys: z.array(jsonWebKeySchema),\n});\n\nexport type jsonWebKeySet = z.infer<typeof jsonWebKeySetSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\nexport const commonMetadataSchema = z.object({\n contacts: z.array(z.string()).min(1).optional(),\n homepage_uri: z.url().optional(),\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n logo_uri: z.url().optional(),\n organization_name: z.string().optional(),\n policy_uri: z.url().optional(),\n signed_jwks_uri: z.url().optional(),\n});\n","import type { MetadataOperator } from \"../metadata-operator\";\n\nexport const createPolicyOperatorSchema = <TKey extends string>(\n operator: MetadataOperator<TKey>,\n) =>\n ({\n /**\n * The key of the operator which is used to identify the operator\n */\n key: operator.key,\n /**\n * The merge strategy of the operator\n */\n mergeStrategy: operator.mergeStrategy,\n /**\n * The operator itself\n */\n operator: operator,\n /**\n * The schema for the operator itself so for essential it is only a boolean\n */\n operatorSchema: operator.operatorJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n /**\n * The order of application of the operator\n */\n orderOfApplication: operator.orderOfApplication,\n /**\n * The schema for the parameter the operator can be applied to so when the policy is targeting federation_entity we can check if the policy can handle that property\n */\n parameterSchema: operator.parameterJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n }) as const;\n","import { z } from \"zod\";\n\nexport const swapValidators = <T extends z.ZodRawShape>(\n schema: z.ZodObject<T>,\n newValidator: z.ZodSchema,\n): z.ZodObject<Record<string, typeof newValidator>> =>\n z.object(\n Object.keys(schema.shape).reduce(\n (acc, key) => {\n acc[key as keyof typeof acc] = newValidator;\n return acc;\n },\n {} as { [k in keyof T]: z.ZodSchema },\n ),\n );\n","import { z } from \"zod\";\n\nimport {\n addOperator,\n defaultOperator,\n essentialOperator,\n oneOfOperator,\n subsetOfOperator,\n supersetOfOperator,\n valueOperator,\n} from \"./operator\";\n\nexport const allSupportedPolicies = {\n [addOperator.key]: addOperator,\n [defaultOperator.key]: defaultOperator,\n [essentialOperator.key]: essentialOperator,\n [oneOfOperator.key]: oneOfOperator,\n [subsetOfOperator.key]: subsetOfOperator,\n [supersetOfOperator.key]: supersetOfOperator,\n [valueOperator.key]: valueOperator,\n} as const;\n\nexport type SupportedPolicyKey = keyof typeof allSupportedPolicies;\n\nexport const isExistingPolicyKey = (key: string): key is SupportedPolicyKey =>\n Object.hasOwn(allSupportedPolicies, key);\n\nexport const metadataPolicySchema = z\n .object(\n Object.entries(allSupportedPolicies).reduce(\n (acc, [key, policy]) => ({ ...acc, [key]: policy.operatorSchema }),\n {} as {\n [key in keyof typeof allSupportedPolicies]: (typeof allSupportedPolicies)[key][\"operatorSchema\"];\n },\n ),\n )\n .and(z.record(z.string(), z.any()))\n .superRefine((data, ctx) => {\n const dataKeys = Object.keys(data);\n const supportedDataKeys = dataKeys.filter(isExistingPolicyKey);\n\n for (const dataKey of supportedDataKeys) {\n const { operator } = allSupportedPolicies[dataKey];\n\n if (\n supportedDataKeys.some(\n (key) =>\n key !== operator.key && !operator.canBeCombinedWith.includes(key),\n )\n ) {\n ctx.addIssue({\n code: \"custom\",\n message: `policy operator '${\n operator.key\n }' can only be combined with one of: [${operator.canBeCombinedWith.join(\n \", \",\n )}]. keys: [${Object.keys(data).join(\",\")}]`,\n });\n }\n }\n });\n\nexport type MetadataPolicyOperator = z.input<typeof metadataPolicySchema>;\n","export enum MetadataMergeStrategy {\n /**\n *\n * The result of merging the values of two these operators is the intersection of the operator values. If the intersection is empty, this MUST result in a policy error.\n *\n */\n Intersection = 2,\n /**\n *\n * Allowed only when the operator values are equal. If not, this MUST result in a policy error.\n *\n */\n OperatorValuesEqual = 0,\n /**\n *\n * If a Superior has specified essential=true, then a Subordinate MUST NOT change that. If a Superior has specified essential=false, then a Subordinate is allowed to change that to essential=true. If a Superior has not specified essential, then a Subordinate can set essential to true or false. If those conditions are not met, this MUST result in a policy error.\n *\n */\n SuperiorFollowsIfTrue = 3,\n /**\n *\n * The result of merging the values of two these operators is the union of the operator values.\n *\n */\n Union = 1,\n}\n","/* eslint-disable perfectionist/sort-enums */\n\nexport enum MetadataOrderOfApplication {\n First = 0,\n AfterValue = 1,\n AfterAdd = 2,\n AfterDefault = 3,\n AfterOneOf = 4,\n AfterSubsetOf = 5,\n Last = 6,\n}\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const addOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"add\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterValue,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const defaultOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"one_of\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"default\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterAdd,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const essentialOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\n \"add\",\n \"default\",\n \"one_of\",\n \"subset_of\",\n \"superset_of\",\n \"value\",\n ],\n key: \"essential\",\n mergeStrategy: MetadataMergeStrategy.SuperiorFollowsIfTrue,\n operatorJsonValues: [z.boolean()],\n orderOfApplication: MetadataOrderOfApplication.Last,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.union([z.string(), z.number()])),\n z.unknown(),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const oneOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"essential\"],\n key: \"one_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterDefault,\n parameterJsonValues: [\n z.string(),\n // TODO: See how we want to we handle the comparison of objects\n // z.record(z.string().or(z.number()), z.unknown()),\n z.number(),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const subsetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"superset_of\", \"essential\"],\n key: \"subset_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterOneOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const supersetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"subset_of\", \"essential\"],\n key: \"superset_of\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterSubsetOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const valueOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"essential\"],\n key: \"value\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string().or(z.number()), z.unknown()),\n z.array(z.unknown()),\n z.null(),\n ],\n orderOfApplication: MetadataOrderOfApplication.First,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { commonMetadataSchema } from \"../metadata/common\";\nimport { swapValidators } from \"../metadata/operator/utils\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\n\nexport const createEntity = <T extends string, S extends z.ZodRawShape>({\n additionalValidation = {} as S,\n identifier,\n passThroughUnknownProperties = false,\n}: {\n additionalValidation?: S;\n identifier: T;\n passThroughUnknownProperties?: boolean;\n}) => {\n const schema = commonMetadataSchema.extend(additionalValidation);\n return {\n identifier,\n policySchema: swapValidators(schema, metadataPolicySchema.optional()),\n schema: passThroughUnknownProperties ? schema.loose() : schema,\n };\n};\n","export function base64ToBase64URL(base64: string) {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk/jwk\";\nimport { itWalletMetadataSchema } from \"../metadata/itWalletMetadata\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\nimport { constraintSchema } from \"./z-constraint\";\nimport {\n trustMarkIssuerSchema,\n trustMarkOwnerSchema,\n trustMarkSchema,\n} from \"./z-trustmark\";\n\nconst baseSchema = z.object({\n authority_hints: z.array(z.url()).optional(),\n constraints: constraintSchema.optional(),\n crit: z.array(z.string()).optional(),\n exp: z\n .number()\n .describe(\"Expiration time as a UNIX timestamp in seconds since epoch\"),\n iat: z\n .number()\n .describe(\"Issued-at time as a UNIX timestamp in seconds since epoch\"),\n iss: z.string(),\n jwks: jsonWebKeySetSchema,\n metadata: itWalletMetadataSchema.optional(),\n metadata_policy: z\n .record(z.string(), z.record(z.string(), metadataPolicySchema).optional())\n .optional(),\n metadata_policy_crit: z.array(z.string()).optional(),\n source_endpoint: z.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\ntype ItWalletEntityStatementClaimsOptions = z.input<typeof baseSchema>;\n\ntype ItWalletEntityStatementClaims = z.output<typeof baseSchema>;\n\nconst entityStatementClaimsSchema = baseSchema.loose().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\n// The explicit type annotation here is necessary to avoid this node exceeds the maximum length the compiler will serialize.\nexport const itWalletEntityStatementClaimsSchema: z.ZodType<\n ItWalletEntityStatementClaims,\n ItWalletEntityStatementClaimsOptions\n> = entityStatementClaimsSchema;\n","import { z } from \"zod\";\n\nimport {\n itWalletAuthorizationServerIdentifier,\n itWalletAuthorizationServerIdentifierV1_3,\n itWalletAuthorizationServerMetadata,\n itWalletAuthorizationServerMetadataV1_3,\n itWalletCredentialIssuerIdentifier,\n itWalletCredentialIssuerIdentifierV1_3,\n itWalletCredentialIssuerMetadata,\n itWalletCredentialIssuerMetadataV1_3,\n itWalletCredentialVerifierIdentifier,\n itWalletCredentialVerifierIdentifierV1_3,\n itWalletCredentialVerifierMetadata,\n itWalletCredentialVerifierMetadataV1_3,\n itWalletFederationEntityIdentifier,\n itWalletFederationEntityMetadata,\n itWalletProviderEntityIdentifier,\n itWalletProviderEntityMetadata,\n itWalletSolutionEntityIdentifierV1_3,\n itWalletSolutionEntityMetadataV1_3,\n} from \"./entity\";\n\n// v1.0 combined metadata\nexport const itWalletMetadataV1_0 = z.strictObject({\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\n// v1.3 combined metadata (stubs re-export v1.0 schemas for some entities)\nexport const itWalletMetadataV1_3 = z.strictObject({\n [itWalletAuthorizationServerIdentifierV1_3]:\n itWalletAuthorizationServerMetadataV1_3.optional(),\n [itWalletCredentialIssuerIdentifierV1_3]:\n itWalletCredentialIssuerMetadataV1_3.optional(),\n [itWalletCredentialVerifierIdentifierV1_3]:\n itWalletCredentialVerifierMetadataV1_3.optional(),\n [itWalletFederationEntityIdentifier]:\n itWalletFederationEntityMetadata.optional(),\n [itWalletSolutionEntityIdentifierV1_3]:\n itWalletSolutionEntityMetadataV1_3.optional(),\n});\n\n// Union — used by entity statement / entity configuration claims\n// v1.3 is tried first so that v1.3-specific fields are preserved during parsing\nexport const itWalletMetadataSchema =\n itWalletMetadataV1_3.or(itWalletMetadataV1_0);\n\nexport type MetadataV1_0 = z.input<typeof itWalletMetadataV1_0>;\nexport type MetadataV1_3 = z.input<typeof itWalletMetadataV1_3>;\nexport type Metadata = MetadataV1_0 | MetadataV1_3;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../jwk\";\nimport { createEntity } from \"../../utils\";\n\nexport const federationEntityMetadata = createEntity({\n additionalValidation: {\n federation_fetch_endpoint: z.url().optional(),\n federation_historical_keys_endpoint: z.url().optional(),\n federation_list_endpoint: z.url().optional(),\n federation_resolve_endpoint: z.url().optional(),\n federation_trust_mark_endpoint: z.url().optional(),\n federation_trust_mark_list_endpoint: z.url().optional(),\n federation_trust_mark_status_endpoint: z.url().optional(),\n },\n identifier: \"federation_entity\",\n});\n\nexport type FederationEntityMetadata = z.input<\n (typeof federationEntityMetadata)[\"schema\"]\n>;\n\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 jwks: jsonWebKeySetSchema.optional(),\n tos_uri: z.url().optional(),\n })\n .loose();\n\nexport type ItWalletFederationEntityMetadata = z.input<\n typeof itWalletFederationEntityMetadata\n>;\n\nexport const itWalletFederationEntityIdentifier =\n federationEntityMetadata.identifier;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // -- 5.2.1 Extensions for JWK Sets in Entity Metadata\n signed_jwks_uri: z.url().optional(),\n});\n\nexport type ItWalletProviderEntityMetadata = z.input<\n typeof itWalletProviderEntityMetadata\n>;\n\nexport const itWalletProviderEntityIdentifier = \"wallet_provider\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.boolean().optional(),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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 */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\nexport const CredentialDisplayMetadata = z.object({\n locale: z.string(),\n name: z.string(),\n});\n\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const 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\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z.object({\n batch_size: z.number().int(),\n }),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_hash_alg_supported: z.string(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.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: jsonWebKeySetSchema,\n nonce_endpoint: z.url(),\n notification_endpoint: z.url(),\n revocation_endpoint: z.url(),\n status_assertion_endpoint: z.url(),\n status_attestation_endpoint: z.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\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\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.url(),\n client_name: z.string(),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n request_uris: z.array(z.url()),\n response_uris: z.array(z.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\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\nexport const itWalletCredentialVerifierIdentifier =\n \"openid_credential_verifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.3/en/credential-issuer-solution.html#metadata-for-oauth-authorization-server}\n *\n */\nexport const itWalletAuthorizationServerMetadata = z.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.url(),\n authorization_signing_alg_values_supported: z.array(z.string()),\n client_attestation_pop_signing_alg_values_supported: z\n .array(z.string())\n .min(1),\n client_attestation_signing_alg_values_supported: z.array(z.string()).min(1),\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 dpop_signing_alg_values_supported: z.array(z.string()).min(1),\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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.literal(true),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * Image metadata with integrity hash support\n * Follows IT Wallet v1.3 specification\n */\nexport type ImageMetadata = z.infer<typeof ImageMetadata>;\nexport const ImageMetadata = z.object({\n alt_text: z.string().optional(),\n uri: z.url(),\n \"uri#integrity\": z.string().optional(),\n});\n\n/**\n * Enhanced credential display metadata\n * Supports background images, watermarks, and colors\n */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\n\nexport const CredentialDisplayMetadata = z.object({\n background_color: z.string().optional(),\n background_image: ImageMetadata.optional(),\n description: z.string().optional(),\n locale: z.string(),\n logo: ImageMetadata.optional(),\n name: z.string(),\n watermark_image: ImageMetadata.optional(),\n});\n\n/**\n * Claim display metadata\n */\nexport type ClaimDisplayMetadata = z.infer<typeof ClaimDisplayMetadata>;\nexport const ClaimDisplayMetadata = z.object({\n description: z.string().optional(),\n locale: z.string(),\n name: z.string(),\n});\n\n/**\n * Enhanced claims metadata with selective disclosure and mandatory flags\n */\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const ClaimsMetadata = z.object({\n display: z.array(ClaimDisplayMetadata).optional(),\n mandatory: z.boolean().optional(),\n path: z.array(z.union([z.string(), z.number(), z.null()])),\n sd: z.enum([\"always\", \"never\"]).optional(),\n});\n\n/**\n * Complete credential metadata structure\n * This is the new mandatory field in credential_configurations_supported\n */\nexport type CredentialMetadata = z.infer<typeof CredentialMetadata>;\nexport const CredentialMetadata = z.object({\n claims: z.array(ClaimsMetadata).optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n});\n\nexport const zKeyStorageLevel = z.enum([\n \"iso_18045_high\",\n \"iso_18045_moderate\",\n \"iso_18045_enhanced-basic\",\n \"iso_18045_basic\",\n]);\n\nexport type KeyStorageLevel = z.infer<typeof zKeyStorageLevel>;\n\nexport const zUserAuthenticationLevel = zKeyStorageLevel;\nexport type UserAuthenticationLevel = KeyStorageLevel;\n\n/**\n * Enhanced proof types support with optional key attestations\n * References OpenID4VCI Appendix F.1 and Section 12.2\n */\nexport type ProofTypesSupported = z.infer<typeof ProofTypesSupported>;\nexport const ProofTypesSupported = z.object({\n jwt: z.object({\n key_attestations_required: z\n .object({\n key_storage: z.array(zKeyStorageLevel).min(1).optional(),\n user_authentication: z\n .array(zUserAuthenticationLevel)\n .min(1)\n .optional(),\n })\n .optional(),\n proof_signing_alg_values_supported: z.array(z.string()),\n }),\n});\n\n/**\n * Authentic sources metadata linking to trusted data sources\n */\nexport type AuthenticSources = z.infer<typeof AuthenticSources>;\nexport const AuthenticSources = z.object({\n dataset_id: z.string(),\n entity_id: z.string(),\n});\n\n/**\n * Enhanced metadata for a credential supported by an Issuer\n * Includes new mandatory credential_metadata, schema_id, and authentic_sources\n */\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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 authentic_sources: AuthenticSources,\n credential_metadata: CredentialMetadata,\n credential_signing_alg_values_supported: z.array(z.string()),\n cryptographic_binding_methods_supported: z.array(z.string()),\n proof_types_supported: ProofTypesSupported,\n schema_id: z.string(),\n scope: z.string(),\n }),\n);\n\n/**\n * IT Wallet Credential Issuer Metadata for v1.3 specification\n *\n * Changes from v1.0:\n * - REMOVED: revocation_endpoint, status_assertion_endpoint, credential_hash_alg_supported, evidence_supported\n * - ADDED: batch_credential_issuance, status_list_aggregation_endpoint\n * - MODIFIED: credential_configurations_supported now requires credential_metadata, schema_id, authentic_sources\n * - MODIFIED: proof_types_supported supports key_attestations_required\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.0/en/credential-issuer-solution.html#metadata-for-openid-credential-issuer}\n */\nexport const itWalletCredentialIssuerMetadata = z.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z\n .object({\n batch_size: z.number().int().positive(),\n })\n .optional(),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.url().optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n jwks: jsonWebKeySetSchema,\n nonce_endpoint: z.url().optional(),\n notification_endpoint: z.url().optional(),\n status_list_aggregation_endpoint: z.url().optional(),\n trust_frameworks_supported: z.array(\n z.union([\n z.literal(\"eudi_wallet\"),\n z.literal(\"it_cie\"),\n z.literal(\"it_wallet\"),\n z.literal(\"it_l2+document_proof\"),\n ]),\n ),\n});\n\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * IT Wallet Credential Verifier Metadata for OpenID Federation v1.3.3\n *\n * This schema defines the metadata structure for OpenID credential verifiers\n * (relying parties) in the Italian Wallet ecosystem, aligned with specification v1.3.3.\n *\n * Key changes from v1.0:\n * - Added `logo_uri` field (MIME type MUST be application/svg)\n * - Added `encrypted_response_enc_values_supported` for content encryption algorithms\n * - Renamed `vp_formats` to `vp_formats_supported`\n * - Enhanced VP formats structure with separate algorithm arrays:\n * - For SD-JWT: `sd-jwt_alg_values` and `kb-jwt_alg_values`\n * - For mso_mdoc: `issuerauth_alg_values` and `deviceauth_alg_values` (COSE algorithm numbers)\n * - Removed deprecated JARM fields: `authorization_signed_response_alg`,\n * `authorization_encrypted_response_alg`, `authorization_encrypted_response_enc`\n *\n * @see {@link https://italia.github.io/eidas-it-wallet-docs/versioned_docs/version-1.3.3/en/relying-party-metadata.html}\n */\nexport const itWalletCredentialVerifierMetadata = z.looseObject({\n application_type: z.literal(\"web\"),\n client_id: z.url(),\n client_name: z.string(),\n encrypted_response_enc_values_supported: z.array(z.string()).min(1),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n logo_uri: z.url(),\n request_uris: z.array(z.url()),\n response_uris: z.array(z.url()),\n vp_formats_supported: z.record(\n z.string(),\n z.object({\n alg: z.array(z.string()).optional(),\n deviceauth_alg_values: z.array(z.number()).optional(),\n issuerauth_alg_values: z.array(z.number()).optional(),\n \"kb-jwt_alg_values\": z.array(z.string()).optional(),\n \"sd-jwt_alg_values\": z.array(z.string()).optional(),\n }),\n ),\n});\n\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\n/**\n * Re-export the identifier from v1.0 as it remains unchanged\n */\nexport { itWalletCredentialVerifierIdentifier } from \"../v1.0/itWalletCredentialVerifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\nconst walletMetadataSchema = z.looseObject({\n authorization_endpoint: z.url(),\n client_id_prefixes_supported: z.array(\n z.enum([\"openid_federation\", \"x509_hash\"]),\n ),\n credential_offer_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n response_modes_supported: z.array(z.literal(\"query\")).min(1),\n response_types_supported: z.array(z.string()),\n vp_formats_supported: z.record(z.string(), z.looseObject({})),\n wallet_name: z.string(),\n});\n\nexport const itWalletSolutionEntityMetadata = z.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // logo_uri MIME type MUST be application/svg per spec; validated at fetch-time\n logo_uri: z.url(),\n signed_jwks_uri: z.url().optional(),\n wallet_metadata: walletMetadataSchema,\n});\n\nexport type ItWalletSolutionEntityMetadata = z.input<\n typeof itWalletSolutionEntityMetadata\n>;\n\nexport const itWalletSolutionEntityIdentifier = \"wallet_solution\";\n","import { z } from \"zod\";\n\nexport const constraintSchema = z.object({\n allowed_entity_types: z\n .array(\n z.string().refine((s) => s !== \"federation_entity\", {\n message: `Value cannot be \"federation_entity\"`,\n }),\n )\n .optional(),\n max_path_length: z.number().optional(),\n naming_constraints: z\n .object({\n excluded: z.array(z.string()).optional(),\n permitted: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\n/**\n *\n * {@link https://openid.net/specs/openid-federation-1_0.html#name-constraints | Constraints}\n *\n * Trust Anchors and Intermediate Entities MAY define constraining criteria that apply to their Subordinates. They are expressed in the constraints claim of a Subordinate Statement, as described in {@link https://openid.net/specs/openid-federation-1_0.html#entity-statement | Section 3}.\n *\n */\nexport type Constraint = z.input<typeof constraintSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\n/**\n * @example https://<federation_authority_domain>/trust_marks/<purpose>/<entity_type>\n */\nexport const trustMarkUrlSchema = z\n .url()\n .regex(/^https:\\/\\/[^/]+\\/trust_marks\\/[^/]+\\/[^/]+$/);\n\nexport const trustMarkSchema = z.object({\n trust_mark: z.string(),\n trust_mark_type: trustMarkUrlSchema,\n});\n\nexport type TrustMark = z.output<typeof trustMarkSchema>;\n\nexport const trustMarkIssuerSchema = z.record(z.string(), z.array(z.string()));\n\nexport type TrustMarkIssuer = z.input<typeof trustMarkIssuerSchema>;\n\nexport const trustMarkOwnerSchema = z.record(\n z.string(),\n z.object({\n jwks: jsonWebKeySetSchema,\n sub: z.string(),\n }),\n);\n\nexport type TrustMarkOwner = z.input<typeof trustMarkOwnerSchema>;\n","import type { z } from \"zod\";\n\nimport { itWalletEntityStatementClaimsSchema } from \"../entityStatement/itWalletEntityStatementClaims\";\n\nexport const itWalletEntityConfigurationClaimsSchema =\n itWalletEntityStatementClaimsSchema;\n\nexport type ItWalletEntityConfigurationClaimsOptions = z.input<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n\nexport type ItWalletEntityConfigurationClaims = z.output<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n","import { z } from \"zod\";\n\nexport const entityConfigurationHeaderSchema = z.looseObject({\n kid: z.string(),\n typ: z.literal(\"entity-statement+jwt\"),\n});\n\nexport type EntityConfigurationHeaderOptions = z.input<\n typeof entityConfigurationHeaderSchema\n>;\n\nexport type EntityConfigurationHeader = z.output<\n typeof entityConfigurationHeaderSchema\n>;\n"],"mappings":"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","names":["itWalletAuthorizationServerIdentifier","itWalletAuthorizationServerMetadata","itWalletCredentialIssuerIdentifier","itWalletCredentialIssuerMetadata","itWalletCredentialVerifierMetadata","import_io_wallet_utils","import_zod","z","key","import_zod","import_zod","import_zod","MetadataMergeStrategy","MetadataOrderOfApplication","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","itWalletAuthorizationServerMetadata","itWalletAuthorizationServerIdentifier","import_zod","CredentialDisplayMetadata","ClaimsMetadata","SupportedCredentialMetadata","itWalletCredentialIssuerMetadata","itWalletCredentialIssuerIdentifier","import_zod","itWalletCredentialVerifierMetadata","import_zod","itWalletAuthorizationServerIdentifier","itWalletAuthorizationServerMetadata","itWalletCredentialIssuerIdentifier","itWalletCredentialIssuerMetadata","itWalletCredentialVerifierMetadata","import_zod","import_zod","import_zod"]}
|
package/dist/index.mjs
CHANGED
|
@@ -48,12 +48,7 @@ var getUsedJsonWebKey = (header, claims) => {
|
|
|
48
48
|
`key with id: '${header.kid}' could not be found in the claims`
|
|
49
49
|
);
|
|
50
50
|
}
|
|
51
|
-
|
|
52
|
-
const jwk = jsonWebKeySchema.parse({
|
|
53
|
-
...jwkWithoutX5c,
|
|
54
|
-
x5c: [...x5c ?? []]
|
|
55
|
-
});
|
|
56
|
-
return jwk;
|
|
51
|
+
return key;
|
|
57
52
|
};
|
|
58
53
|
|
|
59
54
|
// src/metadata/common.ts
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/entityConfiguration/createItWalletEntityConfiguration.ts","../src/jsonWeb/getUsedJsonWebKey.ts","../src/jwk/jwk.ts","../src/metadata/common.ts","../src/metadata/operator/utils/create-policy-operator-schema.ts","../src/metadata/operator/utils/swap-validators.ts","../src/metadata/policy.ts","../src/metadata/operator/metadata-merge-strategy.ts","../src/metadata/operator/metadata-order-of-application.ts","../src/metadata/operator/standard/add.ts","../src/metadata/operator/standard/default.ts","../src/metadata/operator/standard/essential.ts","../src/metadata/operator/standard/oneOf.ts","../src/metadata/operator/standard/subsetOf.ts","../src/metadata/operator/standard/supersetOf.ts","../src/metadata/operator/standard/value.ts","../src/utils/create-entity.ts","../src/utils/encoding.ts","../src/entityStatement/itWalletEntityStatementClaims.ts","../src/metadata/itWalletMetadata.ts","../src/metadata/entity/itWalletFederationEntity.ts","../src/metadata/entity/v1.0/ItWalletProvider.ts","../src/metadata/entity/v1.0/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.0/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.0/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.3/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.3/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletSolution.ts","../src/entityStatement/z-constraint.ts","../src/entityStatement/z-trustmark.ts","../src/entityConfiguration/itWalletEntityConfigurationClaims.ts","../src/entityConfiguration/z-entity-configuration-header.ts"],"sourcesContent":["import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport { Buffer } from \"buffer\";\n\nimport { getUsedJsonWebKey } from \"../jsonWeb/getUsedJsonWebKey\";\nimport { SignCallback, base64ToBase64URL } from \"../utils\";\nimport {\n ItWalletEntityConfigurationClaimsOptions,\n itWalletEntityConfigurationClaimsSchema,\n} from \"./itWalletEntityConfigurationClaims\";\nimport {\n EntityConfigurationHeaderOptions,\n entityConfigurationHeaderSchema,\n} from \"./z-entity-configuration-header\";\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\nfunction createJsonWebToken(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n signature: Uint8Array,\n) {\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const encodedSignature = base64ToBase64URL(\n Buffer.from(signature).toString(\"base64\"),\n );\n\n return `${encodedHeader}.${encodedPayload}.${encodedSignature}`;\n}\n\nfunction createJwtSignableInput(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n) {\n if (Object.keys(header).length === 0) {\n throw new Error(\"Can not create JWT with an empty header\");\n }\n\n if (Object.keys(payload).length === 0) {\n throw new Error(\"Can not create JWT with an empty payload\");\n }\n\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const toBeSignedString = `${encodedHeader}.${encodedPayload}`;\n\n return new Uint8Array(Buffer.from(toBeSignedString));\n}\n","import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport z from \"zod\";\n\nimport { jsonWebKeySchema, jsonWebKeySetSchema } from \"../jwk\";\n\nexport const getUsedJsonWebKey = (\n header: Record<string, unknown>,\n claims: Record<string, unknown>,\n) => {\n const validatedHeader = parseWithErrorHandling(\n z.looseObject({\n kid: z.string(),\n }),\n header,\n \"invalid header claims. Should contain a key id\",\n );\n\n const validatedClaims = parseWithErrorHandling(\n z.looseObject({\n jwks: jsonWebKeySetSchema,\n }),\n claims,\n \"Invalid payload claims. Should contain a json web key set\",\n );\n\n // Get the key from the `claims.jwks` by the `header.kid`\n const key = validatedClaims.jwks?.keys.find(\n (key) => key.kid === validatedHeader.kid,\n );\n\n if (!key) {\n throw new Error(\n `key with id: '${header.kid}' could not be found in the claims`,\n );\n }\n\n // Fix a @openid-federation bug where x5c is expected to be an array\n const { x5c, ...jwkWithoutX5c } = key;\n const jwk = jsonWebKeySchema.parse({\n ...jwkWithoutX5c,\n x5c: [...(x5c ?? [])],\n });\n\n return jwk;\n};\n","import { zCertificateChain } from \"@pagopa/io-wallet-oauth2\";\nimport { z } from \"zod\";\n\nexport const jsonWebKeySchema = z.looseObject({\n alg: z.string().optional(),\n key_ops: z.array(z.string()).optional(),\n kid: z.string(),\n kty: z.string(),\n use: z.string().optional(),\n x5c: zCertificateChain.optional(),\n x5t: z.string().optional(),\n \"x5t#S256\": z.string().optional(),\n x5u: z.string().optional(),\n});\n\nexport type JsonWebKey = z.input<typeof jsonWebKeySchema>;\n\nexport const jsonWebKeySetSchema = z.object({\n keys: z.array(jsonWebKeySchema),\n});\n\nexport type jsonWebKeySet = z.infer<typeof jsonWebKeySetSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\nexport const commonMetadataSchema = z.object({\n contacts: z.array(z.string()).min(1).optional(),\n homepage_uri: z.url().optional(),\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n logo_uri: z.url().optional(),\n organization_name: z.string().optional(),\n policy_uri: z.url().optional(),\n signed_jwks_uri: z.url().optional(),\n});\n","import type { MetadataOperator } from \"../metadata-operator\";\n\nexport const createPolicyOperatorSchema = <TKey extends string>(\n operator: MetadataOperator<TKey>,\n) =>\n ({\n /**\n * The key of the operator which is used to identify the operator\n */\n key: operator.key,\n /**\n * The merge strategy of the operator\n */\n mergeStrategy: operator.mergeStrategy,\n /**\n * The operator itself\n */\n operator: operator,\n /**\n * The schema for the operator itself so for essential it is only a boolean\n */\n operatorSchema: operator.operatorJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n /**\n * The order of application of the operator\n */\n orderOfApplication: operator.orderOfApplication,\n /**\n * The schema for the parameter the operator can be applied to so when the policy is targeting federation_entity we can check if the policy can handle that property\n */\n parameterSchema: operator.parameterJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n }) as const;\n","import { z } from \"zod\";\n\nexport const swapValidators = <T extends z.ZodRawShape>(\n schema: z.ZodObject<T>,\n newValidator: z.ZodSchema,\n): z.ZodObject<Record<string, typeof newValidator>> =>\n z.object(\n Object.keys(schema.shape).reduce(\n (acc, key) => {\n acc[key as keyof typeof acc] = newValidator;\n return acc;\n },\n {} as { [k in keyof T]: z.ZodSchema },\n ),\n );\n","import { z } from \"zod\";\n\nimport {\n addOperator,\n defaultOperator,\n essentialOperator,\n oneOfOperator,\n subsetOfOperator,\n supersetOfOperator,\n valueOperator,\n} from \"./operator\";\n\nexport const allSupportedPolicies = {\n [addOperator.key]: addOperator,\n [defaultOperator.key]: defaultOperator,\n [essentialOperator.key]: essentialOperator,\n [oneOfOperator.key]: oneOfOperator,\n [subsetOfOperator.key]: subsetOfOperator,\n [supersetOfOperator.key]: supersetOfOperator,\n [valueOperator.key]: valueOperator,\n} as const;\n\nexport type SupportedPolicyKey = keyof typeof allSupportedPolicies;\n\nexport const isExistingPolicyKey = (key: string): key is SupportedPolicyKey =>\n Object.hasOwn(allSupportedPolicies, key);\n\nexport const metadataPolicySchema = z\n .object(\n Object.entries(allSupportedPolicies).reduce(\n (acc, [key, policy]) => ({ ...acc, [key]: policy.operatorSchema }),\n {} as {\n [key in keyof typeof allSupportedPolicies]: (typeof allSupportedPolicies)[key][\"operatorSchema\"];\n },\n ),\n )\n .and(z.record(z.string(), z.any()))\n .superRefine((data, ctx) => {\n const dataKeys = Object.keys(data);\n const supportedDataKeys = dataKeys.filter(isExistingPolicyKey);\n\n for (const dataKey of supportedDataKeys) {\n const { operator } = allSupportedPolicies[dataKey];\n\n if (\n supportedDataKeys.some(\n (key) =>\n key !== operator.key && !operator.canBeCombinedWith.includes(key),\n )\n ) {\n ctx.addIssue({\n code: \"custom\",\n message: `policy operator '${\n operator.key\n }' can only be combined with one of: [${operator.canBeCombinedWith.join(\n \", \",\n )}]. keys: [${Object.keys(data).join(\",\")}]`,\n });\n }\n }\n });\n\nexport type MetadataPolicyOperator = z.input<typeof metadataPolicySchema>;\n","export enum MetadataMergeStrategy {\n /**\n *\n * The result of merging the values of two these operators is the intersection of the operator values. If the intersection is empty, this MUST result in a policy error.\n *\n */\n Intersection = 2,\n /**\n *\n * Allowed only when the operator values are equal. If not, this MUST result in a policy error.\n *\n */\n OperatorValuesEqual = 0,\n /**\n *\n * If a Superior has specified essential=true, then a Subordinate MUST NOT change that. If a Superior has specified essential=false, then a Subordinate is allowed to change that to essential=true. If a Superior has not specified essential, then a Subordinate can set essential to true or false. If those conditions are not met, this MUST result in a policy error.\n *\n */\n SuperiorFollowsIfTrue = 3,\n /**\n *\n * The result of merging the values of two these operators is the union of the operator values.\n *\n */\n Union = 1,\n}\n","/* eslint-disable perfectionist/sort-enums */\n\nexport enum MetadataOrderOfApplication {\n First = 0,\n AfterValue = 1,\n AfterAdd = 2,\n AfterDefault = 3,\n AfterOneOf = 4,\n AfterSubsetOf = 5,\n Last = 6,\n}\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const addOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"add\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterValue,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const defaultOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"one_of\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"default\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterAdd,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const essentialOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\n \"add\",\n \"default\",\n \"one_of\",\n \"subset_of\",\n \"superset_of\",\n \"value\",\n ],\n key: \"essential\",\n mergeStrategy: MetadataMergeStrategy.SuperiorFollowsIfTrue,\n operatorJsonValues: [z.boolean()],\n orderOfApplication: MetadataOrderOfApplication.Last,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.union([z.string(), z.number()])),\n z.unknown(),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const oneOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"essential\"],\n key: \"one_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterDefault,\n parameterJsonValues: [\n z.string(),\n // TODO: See how we want to we handle the comparison of objects\n // z.record(z.string().or(z.number()), z.unknown()),\n z.number(),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const subsetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"superset_of\", \"essential\"],\n key: \"subset_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterOneOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const supersetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"subset_of\", \"essential\"],\n key: \"superset_of\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterSubsetOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const valueOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"essential\"],\n key: \"value\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string().or(z.number()), z.unknown()),\n z.array(z.unknown()),\n z.null(),\n ],\n orderOfApplication: MetadataOrderOfApplication.First,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { commonMetadataSchema } from \"../metadata/common\";\nimport { swapValidators } from \"../metadata/operator/utils\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\n\nexport const createEntity = <T extends string, S extends z.ZodRawShape>({\n additionalValidation = {} as S,\n identifier,\n passThroughUnknownProperties = false,\n}: {\n additionalValidation?: S;\n identifier: T;\n passThroughUnknownProperties?: boolean;\n}) => {\n const schema = commonMetadataSchema.extend(additionalValidation);\n return {\n identifier,\n policySchema: swapValidators(schema, metadataPolicySchema.optional()),\n schema: passThroughUnknownProperties ? schema.loose() : schema,\n };\n};\n","export function base64ToBase64URL(base64: string) {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk/jwk\";\nimport { itWalletMetadataSchema } from \"../metadata/itWalletMetadata\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\nimport { constraintSchema } from \"./z-constraint\";\nimport {\n trustMarkIssuerSchema,\n trustMarkOwnerSchema,\n trustMarkSchema,\n} from \"./z-trustmark\";\n\nconst baseSchema = z.object({\n authority_hints: z.array(z.url()).optional(),\n constraints: constraintSchema.optional(),\n crit: z.array(z.string()).optional(),\n exp: z\n .number()\n .describe(\"Expiration time as a UNIX timestamp in seconds since epoch\"),\n iat: z\n .number()\n .describe(\"Issued-at time as a UNIX timestamp in seconds since epoch\"),\n iss: z.string(),\n jwks: jsonWebKeySetSchema,\n metadata: itWalletMetadataSchema.optional(),\n metadata_policy: z\n .record(z.string(), z.record(z.string(), metadataPolicySchema).optional())\n .optional(),\n metadata_policy_crit: z.array(z.string()).optional(),\n source_endpoint: z.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\ntype ItWalletEntityStatementClaimsOptions = z.input<typeof baseSchema>;\n\ntype ItWalletEntityStatementClaims = z.output<typeof baseSchema>;\n\nconst entityStatementClaimsSchema = baseSchema.loose().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\n// The explicit type annotation here is necessary to avoid this node exceeds the maximum length the compiler will serialize.\nexport const itWalletEntityStatementClaimsSchema: z.ZodType<\n ItWalletEntityStatementClaims,\n ItWalletEntityStatementClaimsOptions\n> = entityStatementClaimsSchema;\n","import { z } from \"zod\";\n\nimport {\n itWalletAuthorizationServerIdentifier,\n itWalletAuthorizationServerIdentifierV1_3,\n itWalletAuthorizationServerMetadata,\n itWalletAuthorizationServerMetadataV1_3,\n itWalletCredentialIssuerIdentifier,\n itWalletCredentialIssuerIdentifierV1_3,\n itWalletCredentialIssuerMetadata,\n itWalletCredentialIssuerMetadataV1_3,\n itWalletCredentialVerifierIdentifier,\n itWalletCredentialVerifierIdentifierV1_3,\n itWalletCredentialVerifierMetadata,\n itWalletCredentialVerifierMetadataV1_3,\n itWalletFederationEntityIdentifier,\n itWalletFederationEntityMetadata,\n itWalletProviderEntityIdentifier,\n itWalletProviderEntityMetadata,\n itWalletSolutionEntityIdentifierV1_3,\n itWalletSolutionEntityMetadataV1_3,\n} from \"./entity\";\n\n// v1.0 combined metadata\nexport const itWalletMetadataV1_0 = z.strictObject({\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\n// v1.3 combined metadata (stubs re-export v1.0 schemas for some entities)\nexport const itWalletMetadataV1_3 = z.strictObject({\n [itWalletAuthorizationServerIdentifierV1_3]:\n itWalletAuthorizationServerMetadataV1_3.optional(),\n [itWalletCredentialIssuerIdentifierV1_3]:\n itWalletCredentialIssuerMetadataV1_3.optional(),\n [itWalletCredentialVerifierIdentifierV1_3]:\n itWalletCredentialVerifierMetadataV1_3.optional(),\n [itWalletFederationEntityIdentifier]:\n itWalletFederationEntityMetadata.optional(),\n [itWalletSolutionEntityIdentifierV1_3]:\n itWalletSolutionEntityMetadataV1_3.optional(),\n});\n\n// Union — used by entity statement / entity configuration claims\n// v1.3 is tried first so that v1.3-specific fields are preserved during parsing\nexport const itWalletMetadataSchema =\n itWalletMetadataV1_3.or(itWalletMetadataV1_0);\n\nexport type MetadataV1_0 = z.input<typeof itWalletMetadataV1_0>;\nexport type MetadataV1_3 = z.input<typeof itWalletMetadataV1_3>;\nexport type Metadata = MetadataV1_0 | MetadataV1_3;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../jwk\";\nimport { createEntity } from \"../../utils\";\n\nexport const federationEntityMetadata = createEntity({\n additionalValidation: {\n federation_fetch_endpoint: z.url().optional(),\n federation_historical_keys_endpoint: z.url().optional(),\n federation_list_endpoint: z.url().optional(),\n federation_resolve_endpoint: z.url().optional(),\n federation_trust_mark_endpoint: z.url().optional(),\n federation_trust_mark_list_endpoint: z.url().optional(),\n federation_trust_mark_status_endpoint: z.url().optional(),\n },\n identifier: \"federation_entity\",\n});\n\nexport type FederationEntityMetadata = z.input<\n (typeof federationEntityMetadata)[\"schema\"]\n>;\n\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 jwks: jsonWebKeySetSchema.optional(),\n tos_uri: z.url().optional(),\n })\n .loose();\n\nexport type ItWalletFederationEntityMetadata = z.input<\n typeof itWalletFederationEntityMetadata\n>;\n\nexport const itWalletFederationEntityIdentifier =\n federationEntityMetadata.identifier;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // -- 5.2.1 Extensions for JWK Sets in Entity Metadata\n signed_jwks_uri: z.url().optional(),\n});\n\nexport type ItWalletProviderEntityMetadata = z.input<\n typeof itWalletProviderEntityMetadata\n>;\n\nexport const itWalletProviderEntityIdentifier = \"wallet_provider\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.boolean().optional(),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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 */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\nexport const CredentialDisplayMetadata = z.object({\n locale: z.string(),\n name: z.string(),\n});\n\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const 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\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z.object({\n batch_size: z.number().int(),\n }),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_hash_alg_supported: z.string(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.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: jsonWebKeySetSchema,\n nonce_endpoint: z.url(),\n notification_endpoint: z.url(),\n revocation_endpoint: z.url(),\n status_assertion_endpoint: z.url(),\n status_attestation_endpoint: z.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\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\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.url(),\n client_name: z.string(),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n request_uris: z.array(z.url()),\n response_uris: z.array(z.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\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\nexport const itWalletCredentialVerifierIdentifier =\n \"openid_credential_verifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.3/en/credential-issuer-solution.html#metadata-for-oauth-authorization-server}\n *\n */\nexport const itWalletAuthorizationServerMetadata = z.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.url(),\n authorization_signing_alg_values_supported: z.array(z.string()),\n client_attestation_pop_signing_alg_values_supported: z\n .array(z.string())\n .min(1),\n client_attestation_signing_alg_values_supported: z.array(z.string()).min(1),\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 dpop_signing_alg_values_supported: z.array(z.string()).min(1),\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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.literal(true),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * Image metadata with integrity hash support\n * Follows IT Wallet v1.3 specification\n */\nexport type ImageMetadata = z.infer<typeof ImageMetadata>;\nexport const ImageMetadata = z.object({\n alt_text: z.string().optional(),\n uri: z.url(),\n \"uri#integrity\": z.string().optional(),\n});\n\n/**\n * Enhanced credential display metadata\n * Supports background images, watermarks, and colors\n */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\n\nexport const CredentialDisplayMetadata = z.object({\n background_color: z.string().optional(),\n background_image: ImageMetadata.optional(),\n description: z.string().optional(),\n locale: z.string(),\n logo: ImageMetadata.optional(),\n name: z.string(),\n watermark_image: ImageMetadata.optional(),\n});\n\n/**\n * Claim display metadata\n */\nexport type ClaimDisplayMetadata = z.infer<typeof ClaimDisplayMetadata>;\nexport const ClaimDisplayMetadata = z.object({\n description: z.string().optional(),\n locale: z.string(),\n name: z.string(),\n});\n\n/**\n * Enhanced claims metadata with selective disclosure and mandatory flags\n */\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const ClaimsMetadata = z.object({\n display: z.array(ClaimDisplayMetadata).optional(),\n mandatory: z.boolean().optional(),\n path: z.array(z.union([z.string(), z.number(), z.null()])),\n sd: z.enum([\"always\", \"never\"]).optional(),\n});\n\n/**\n * Complete credential metadata structure\n * This is the new mandatory field in credential_configurations_supported\n */\nexport type CredentialMetadata = z.infer<typeof CredentialMetadata>;\nexport const CredentialMetadata = z.object({\n claims: z.array(ClaimsMetadata).optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n});\n\nexport const zKeyStorageLevel = z.enum([\n \"iso_18045_high\",\n \"iso_18045_moderate\",\n \"iso_18045_enhanced-basic\",\n \"iso_18045_basic\",\n]);\n\nexport type KeyStorageLevel = z.infer<typeof zKeyStorageLevel>;\n\nexport const zUserAuthenticationLevel = zKeyStorageLevel;\nexport type UserAuthenticationLevel = KeyStorageLevel;\n\n/**\n * Enhanced proof types support with optional key attestations\n * References OpenID4VCI Appendix F.1 and Section 12.2\n */\nexport type ProofTypesSupported = z.infer<typeof ProofTypesSupported>;\nexport const ProofTypesSupported = z.object({\n jwt: z.object({\n key_attestations_required: z\n .object({\n key_storage: z.array(zKeyStorageLevel).min(1).optional(),\n user_authentication: z\n .array(zUserAuthenticationLevel)\n .min(1)\n .optional(),\n })\n .optional(),\n proof_signing_alg_values_supported: z.array(z.string()),\n }),\n});\n\n/**\n * Authentic sources metadata linking to trusted data sources\n */\nexport type AuthenticSources = z.infer<typeof AuthenticSources>;\nexport const AuthenticSources = z.object({\n dataset_id: z.string(),\n entity_id: z.string(),\n});\n\n/**\n * Enhanced metadata for a credential supported by an Issuer\n * Includes new mandatory credential_metadata, schema_id, and authentic_sources\n */\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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 authentic_sources: AuthenticSources,\n credential_metadata: CredentialMetadata,\n credential_signing_alg_values_supported: z.array(z.string()),\n cryptographic_binding_methods_supported: z.array(z.string()),\n proof_types_supported: ProofTypesSupported,\n schema_id: z.string(),\n scope: z.string(),\n }),\n);\n\n/**\n * IT Wallet Credential Issuer Metadata for v1.3 specification\n *\n * Changes from v1.0:\n * - REMOVED: revocation_endpoint, status_assertion_endpoint, credential_hash_alg_supported, evidence_supported\n * - ADDED: batch_credential_issuance, status_list_aggregation_endpoint\n * - MODIFIED: credential_configurations_supported now requires credential_metadata, schema_id, authentic_sources\n * - MODIFIED: proof_types_supported supports key_attestations_required\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.0/en/credential-issuer-solution.html#metadata-for-openid-credential-issuer}\n */\nexport const itWalletCredentialIssuerMetadata = z.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z\n .object({\n batch_size: z.number().int().positive(),\n })\n .optional(),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.url().optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n jwks: jsonWebKeySetSchema,\n nonce_endpoint: z.url().optional(),\n notification_endpoint: z.url().optional(),\n status_list_aggregation_endpoint: z.url().optional(),\n trust_frameworks_supported: z.array(\n z.union([\n z.literal(\"eudi_wallet\"),\n z.literal(\"it_cie\"),\n z.literal(\"it_wallet\"),\n z.literal(\"it_l2+document_proof\"),\n ]),\n ),\n});\n\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * IT Wallet Credential Verifier Metadata for OpenID Federation v1.3.3\n *\n * This schema defines the metadata structure for OpenID credential verifiers\n * (relying parties) in the Italian Wallet ecosystem, aligned with specification v1.3.3.\n *\n * Key changes from v1.0:\n * - Added `logo_uri` field (MIME type MUST be application/svg)\n * - Added `encrypted_response_enc_values_supported` for content encryption algorithms\n * - Renamed `vp_formats` to `vp_formats_supported`\n * - Enhanced VP formats structure with separate algorithm arrays:\n * - For SD-JWT: `sd-jwt_alg_values` and `kb-jwt_alg_values`\n * - For mso_mdoc: `issuerauth_alg_values` and `deviceauth_alg_values` (COSE algorithm numbers)\n * - Removed deprecated JARM fields: `authorization_signed_response_alg`,\n * `authorization_encrypted_response_alg`, `authorization_encrypted_response_enc`\n *\n * @see {@link https://italia.github.io/eidas-it-wallet-docs/versioned_docs/version-1.3.3/en/relying-party-metadata.html}\n */\nexport const itWalletCredentialVerifierMetadata = z.looseObject({\n application_type: z.literal(\"web\"),\n client_id: z.url(),\n client_name: z.string(),\n encrypted_response_enc_values_supported: z.array(z.string()).min(1),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n logo_uri: z.url(),\n request_uris: z.array(z.url()),\n response_uris: z.array(z.url()),\n vp_formats_supported: z.record(\n z.string(),\n z.object({\n alg: z.array(z.string()).optional(),\n deviceauth_alg_values: z.array(z.number()).optional(),\n issuerauth_alg_values: z.array(z.number()).optional(),\n \"kb-jwt_alg_values\": z.array(z.string()).optional(),\n \"sd-jwt_alg_values\": z.array(z.string()).optional(),\n }),\n ),\n});\n\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\n/**\n * Re-export the identifier from v1.0 as it remains unchanged\n */\nexport { itWalletCredentialVerifierIdentifier } from \"../v1.0/itWalletCredentialVerifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\nconst walletMetadataSchema = z.looseObject({\n authorization_endpoint: z.url(),\n client_id_prefixes_supported: z.array(\n z.enum([\"openid_federation\", \"x509_hash\"]),\n ),\n credential_offer_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n response_modes_supported: z.array(z.literal(\"query\")).min(1),\n response_types_supported: z.array(z.string()),\n vp_formats_supported: z.record(z.string(), z.looseObject({})),\n wallet_name: z.string(),\n});\n\nexport const itWalletSolutionEntityMetadata = z.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // logo_uri MIME type MUST be application/svg per spec; validated at fetch-time\n logo_uri: z.url(),\n signed_jwks_uri: z.url().optional(),\n wallet_metadata: walletMetadataSchema,\n});\n\nexport type ItWalletSolutionEntityMetadata = z.input<\n typeof itWalletSolutionEntityMetadata\n>;\n\nexport const itWalletSolutionEntityIdentifier = \"wallet_solution\";\n","import { z } from \"zod\";\n\nexport const constraintSchema = z.object({\n allowed_entity_types: z\n .array(\n z.string().refine((s) => s !== \"federation_entity\", {\n message: `Value cannot be \"federation_entity\"`,\n }),\n )\n .optional(),\n max_path_length: z.number().optional(),\n naming_constraints: z\n .object({\n excluded: z.array(z.string()).optional(),\n permitted: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\n/**\n *\n * {@link https://openid.net/specs/openid-federation-1_0.html#name-constraints | Constraints}\n *\n * Trust Anchors and Intermediate Entities MAY define constraining criteria that apply to their Subordinates. They are expressed in the constraints claim of a Subordinate Statement, as described in {@link https://openid.net/specs/openid-federation-1_0.html#entity-statement | Section 3}.\n *\n */\nexport type Constraint = z.input<typeof constraintSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\n/**\n * @example https://<federation_authority_domain>/trust_marks/<purpose>/<entity_type>\n */\nexport const trustMarkUrlSchema = z\n .url()\n .regex(/^https:\\/\\/[^/]+\\/trust_marks\\/[^/]+\\/[^/]+$/);\n\nexport const trustMarkSchema = z.object({\n trust_mark: z.string(),\n trust_mark_type: trustMarkUrlSchema,\n});\n\nexport type TrustMark = z.output<typeof trustMarkSchema>;\n\nexport const trustMarkIssuerSchema = z.record(z.string(), z.array(z.string()));\n\nexport type TrustMarkIssuer = z.input<typeof trustMarkIssuerSchema>;\n\nexport const trustMarkOwnerSchema = z.record(\n z.string(),\n z.object({\n jwks: jsonWebKeySetSchema,\n sub: z.string(),\n }),\n);\n\nexport type TrustMarkOwner = z.input<typeof trustMarkOwnerSchema>;\n","import type { z } from \"zod\";\n\nimport { itWalletEntityStatementClaimsSchema } from \"../entityStatement/itWalletEntityStatementClaims\";\n\nexport const itWalletEntityConfigurationClaimsSchema =\n itWalletEntityStatementClaimsSchema;\n\nexport type ItWalletEntityConfigurationClaimsOptions = z.input<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n\nexport type ItWalletEntityConfigurationClaims = z.output<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n","import { z } from \"zod\";\n\nexport const entityConfigurationHeaderSchema = z.looseObject({\n kid: z.string(),\n typ: z.literal(\"entity-statement+jwt\"),\n});\n\nexport type EntityConfigurationHeaderOptions = z.input<\n typeof entityConfigurationHeaderSchema\n>;\n\nexport type EntityConfigurationHeader = z.output<\n typeof entityConfigurationHeaderSchema\n>;\n"],"mappings":"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","names":["parseWithErrorHandling","z","z","key","z","z","z","z","MetadataMergeStrategy","MetadataOrderOfApplication","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","itWalletAuthorizationServerMetadata","z","itWalletAuthorizationServerIdentifier","z","z","CredentialDisplayMetadata","ClaimsMetadata","SupportedCredentialMetadata","itWalletCredentialIssuerMetadata","itWalletCredentialIssuerIdentifier","z","itWalletCredentialVerifierMetadata","z","z","z","z","itWalletAuthorizationServerIdentifier","itWalletAuthorizationServerMetadata","itWalletCredentialIssuerIdentifier","itWalletCredentialIssuerMetadata","itWalletCredentialVerifierMetadata","z","z","z","z","z","parseWithErrorHandling"]}
|
|
1
|
+
{"version":3,"sources":["../src/entityConfiguration/createItWalletEntityConfiguration.ts","../src/jsonWeb/getUsedJsonWebKey.ts","../src/jwk/jwk.ts","../src/metadata/common.ts","../src/metadata/operator/utils/create-policy-operator-schema.ts","../src/metadata/operator/utils/swap-validators.ts","../src/metadata/policy.ts","../src/metadata/operator/metadata-merge-strategy.ts","../src/metadata/operator/metadata-order-of-application.ts","../src/metadata/operator/standard/add.ts","../src/metadata/operator/standard/default.ts","../src/metadata/operator/standard/essential.ts","../src/metadata/operator/standard/oneOf.ts","../src/metadata/operator/standard/subsetOf.ts","../src/metadata/operator/standard/supersetOf.ts","../src/metadata/operator/standard/value.ts","../src/utils/create-entity.ts","../src/utils/encoding.ts","../src/entityStatement/itWalletEntityStatementClaims.ts","../src/metadata/itWalletMetadata.ts","../src/metadata/entity/itWalletFederationEntity.ts","../src/metadata/entity/v1.0/ItWalletProvider.ts","../src/metadata/entity/v1.0/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.0/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.0/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletAuthorizationServer.ts","../src/metadata/entity/v1.3/itWalletCredentialIssuer.ts","../src/metadata/entity/v1.3/itWalletCredentialVerifier.ts","../src/metadata/entity/v1.3/itWalletSolution.ts","../src/entityStatement/z-constraint.ts","../src/entityStatement/z-trustmark.ts","../src/entityConfiguration/itWalletEntityConfigurationClaims.ts","../src/entityConfiguration/z-entity-configuration-header.ts"],"sourcesContent":["import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport { Buffer } from \"buffer\";\n\nimport { getUsedJsonWebKey } from \"../jsonWeb/getUsedJsonWebKey\";\nimport { SignCallback, base64ToBase64URL } from \"../utils\";\nimport {\n ItWalletEntityConfigurationClaimsOptions,\n itWalletEntityConfigurationClaimsSchema,\n} from \"./itWalletEntityConfigurationClaims\";\nimport {\n EntityConfigurationHeaderOptions,\n entityConfigurationHeaderSchema,\n} from \"./z-entity-configuration-header\";\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\nfunction createJsonWebToken(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n signature: Uint8Array,\n) {\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const encodedSignature = base64ToBase64URL(\n Buffer.from(signature).toString(\"base64\"),\n );\n\n return `${encodedHeader}.${encodedPayload}.${encodedSignature}`;\n}\n\nfunction createJwtSignableInput(\n header: Record<string, unknown>,\n payload: Record<string, unknown>,\n) {\n if (Object.keys(header).length === 0) {\n throw new Error(\"Can not create JWT with an empty header\");\n }\n\n if (Object.keys(payload).length === 0) {\n throw new Error(\"Can not create JWT with an empty payload\");\n }\n\n const encodedHeader = base64ToBase64URL(\n Buffer.from(JSON.stringify(header)).toString(\"base64\"),\n );\n const encodedPayload = base64ToBase64URL(\n Buffer.from(JSON.stringify(payload)).toString(\"base64\"),\n );\n\n const toBeSignedString = `${encodedHeader}.${encodedPayload}`;\n\n return new Uint8Array(Buffer.from(toBeSignedString));\n}\n","import { parseWithErrorHandling } from \"@pagopa/io-wallet-utils\";\nimport z from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\nexport const getUsedJsonWebKey = (\n header: Record<string, unknown>,\n claims: Record<string, unknown>,\n) => {\n const validatedHeader = parseWithErrorHandling(\n z.looseObject({\n kid: z.string(),\n }),\n header,\n \"invalid header claims. Should contain a key id\",\n );\n\n const validatedClaims = parseWithErrorHandling(\n z.looseObject({\n jwks: jsonWebKeySetSchema,\n }),\n claims,\n \"Invalid payload claims. Should contain a json web key set\",\n );\n\n // Get the key from the `claims.jwks` by the `header.kid`\n const key = validatedClaims.jwks?.keys.find(\n (key) => key.kid === validatedHeader.kid,\n );\n\n if (!key) {\n throw new Error(\n `key with id: '${header.kid}' could not be found in the claims`,\n );\n }\n\n return key;\n};\n","import { zCertificateChain } from \"@pagopa/io-wallet-oauth2\";\nimport { z } from \"zod\";\n\nexport const jsonWebKeySchema = z.looseObject({\n alg: z.string().optional(),\n key_ops: z.array(z.string()).optional(),\n kid: z.string(),\n kty: z.string(),\n use: z.string().optional(),\n x5c: zCertificateChain.optional(),\n x5t: z.string().optional(),\n \"x5t#S256\": z.string().optional(),\n x5u: z.string().optional(),\n});\n\nexport type JsonWebKey = z.input<typeof jsonWebKeySchema>;\n\nexport const jsonWebKeySetSchema = z.object({\n keys: z.array(jsonWebKeySchema),\n});\n\nexport type jsonWebKeySet = z.infer<typeof jsonWebKeySetSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\nexport const commonMetadataSchema = z.object({\n contacts: z.array(z.string()).min(1).optional(),\n homepage_uri: z.url().optional(),\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n logo_uri: z.url().optional(),\n organization_name: z.string().optional(),\n policy_uri: z.url().optional(),\n signed_jwks_uri: z.url().optional(),\n});\n","import type { MetadataOperator } from \"../metadata-operator\";\n\nexport const createPolicyOperatorSchema = <TKey extends string>(\n operator: MetadataOperator<TKey>,\n) =>\n ({\n /**\n * The key of the operator which is used to identify the operator\n */\n key: operator.key,\n /**\n * The merge strategy of the operator\n */\n mergeStrategy: operator.mergeStrategy,\n /**\n * The operator itself\n */\n operator: operator,\n /**\n * The schema for the operator itself so for essential it is only a boolean\n */\n operatorSchema: operator.operatorJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n /**\n * The order of application of the operator\n */\n orderOfApplication: operator.orderOfApplication,\n /**\n * The schema for the parameter the operator can be applied to so when the policy is targeting federation_entity we can check if the policy can handle that property\n */\n parameterSchema: operator.parameterJsonValues\n .reduce((acc, schema) => acc.or(schema))\n .optional(),\n }) as const;\n","import { z } from \"zod\";\n\nexport const swapValidators = <T extends z.ZodRawShape>(\n schema: z.ZodObject<T>,\n newValidator: z.ZodSchema,\n): z.ZodObject<Record<string, typeof newValidator>> =>\n z.object(\n Object.keys(schema.shape).reduce(\n (acc, key) => {\n acc[key as keyof typeof acc] = newValidator;\n return acc;\n },\n {} as { [k in keyof T]: z.ZodSchema },\n ),\n );\n","import { z } from \"zod\";\n\nimport {\n addOperator,\n defaultOperator,\n essentialOperator,\n oneOfOperator,\n subsetOfOperator,\n supersetOfOperator,\n valueOperator,\n} from \"./operator\";\n\nexport const allSupportedPolicies = {\n [addOperator.key]: addOperator,\n [defaultOperator.key]: defaultOperator,\n [essentialOperator.key]: essentialOperator,\n [oneOfOperator.key]: oneOfOperator,\n [subsetOfOperator.key]: subsetOfOperator,\n [supersetOfOperator.key]: supersetOfOperator,\n [valueOperator.key]: valueOperator,\n} as const;\n\nexport type SupportedPolicyKey = keyof typeof allSupportedPolicies;\n\nexport const isExistingPolicyKey = (key: string): key is SupportedPolicyKey =>\n Object.hasOwn(allSupportedPolicies, key);\n\nexport const metadataPolicySchema = z\n .object(\n Object.entries(allSupportedPolicies).reduce(\n (acc, [key, policy]) => ({ ...acc, [key]: policy.operatorSchema }),\n {} as {\n [key in keyof typeof allSupportedPolicies]: (typeof allSupportedPolicies)[key][\"operatorSchema\"];\n },\n ),\n )\n .and(z.record(z.string(), z.any()))\n .superRefine((data, ctx) => {\n const dataKeys = Object.keys(data);\n const supportedDataKeys = dataKeys.filter(isExistingPolicyKey);\n\n for (const dataKey of supportedDataKeys) {\n const { operator } = allSupportedPolicies[dataKey];\n\n if (\n supportedDataKeys.some(\n (key) =>\n key !== operator.key && !operator.canBeCombinedWith.includes(key),\n )\n ) {\n ctx.addIssue({\n code: \"custom\",\n message: `policy operator '${\n operator.key\n }' can only be combined with one of: [${operator.canBeCombinedWith.join(\n \", \",\n )}]. keys: [${Object.keys(data).join(\",\")}]`,\n });\n }\n }\n });\n\nexport type MetadataPolicyOperator = z.input<typeof metadataPolicySchema>;\n","export enum MetadataMergeStrategy {\n /**\n *\n * The result of merging the values of two these operators is the intersection of the operator values. If the intersection is empty, this MUST result in a policy error.\n *\n */\n Intersection = 2,\n /**\n *\n * Allowed only when the operator values are equal. If not, this MUST result in a policy error.\n *\n */\n OperatorValuesEqual = 0,\n /**\n *\n * If a Superior has specified essential=true, then a Subordinate MUST NOT change that. If a Superior has specified essential=false, then a Subordinate is allowed to change that to essential=true. If a Superior has not specified essential, then a Subordinate can set essential to true or false. If those conditions are not met, this MUST result in a policy error.\n *\n */\n SuperiorFollowsIfTrue = 3,\n /**\n *\n * The result of merging the values of two these operators is the union of the operator values.\n *\n */\n Union = 1,\n}\n","/* eslint-disable perfectionist/sort-enums */\n\nexport enum MetadataOrderOfApplication {\n First = 0,\n AfterValue = 1,\n AfterAdd = 2,\n AfterDefault = 3,\n AfterOneOf = 4,\n AfterSubsetOf = 5,\n Last = 6,\n}\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const addOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"add\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterValue,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const defaultOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"one_of\", \"subset_of\", \"superset_of\", \"essential\"],\n key: \"default\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterAdd,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const essentialOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\n \"add\",\n \"default\",\n \"one_of\",\n \"subset_of\",\n \"superset_of\",\n \"value\",\n ],\n key: \"essential\",\n mergeStrategy: MetadataMergeStrategy.SuperiorFollowsIfTrue,\n operatorJsonValues: [z.boolean()],\n orderOfApplication: MetadataOrderOfApplication.Last,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.union([z.string(), z.number()])),\n z.unknown(),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const oneOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"default\", \"essential\"],\n key: \"one_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterDefault,\n parameterJsonValues: [\n z.string(),\n // TODO: See how we want to we handle the comparison of objects\n // z.record(z.string().or(z.number()), z.unknown()),\n z.number(),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const subsetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"superset_of\", \"essential\"],\n key: \"subset_of\",\n mergeStrategy: MetadataMergeStrategy.Intersection,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterOneOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const supersetOfOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"add\", \"default\", \"subset_of\", \"essential\"],\n key: \"superset_of\",\n mergeStrategy: MetadataMergeStrategy.Union,\n operatorJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n orderOfApplication: MetadataOrderOfApplication.AfterSubsetOf,\n parameterJsonValues: [\n z.array(z.string()),\n // TODO: See how we want to we handle the comparison of objects\n // z.array(z.record(z.string().or(z.number()), z.unknown())),\n z.array(z.number()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { MetadataMergeStrategy } from \"../metadata-merge-strategy\";\nimport { MetadataOrderOfApplication } from \"../metadata-order-of-application\";\nimport { createPolicyOperatorSchema } from \"../utils\";\n\nexport const valueOperator = createPolicyOperatorSchema({\n canBeCombinedWith: [\"essential\"],\n key: \"value\",\n mergeStrategy: MetadataMergeStrategy.OperatorValuesEqual,\n operatorJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string().or(z.number()), z.unknown()),\n z.array(z.unknown()),\n z.null(),\n ],\n orderOfApplication: MetadataOrderOfApplication.First,\n parameterJsonValues: [\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), z.string().or(z.number())),\n z.array(z.unknown()),\n ],\n});\n","import { z } from \"zod\";\n\nimport { commonMetadataSchema } from \"../metadata/common\";\nimport { swapValidators } from \"../metadata/operator/utils\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\n\nexport const createEntity = <T extends string, S extends z.ZodRawShape>({\n additionalValidation = {} as S,\n identifier,\n passThroughUnknownProperties = false,\n}: {\n additionalValidation?: S;\n identifier: T;\n passThroughUnknownProperties?: boolean;\n}) => {\n const schema = commonMetadataSchema.extend(additionalValidation);\n return {\n identifier,\n policySchema: swapValidators(schema, metadataPolicySchema.optional()),\n schema: passThroughUnknownProperties ? schema.loose() : schema,\n };\n};\n","export function base64ToBase64URL(base64: string) {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk/jwk\";\nimport { itWalletMetadataSchema } from \"../metadata/itWalletMetadata\";\nimport { metadataPolicySchema } from \"../metadata/policy\";\nimport { constraintSchema } from \"./z-constraint\";\nimport {\n trustMarkIssuerSchema,\n trustMarkOwnerSchema,\n trustMarkSchema,\n} from \"./z-trustmark\";\n\nconst baseSchema = z.object({\n authority_hints: z.array(z.url()).optional(),\n constraints: constraintSchema.optional(),\n crit: z.array(z.string()).optional(),\n exp: z\n .number()\n .describe(\"Expiration time as a UNIX timestamp in seconds since epoch\"),\n iat: z\n .number()\n .describe(\"Issued-at time as a UNIX timestamp in seconds since epoch\"),\n iss: z.string(),\n jwks: jsonWebKeySetSchema,\n metadata: itWalletMetadataSchema.optional(),\n metadata_policy: z\n .record(z.string(), z.record(z.string(), metadataPolicySchema).optional())\n .optional(),\n metadata_policy_crit: z.array(z.string()).optional(),\n source_endpoint: z.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\ntype ItWalletEntityStatementClaimsOptions = z.input<typeof baseSchema>;\n\ntype ItWalletEntityStatementClaims = z.output<typeof baseSchema>;\n\nconst entityStatementClaimsSchema = baseSchema.loose().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\n// The explicit type annotation here is necessary to avoid this node exceeds the maximum length the compiler will serialize.\nexport const itWalletEntityStatementClaimsSchema: z.ZodType<\n ItWalletEntityStatementClaims,\n ItWalletEntityStatementClaimsOptions\n> = entityStatementClaimsSchema;\n","import { z } from \"zod\";\n\nimport {\n itWalletAuthorizationServerIdentifier,\n itWalletAuthorizationServerIdentifierV1_3,\n itWalletAuthorizationServerMetadata,\n itWalletAuthorizationServerMetadataV1_3,\n itWalletCredentialIssuerIdentifier,\n itWalletCredentialIssuerIdentifierV1_3,\n itWalletCredentialIssuerMetadata,\n itWalletCredentialIssuerMetadataV1_3,\n itWalletCredentialVerifierIdentifier,\n itWalletCredentialVerifierIdentifierV1_3,\n itWalletCredentialVerifierMetadata,\n itWalletCredentialVerifierMetadataV1_3,\n itWalletFederationEntityIdentifier,\n itWalletFederationEntityMetadata,\n itWalletProviderEntityIdentifier,\n itWalletProviderEntityMetadata,\n itWalletSolutionEntityIdentifierV1_3,\n itWalletSolutionEntityMetadataV1_3,\n} from \"./entity\";\n\n// v1.0 combined metadata\nexport const itWalletMetadataV1_0 = z.strictObject({\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\n// v1.3 combined metadata (stubs re-export v1.0 schemas for some entities)\nexport const itWalletMetadataV1_3 = z.strictObject({\n [itWalletAuthorizationServerIdentifierV1_3]:\n itWalletAuthorizationServerMetadataV1_3.optional(),\n [itWalletCredentialIssuerIdentifierV1_3]:\n itWalletCredentialIssuerMetadataV1_3.optional(),\n [itWalletCredentialVerifierIdentifierV1_3]:\n itWalletCredentialVerifierMetadataV1_3.optional(),\n [itWalletFederationEntityIdentifier]:\n itWalletFederationEntityMetadata.optional(),\n [itWalletSolutionEntityIdentifierV1_3]:\n itWalletSolutionEntityMetadataV1_3.optional(),\n});\n\n// Union — used by entity statement / entity configuration claims\n// v1.3 is tried first so that v1.3-specific fields are preserved during parsing\nexport const itWalletMetadataSchema =\n itWalletMetadataV1_3.or(itWalletMetadataV1_0);\n\nexport type MetadataV1_0 = z.input<typeof itWalletMetadataV1_0>;\nexport type MetadataV1_3 = z.input<typeof itWalletMetadataV1_3>;\nexport type Metadata = MetadataV1_0 | MetadataV1_3;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../jwk\";\nimport { createEntity } from \"../../utils\";\n\nexport const federationEntityMetadata = createEntity({\n additionalValidation: {\n federation_fetch_endpoint: z.url().optional(),\n federation_historical_keys_endpoint: z.url().optional(),\n federation_list_endpoint: z.url().optional(),\n federation_resolve_endpoint: z.url().optional(),\n federation_trust_mark_endpoint: z.url().optional(),\n federation_trust_mark_list_endpoint: z.url().optional(),\n federation_trust_mark_status_endpoint: z.url().optional(),\n },\n identifier: \"federation_entity\",\n});\n\nexport type FederationEntityMetadata = z.input<\n (typeof federationEntityMetadata)[\"schema\"]\n>;\n\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 jwks: jsonWebKeySetSchema.optional(),\n tos_uri: z.url().optional(),\n })\n .loose();\n\nexport type ItWalletFederationEntityMetadata = z.input<\n typeof itWalletFederationEntityMetadata\n>;\n\nexport const itWalletFederationEntityIdentifier =\n federationEntityMetadata.identifier;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // -- 5.2.1 Extensions for JWK Sets in Entity Metadata\n signed_jwks_uri: z.url().optional(),\n});\n\nexport type ItWalletProviderEntityMetadata = z.input<\n typeof itWalletProviderEntityMetadata\n>;\n\nexport const itWalletProviderEntityIdentifier = \"wallet_provider\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.boolean().optional(),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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 */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\nexport const CredentialDisplayMetadata = z.object({\n locale: z.string(),\n name: z.string(),\n});\n\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const 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\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z.object({\n batch_size: z.number().int(),\n }),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_hash_alg_supported: z.string(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.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: jsonWebKeySetSchema,\n nonce_endpoint: z.url(),\n notification_endpoint: z.url(),\n revocation_endpoint: z.url(),\n status_assertion_endpoint: z.url(),\n status_attestation_endpoint: z.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\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } 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.looseObject({\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.url(),\n client_name: z.string(),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n request_uris: z.array(z.url()),\n response_uris: z.array(z.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\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\nexport const itWalletCredentialVerifierIdentifier =\n \"openid_credential_verifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.3/en/credential-issuer-solution.html#metadata-for-oauth-authorization-server}\n *\n */\nexport const itWalletAuthorizationServerMetadata = z.looseObject({\n acr_values_supported: z.array(z.string()),\n authorization_endpoint: z.url(),\n authorization_signing_alg_values_supported: z.array(z.string()),\n client_attestation_pop_signing_alg_values_supported: z\n .array(z.string())\n .min(1),\n client_attestation_signing_alg_values_supported: z.array(z.string()).min(1),\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 dpop_signing_alg_values_supported: z.array(z.string()).min(1),\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.url(),\n jwks: jsonWebKeySetSchema,\n pushed_authorization_request_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n require_signed_request_object: z.literal(true),\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.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\nexport type ItWalletAuthorizationServerMetadata = z.input<\n typeof itWalletAuthorizationServerMetadata\n>;\n\nexport const itWalletAuthorizationServerIdentifier =\n \"oauth_authorization_server\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * Image metadata with integrity hash support\n * Follows IT Wallet v1.3 specification\n */\nexport type ImageMetadata = z.infer<typeof ImageMetadata>;\nexport const ImageMetadata = z.object({\n alt_text: z.string().optional(),\n uri: z.url(),\n \"uri#integrity\": z.string().optional(),\n});\n\n/**\n * Enhanced credential display metadata\n * Supports background images, watermarks, and colors\n */\nexport type CredentialDisplayMetadata = z.infer<\n typeof CredentialDisplayMetadata\n>;\n\nexport const CredentialDisplayMetadata = z.object({\n background_color: z.string().optional(),\n background_image: ImageMetadata.optional(),\n description: z.string().optional(),\n locale: z.string(),\n logo: ImageMetadata.optional(),\n name: z.string(),\n watermark_image: ImageMetadata.optional(),\n});\n\n/**\n * Claim display metadata\n */\nexport type ClaimDisplayMetadata = z.infer<typeof ClaimDisplayMetadata>;\nexport const ClaimDisplayMetadata = z.object({\n description: z.string().optional(),\n locale: z.string(),\n name: z.string(),\n});\n\n/**\n * Enhanced claims metadata with selective disclosure and mandatory flags\n */\nexport type ClaimsMetadata = z.infer<typeof ClaimsMetadata>;\nexport const ClaimsMetadata = z.object({\n display: z.array(ClaimDisplayMetadata).optional(),\n mandatory: z.boolean().optional(),\n path: z.array(z.union([z.string(), z.number(), z.null()])),\n sd: z.enum([\"always\", \"never\"]).optional(),\n});\n\n/**\n * Complete credential metadata structure\n * This is the new mandatory field in credential_configurations_supported\n */\nexport type CredentialMetadata = z.infer<typeof CredentialMetadata>;\nexport const CredentialMetadata = z.object({\n claims: z.array(ClaimsMetadata).optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n});\n\nexport const zKeyStorageLevel = z.enum([\n \"iso_18045_high\",\n \"iso_18045_moderate\",\n \"iso_18045_enhanced-basic\",\n \"iso_18045_basic\",\n]);\n\nexport type KeyStorageLevel = z.infer<typeof zKeyStorageLevel>;\n\nexport const zUserAuthenticationLevel = zKeyStorageLevel;\nexport type UserAuthenticationLevel = KeyStorageLevel;\n\n/**\n * Enhanced proof types support with optional key attestations\n * References OpenID4VCI Appendix F.1 and Section 12.2\n */\nexport type ProofTypesSupported = z.infer<typeof ProofTypesSupported>;\nexport const ProofTypesSupported = z.object({\n jwt: z.object({\n key_attestations_required: z\n .object({\n key_storage: z.array(zKeyStorageLevel).min(1).optional(),\n user_authentication: z\n .array(zUserAuthenticationLevel)\n .min(1)\n .optional(),\n })\n .optional(),\n proof_signing_alg_values_supported: z.array(z.string()),\n }),\n});\n\n/**\n * Authentic sources metadata linking to trusted data sources\n */\nexport type AuthenticSources = z.infer<typeof AuthenticSources>;\nexport const AuthenticSources = z.object({\n dataset_id: z.string(),\n entity_id: z.string(),\n});\n\n/**\n * Enhanced metadata for a credential supported by an Issuer\n * Includes new mandatory credential_metadata, schema_id, and authentic_sources\n */\nexport type SupportedCredentialMetadata = z.infer<\n typeof SupportedCredentialMetadata\n>;\n\nexport const 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 authentic_sources: AuthenticSources,\n credential_metadata: CredentialMetadata,\n credential_signing_alg_values_supported: z.array(z.string()),\n cryptographic_binding_methods_supported: z.array(z.string()),\n proof_types_supported: ProofTypesSupported,\n schema_id: z.string(),\n scope: z.string(),\n }),\n);\n\n/**\n * IT Wallet Credential Issuer Metadata for v1.3 specification\n *\n * Changes from v1.0:\n * - REMOVED: revocation_endpoint, status_assertion_endpoint, credential_hash_alg_supported, evidence_supported\n * - ADDED: batch_credential_issuance, status_list_aggregation_endpoint\n * - MODIFIED: credential_configurations_supported now requires credential_metadata, schema_id, authentic_sources\n * - MODIFIED: proof_types_supported supports key_attestations_required\n *\n * {@link https://italia.github.io/eid-wallet-it-docs/releases/1.3.0/en/credential-issuer-solution.html#metadata-for-openid-credential-issuer}\n */\nexport const itWalletCredentialIssuerMetadata = z.looseObject({\n authorization_servers: z.array(z.url()).optional(),\n batch_credential_issuance: z\n .object({\n batch_size: z.number().int().positive(),\n })\n .optional(),\n credential_configurations_supported: z.record(\n z.string(),\n SupportedCredentialMetadata,\n ),\n credential_endpoint: z.url(),\n credential_issuer: z.url(),\n deferred_credential_endpoint: z.url().optional(),\n display: z.array(CredentialDisplayMetadata).optional(),\n jwks: jsonWebKeySetSchema,\n nonce_endpoint: z.url().optional(),\n notification_endpoint: z.url().optional(),\n status_list_aggregation_endpoint: z.url().optional(),\n trust_frameworks_supported: z.array(\n z.union([\n z.literal(\"eudi_wallet\"),\n z.literal(\"it_cie\"),\n z.literal(\"it_wallet\"),\n z.literal(\"it_l2+document_proof\"),\n ]),\n ),\n});\n\nexport type ItWalletCredentialIssuerMetadata = z.input<\n typeof itWalletCredentialIssuerMetadata\n>;\n\nexport const itWalletCredentialIssuerIdentifier = \"openid_credential_issuer\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\n/**\n * IT Wallet Credential Verifier Metadata for OpenID Federation v1.3.3\n *\n * This schema defines the metadata structure for OpenID credential verifiers\n * (relying parties) in the Italian Wallet ecosystem, aligned with specification v1.3.3.\n *\n * Key changes from v1.0:\n * - Added `logo_uri` field (MIME type MUST be application/svg)\n * - Added `encrypted_response_enc_values_supported` for content encryption algorithms\n * - Renamed `vp_formats` to `vp_formats_supported`\n * - Enhanced VP formats structure with separate algorithm arrays:\n * - For SD-JWT: `sd-jwt_alg_values` and `kb-jwt_alg_values`\n * - For mso_mdoc: `issuerauth_alg_values` and `deviceauth_alg_values` (COSE algorithm numbers)\n * - Removed deprecated JARM fields: `authorization_signed_response_alg`,\n * `authorization_encrypted_response_alg`, `authorization_encrypted_response_enc`\n *\n * @see {@link https://italia.github.io/eidas-it-wallet-docs/versioned_docs/version-1.3.3/en/relying-party-metadata.html}\n */\nexport const itWalletCredentialVerifierMetadata = z.looseObject({\n application_type: z.literal(\"web\"),\n client_id: z.url(),\n client_name: z.string(),\n encrypted_response_enc_values_supported: z.array(z.string()).min(1),\n erasure_endpoint: z.url().optional(),\n jwks: jsonWebKeySetSchema,\n logo_uri: z.url(),\n request_uris: z.array(z.url()),\n response_uris: z.array(z.url()),\n vp_formats_supported: z.record(\n z.string(),\n z.object({\n alg: z.array(z.string()).optional(),\n deviceauth_alg_values: z.array(z.number()).optional(),\n issuerauth_alg_values: z.array(z.number()).optional(),\n \"kb-jwt_alg_values\": z.array(z.string()).optional(),\n \"sd-jwt_alg_values\": z.array(z.string()).optional(),\n }),\n ),\n});\n\nexport type ItWalletCredentialVerifierMetadata = z.input<\n typeof itWalletCredentialVerifierMetadata\n>;\n\n/**\n * Re-export the identifier from v1.0 as it remains unchanged\n */\nexport { itWalletCredentialVerifierIdentifier } from \"../v1.0/itWalletCredentialVerifier\";\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../../../jwk\";\n\nconst walletMetadataSchema = z.looseObject({\n authorization_endpoint: z.url(),\n client_id_prefixes_supported: z.array(\n z.enum([\"openid_federation\", \"x509_hash\"]),\n ),\n credential_offer_endpoint: z.url(),\n request_object_signing_alg_values_supported: z.array(z.string()),\n response_modes_supported: z.array(z.literal(\"query\")).min(1),\n response_types_supported: z.array(z.string()),\n vp_formats_supported: z.record(z.string(), z.looseObject({})),\n wallet_name: z.string(),\n});\n\nexport const itWalletSolutionEntityMetadata = z.looseObject({\n jwks: jsonWebKeySetSchema.optional(),\n jwks_uri: z.url().optional(),\n // logo_uri MIME type MUST be application/svg per spec; validated at fetch-time\n logo_uri: z.url(),\n signed_jwks_uri: z.url().optional(),\n wallet_metadata: walletMetadataSchema,\n});\n\nexport type ItWalletSolutionEntityMetadata = z.input<\n typeof itWalletSolutionEntityMetadata\n>;\n\nexport const itWalletSolutionEntityIdentifier = \"wallet_solution\";\n","import { z } from \"zod\";\n\nexport const constraintSchema = z.object({\n allowed_entity_types: z\n .array(\n z.string().refine((s) => s !== \"federation_entity\", {\n message: `Value cannot be \"federation_entity\"`,\n }),\n )\n .optional(),\n max_path_length: z.number().optional(),\n naming_constraints: z\n .object({\n excluded: z.array(z.string()).optional(),\n permitted: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\n/**\n *\n * {@link https://openid.net/specs/openid-federation-1_0.html#name-constraints | Constraints}\n *\n * Trust Anchors and Intermediate Entities MAY define constraining criteria that apply to their Subordinates. They are expressed in the constraints claim of a Subordinate Statement, as described in {@link https://openid.net/specs/openid-federation-1_0.html#entity-statement | Section 3}.\n *\n */\nexport type Constraint = z.input<typeof constraintSchema>;\n","import { z } from \"zod\";\n\nimport { jsonWebKeySetSchema } from \"../jwk\";\n\n/**\n * @example https://<federation_authority_domain>/trust_marks/<purpose>/<entity_type>\n */\nexport const trustMarkUrlSchema = z\n .url()\n .regex(/^https:\\/\\/[^/]+\\/trust_marks\\/[^/]+\\/[^/]+$/);\n\nexport const trustMarkSchema = z.object({\n trust_mark: z.string(),\n trust_mark_type: trustMarkUrlSchema,\n});\n\nexport type TrustMark = z.output<typeof trustMarkSchema>;\n\nexport const trustMarkIssuerSchema = z.record(z.string(), z.array(z.string()));\n\nexport type TrustMarkIssuer = z.input<typeof trustMarkIssuerSchema>;\n\nexport const trustMarkOwnerSchema = z.record(\n z.string(),\n z.object({\n jwks: jsonWebKeySetSchema,\n sub: z.string(),\n }),\n);\n\nexport type TrustMarkOwner = z.input<typeof trustMarkOwnerSchema>;\n","import type { z } from \"zod\";\n\nimport { itWalletEntityStatementClaimsSchema } from \"../entityStatement/itWalletEntityStatementClaims\";\n\nexport const itWalletEntityConfigurationClaimsSchema =\n itWalletEntityStatementClaimsSchema;\n\nexport type ItWalletEntityConfigurationClaimsOptions = z.input<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n\nexport type ItWalletEntityConfigurationClaims = z.output<\n typeof itWalletEntityConfigurationClaimsSchema\n>;\n","import { z } from \"zod\";\n\nexport const entityConfigurationHeaderSchema = z.looseObject({\n kid: z.string(),\n typ: z.literal(\"entity-statement+jwt\"),\n});\n\nexport type EntityConfigurationHeaderOptions = z.input<\n typeof entityConfigurationHeaderSchema\n>;\n\nexport type EntityConfigurationHeader = z.output<\n typeof entityConfigurationHeaderSchema\n>;\n"],"mappings":"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","names":["parseWithErrorHandling","z","z","key","z","z","z","z","MetadataMergeStrategy","MetadataOrderOfApplication","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","itWalletAuthorizationServerMetadata","z","itWalletAuthorizationServerIdentifier","z","z","CredentialDisplayMetadata","ClaimsMetadata","SupportedCredentialMetadata","itWalletCredentialIssuerMetadata","itWalletCredentialIssuerIdentifier","z","itWalletCredentialVerifierMetadata","z","z","z","z","itWalletAuthorizationServerIdentifier","itWalletAuthorizationServerMetadata","itWalletCredentialIssuerIdentifier","itWalletCredentialIssuerMetadata","itWalletCredentialVerifierMetadata","z","z","z","z","z","parseWithErrorHandling"]}
|