ubid-common 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Paradigma
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Paradigma
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -17,4 +17,4 @@ The goal of this package is to provide a single, consistent implementation of co
17
17
  Install the public npm package:
18
18
 
19
19
  ```bash
20
- npm install ubid-common
20
+ npm install ubid-common
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Canonical identifiers and data contract for UbIDExtended v1.
3
+ *
4
+ * Keep this module free of issuer, wallet, or verifier runtime dependencies so
5
+ * every UbID component can consume the exact same names and limits.
6
+ */
7
+ export declare const UBID_EXTENDED_V1_CONFIGURATION_ID: "ubid_extended_v1";
8
+ export declare const UBID_EXTENDED_V1_VCT: "https://issuer.ubid.app/credentials/ubid-extended/v1";
9
+ export declare const UBID_EXTENDED_V1_ISSUER: "https://issuer.ubid.app";
10
+ export declare const UBID_EXTENDED_V1_SCOPE: "ubid:extended:v1";
11
+ export declare const UBID_EXTENDED_V1_FORMAT: "dc+sd-jwt";
12
+ export declare const UBID_EXTENDED_V1_SIGNING_ALG: "ES256K";
13
+ export declare const UBID_EXTENDED_V1_DISCLOSURE_ALG: "sha-256";
14
+ export declare const UBID_EXTENDED_V1_TTL_SECONDS: number;
15
+ export declare const UBID_EXTENDED_V1_CONSENT_POLICY_VERSION: "ubid-consent-v1";
16
+ export declare const UBID_EXTENDED_V1_LIMITS: Readonly<{
17
+ readonly name: 120;
18
+ readonly description: 1000;
19
+ readonly socialNetworks: 20;
20
+ readonly url: 2048;
21
+ readonly addressLines: 5;
22
+ readonly addressLine: 200;
23
+ readonly publicDisplayName: 240;
24
+ readonly publicHeadline: 180;
25
+ readonly publicAbout: 2400;
26
+ readonly publicLocation: 180;
27
+ readonly publicContacts: 4;
28
+ readonly publicSocialNetworks: 12;
29
+ readonly publicServices: 12;
30
+ readonly featuredCredentialIds: 8;
31
+ readonly featuredCredentialId: 512;
32
+ }>;
33
+ export declare const UBID_EXTENDED_V1_ASSURANCE_LEVELS: readonly ["self_asserted", "holder_provided", "holder_signed", "issuer_verified", "document_verified"];
34
+ export type UbidAssuranceLevel = (typeof UBID_EXTENDED_V1_ASSURANCE_LEVELS)[number];
35
+ export interface UbidAssurance {
36
+ level: UbidAssuranceLevel;
37
+ method: string;
38
+ verified_at?: string;
39
+ asserted_at?: string;
40
+ evidence_ref?: string;
41
+ }
42
+ export declare const UBID_EXTENDED_V1_SOCIAL_NETWORK_TYPES: readonly ["linkedin", "x", "github", "instagram", "facebook", "website", "other"];
43
+ export type UbidSocialNetworkType = (typeof UBID_EXTENDED_V1_SOCIAL_NETWORK_TYPES)[number];
44
+ export interface UbidSocialNetwork {
45
+ type: UbidSocialNetworkType;
46
+ url: string;
47
+ label?: string;
48
+ }
49
+ export interface UbidExtendedProfile {
50
+ description?: string;
51
+ social_networks?: UbidSocialNetwork[];
52
+ updated_at: string;
53
+ assurance: UbidAssurance;
54
+ }
55
+ export interface UbidPostalAddress {
56
+ schema_version: 1;
57
+ country_code: string;
58
+ address_lines: string[];
59
+ dependent_locality?: string;
60
+ locality?: string;
61
+ administrative_area?: string;
62
+ postal_code?: string;
63
+ language_code?: string;
64
+ assurance: UbidAssurance & {
65
+ level: "self_asserted";
66
+ };
67
+ }
68
+ export interface UbidAvatarReference {
69
+ uri: string;
70
+ sha256: string;
71
+ media_type: "image/webp";
72
+ width: number;
73
+ height: number;
74
+ updated_at: string;
75
+ assurance: UbidAssurance & {
76
+ level: "holder_provided";
77
+ };
78
+ }
79
+ export declare const UBID_EXTENDED_V1_PUBLIC_CONTACT_TYPES: readonly ["email", "phone_number", "whatsapp", "website"];
80
+ export type UbidPublicContactType = (typeof UBID_EXTENDED_V1_PUBLIC_CONTACT_TYPES)[number];
81
+ export interface UbidPublicContact {
82
+ type: UbidPublicContactType;
83
+ value: string;
84
+ }
85
+ export interface UbidPublicService {
86
+ id: string;
87
+ title: string;
88
+ description?: string;
89
+ url?: string;
90
+ }
91
+ export interface UbidPublicProfile {
92
+ enabled: true;
93
+ display_name: string;
94
+ headline?: string;
95
+ about?: string;
96
+ location?: string;
97
+ locale: string;
98
+ theme?: string;
99
+ business_availability: boolean;
100
+ contacts: UbidPublicContact[];
101
+ social_networks: UbidSocialNetwork[];
102
+ services: UbidPublicService[];
103
+ featured_credential_ids: string[];
104
+ canonical_url: string;
105
+ projection_digest: string;
106
+ updated_at: string;
107
+ assurance: UbidAssurance & {
108
+ level: "holder_signed";
109
+ };
110
+ }
111
+ export interface UbidExtendedV1Claims {
112
+ given_name: string;
113
+ family_name: string;
114
+ ubid_did: string;
115
+ identity_assurance: UbidAssurance;
116
+ second_surname?: string;
117
+ country?: string;
118
+ email?: string;
119
+ email_assurance?: UbidAssurance;
120
+ phone_number?: string;
121
+ phone_assurance?: UbidAssurance;
122
+ profile?: UbidExtendedProfile;
123
+ postal_address?: UbidPostalAddress;
124
+ avatar?: UbidAvatarReference;
125
+ public_profile?: UbidPublicProfile;
126
+ stacks_did?: string;
127
+ stx_address?: string;
128
+ btc_native_segwit_address?: string;
129
+ btc_taproot_address?: string;
130
+ blockchain_assurance?: UbidAssurance;
131
+ }
132
+ export declare const UBID_EXTENDED_V1_CONSENT_GROUPS: readonly ["identity_core", "identity_additional", "contact", "profile", "postal_address", "avatar", "public_profile", "blockchain"];
133
+ export type UbidExtendedConsentGroup = (typeof UBID_EXTENDED_V1_CONSENT_GROUPS)[number];
134
+ export interface UbidExtendedConsentSelection {
135
+ selected_groups: UbidExtendedConsentGroup[];
136
+ policy_version: typeof UBID_EXTENDED_V1_CONSENT_POLICY_VERSION;
137
+ }
138
+ export declare const UBID_EXTENDED_V1_GROUP_CLAIMS: Readonly<Record<UbidExtendedConsentGroup, readonly (keyof UbidExtendedV1Claims)[]>>;
139
+ export declare const UBID_EXTENDED_V1_FORBIDDEN_CLAIM_KEYS: readonly ["_id", "_rev", "avatar_base64", "credential", "c_nonce", "documentIdentity", "mnemonic", "password", "pre-authorized_code", "private_key", "profilePqcPublicKey", "refresh_token", "seed", "tx_code", "vcSdJwt"];
140
+ export declare const UBID_EXTENDED_V1_PRESENTATION_REQUEST_IDS: Readonly<{
141
+ readonly identity: "UbidExtendedIdentity";
142
+ readonly contact: "UbidExtendedContact";
143
+ readonly address: "UbidExtendedAddress";
144
+ readonly publicProfile: "UbidExtendedPublicProfile";
145
+ readonly blockchain: "UbidExtendedBlockchain";
146
+ readonly full: "UbidExtendedFull";
147
+ }>;
148
+ //# sourceMappingURL=ubidExtendedV1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ubidExtendedV1.d.ts","sourceRoot":"","sources":["../../src/contracts/ubidExtendedV1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { UbidExtendedConsentSelection, UbidExtendedV1Claims } from "./ubidExtendedV1";
2
+ export declare const UBID_EXTENDED_V1_MINIMAL_FIXTURE: UbidExtendedV1Claims;
3
+ export declare const UBID_EXTENDED_V1_FULL_FIXTURE: UbidExtendedV1Claims;
4
+ export declare const UBID_EXTENDED_V1_MINIMAL_CONSENT_FIXTURE: UbidExtendedConsentSelection;
5
+ export declare const UBID_EXTENDED_V1_FULL_CONSENT_FIXTURE: UbidExtendedConsentSelection;
6
+ //# sourceMappingURL=ubidExtendedV1.fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ubidExtendedV1.fixtures.d.ts","sourceRoot":"","sources":["../../src/contracts/ubidExtendedV1.fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,4BAA4B,EAC5B,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAK1B,eAAO,MAAM,gCAAgC,EAAE,oBAU9C,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,oBAsG3C,CAAC;AAEF,eAAO,MAAM,wCAAwC,EAAE,4BAGtD,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,4BAYnD,CAAC"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UBID_EXTENDED_V1_FULL_CONSENT_FIXTURE = exports.UBID_EXTENDED_V1_MINIMAL_CONSENT_FIXTURE = exports.UBID_EXTENDED_V1_FULL_FIXTURE = exports.UBID_EXTENDED_V1_MINIMAL_FIXTURE = void 0;
4
+ const ISSUED_AT = "2026-09-11T15:00:00.000Z";
5
+ const HASH = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
6
+ exports.UBID_EXTENDED_V1_MINIMAL_FIXTURE = {
7
+ given_name: "Ana",
8
+ family_name: "Ejemplo",
9
+ ubid_did: "did:web:user.ubid.app:ana-ejemplo",
10
+ identity_assurance: {
11
+ level: "document_verified",
12
+ method: "ubid_document_identity_v1",
13
+ verified_at: ISSUED_AT,
14
+ evidence_ref: "evidence:identity:example",
15
+ },
16
+ };
17
+ exports.UBID_EXTENDED_V1_FULL_FIXTURE = {
18
+ ...exports.UBID_EXTENDED_V1_MINIMAL_FIXTURE,
19
+ second_surname: "Prueba",
20
+ country: "CL",
21
+ email: "ana@example.test",
22
+ email_assurance: {
23
+ level: "self_asserted",
24
+ method: "holder_profile",
25
+ asserted_at: ISSUED_AT,
26
+ },
27
+ phone_number: "+56912345678",
28
+ phone_assurance: {
29
+ level: "issuer_verified",
30
+ method: "otp_sms",
31
+ verified_at: ISSUED_AT,
32
+ },
33
+ profile: {
34
+ description: "Perfil sintético para pruebas de interoperabilidad.",
35
+ social_networks: [
36
+ {
37
+ type: "linkedin",
38
+ url: "https://social.example.test/ana",
39
+ },
40
+ ],
41
+ updated_at: ISSUED_AT,
42
+ assurance: {
43
+ level: "holder_signed",
44
+ method: "hybrid_profile_signature",
45
+ asserted_at: ISSUED_AT,
46
+ },
47
+ },
48
+ postal_address: {
49
+ schema_version: 1,
50
+ country_code: "CL",
51
+ address_lines: ["Avenida Ejemplo 123"],
52
+ locality: "Santiago",
53
+ administrative_area: "Región Metropolitana",
54
+ postal_code: "8320000",
55
+ language_code: "es-CL",
56
+ assurance: {
57
+ level: "self_asserted",
58
+ method: "holder_signed_profile",
59
+ asserted_at: ISSUED_AT,
60
+ },
61
+ },
62
+ avatar: {
63
+ uri: "https://issuer.ubid.app/public/avatar/ana-ejemplo",
64
+ sha256: HASH,
65
+ media_type: "image/webp",
66
+ width: 512,
67
+ height: 512,
68
+ updated_at: ISSUED_AT,
69
+ assurance: {
70
+ level: "holder_provided",
71
+ method: "hash_bound_reference",
72
+ },
73
+ },
74
+ public_profile: {
75
+ enabled: true,
76
+ display_name: "Ana Ejemplo",
77
+ headline: "Identidad digital verificable",
78
+ about: "Presentación sintética para pruebas.",
79
+ location: "Santiago, Chile",
80
+ locale: "es-CL",
81
+ theme: "ubid-ocean",
82
+ business_availability: true,
83
+ contacts: [
84
+ { type: "email", value: "public@example.test" },
85
+ { type: "website", value: "https://example.test" },
86
+ ],
87
+ social_networks: [
88
+ {
89
+ type: "website",
90
+ url: "https://example.test/social",
91
+ },
92
+ ],
93
+ services: [
94
+ {
95
+ id: "service-example",
96
+ title: "Servicio de ejemplo",
97
+ url: "https://example.test/services/example",
98
+ },
99
+ ],
100
+ featured_credential_ids: ["credential:synthetic:example"],
101
+ canonical_url: "https://verify.ubid.app/profile/ana-ejemplo",
102
+ projection_digest: HASH,
103
+ updated_at: ISSUED_AT,
104
+ assurance: {
105
+ level: "holder_signed",
106
+ method: "verified_public_projection",
107
+ asserted_at: ISSUED_AT,
108
+ },
109
+ },
110
+ stacks_did: "did:stx:SP000000000000000000002Q6VF78",
111
+ stx_address: "SP000000000000000000002Q6VF78",
112
+ btc_native_segwit_address: "bc1qexampletestaddress000000000000000000000",
113
+ btc_taproot_address: "bc1pexampletestaddress000000000000000000000",
114
+ blockchain_assurance: {
115
+ level: "holder_signed",
116
+ method: "derived_from_wallet",
117
+ asserted_at: ISSUED_AT,
118
+ },
119
+ };
120
+ exports.UBID_EXTENDED_V1_MINIMAL_CONSENT_FIXTURE = {
121
+ selected_groups: ["identity_core"],
122
+ policy_version: "ubid-consent-v1",
123
+ };
124
+ exports.UBID_EXTENDED_V1_FULL_CONSENT_FIXTURE = {
125
+ selected_groups: [
126
+ "identity_core",
127
+ "identity_additional",
128
+ "contact",
129
+ "profile",
130
+ "postal_address",
131
+ "avatar",
132
+ "public_profile",
133
+ "blockchain",
134
+ ],
135
+ policy_version: "ubid-consent-v1",
136
+ };
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWJpZEV4dGVuZGVkVjEuZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL3ViaWRFeHRlbmRlZFYxLmZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLE1BQU0sU0FBUyxHQUFHLDBCQUEwQixDQUFDO0FBQzdDLE1BQU0sSUFBSSxHQUFHLDZDQUE2QyxDQUFDO0FBRTlDLFFBQUEsZ0NBQWdDLEdBQXlCO0lBQ3JFLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFFBQVEsRUFBRSxtQ0FBbUM7SUFDN0Msa0JBQWtCLEVBQUU7UUFDbkIsS0FBSyxFQUFFLG1CQUFtQjtRQUMxQixNQUFNLEVBQUUsMkJBQTJCO1FBQ25DLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLFlBQVksRUFBRSwyQkFBMkI7S0FDekM7Q0FDRCxDQUFDO0FBRVcsUUFBQSw2QkFBNkIsR0FBeUI7SUFDbEUsR0FBRyx3Q0FBZ0M7SUFDbkMsY0FBYyxFQUFFLFFBQVE7SUFDeEIsT0FBTyxFQUFFLElBQUk7SUFDYixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNoQixLQUFLLEVBQUUsZUFBZTtRQUN0QixNQUFNLEVBQUUsZ0JBQWdCO1FBQ3hCLFdBQVcsRUFBRSxTQUFTO0tBQ3RCO0lBQ0QsWUFBWSxFQUFFLGNBQWM7SUFDNUIsZUFBZSxFQUFFO1FBQ2hCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsV0FBVyxFQUFFLFNBQVM7S0FDdEI7SUFDRCxPQUFPLEVBQUU7UUFDUixXQUFXLEVBQUUscURBQXFEO1FBQ2xFLGVBQWUsRUFBRTtZQUNoQjtnQkFDQyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsR0FBRyxFQUFFLGlDQUFpQzthQUN0QztTQUNEO1FBQ0QsVUFBVSxFQUFFLFNBQVM7UUFDckIsU0FBUyxFQUFFO1lBQ1YsS0FBSyxFQUFFLGVBQWU7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
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * Canonical identifiers and data contract for UbIDExtended v1.
4
+ *
5
+ * Keep this module free of issuer, wallet, or verifier runtime dependencies so
6
+ * every UbID component can consume the exact same names and limits.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.UBID_EXTENDED_V1_PRESENTATION_REQUEST_IDS = exports.UBID_EXTENDED_V1_FORBIDDEN_CLAIM_KEYS = exports.UBID_EXTENDED_V1_GROUP_CLAIMS = exports.UBID_EXTENDED_V1_CONSENT_GROUPS = exports.UBID_EXTENDED_V1_PUBLIC_CONTACT_TYPES = exports.UBID_EXTENDED_V1_SOCIAL_NETWORK_TYPES = exports.UBID_EXTENDED_V1_ASSURANCE_LEVELS = exports.UBID_EXTENDED_V1_LIMITS = exports.UBID_EXTENDED_V1_CONSENT_POLICY_VERSION = exports.UBID_EXTENDED_V1_TTL_SECONDS = exports.UBID_EXTENDED_V1_DISCLOSURE_ALG = exports.UBID_EXTENDED_V1_SIGNING_ALG = exports.UBID_EXTENDED_V1_FORMAT = exports.UBID_EXTENDED_V1_SCOPE = exports.UBID_EXTENDED_V1_ISSUER = exports.UBID_EXTENDED_V1_VCT = exports.UBID_EXTENDED_V1_CONFIGURATION_ID = void 0;
10
+ exports.UBID_EXTENDED_V1_CONFIGURATION_ID = "ubid_extended_v1";
11
+ exports.UBID_EXTENDED_V1_VCT = "https://issuer.ubid.app/credentials/ubid-extended/v1";
12
+ exports.UBID_EXTENDED_V1_ISSUER = "https://issuer.ubid.app";
13
+ exports.UBID_EXTENDED_V1_SCOPE = "ubid:extended:v1";
14
+ exports.UBID_EXTENDED_V1_FORMAT = "dc+sd-jwt";
15
+ exports.UBID_EXTENDED_V1_SIGNING_ALG = "ES256K";
16
+ exports.UBID_EXTENDED_V1_DISCLOSURE_ALG = "sha-256";
17
+ exports.UBID_EXTENDED_V1_TTL_SECONDS = 180 * 24 * 60 * 60;
18
+ exports.UBID_EXTENDED_V1_CONSENT_POLICY_VERSION = "ubid-consent-v1";
19
+ exports.UBID_EXTENDED_V1_LIMITS = Object.freeze({
20
+ name: 120,
21
+ description: 1_000,
22
+ socialNetworks: 20,
23
+ url: 2_048,
24
+ addressLines: 5,
25
+ addressLine: 200,
26
+ publicDisplayName: 240,
27
+ publicHeadline: 180,
28
+ publicAbout: 2_400,
29
+ publicLocation: 180,
30
+ publicContacts: 4,
31
+ publicSocialNetworks: 12,
32
+ publicServices: 12,
33
+ featuredCredentialIds: 8,
34
+ featuredCredentialId: 512,
35
+ });
36
+ exports.UBID_EXTENDED_V1_ASSURANCE_LEVELS = [
37
+ "self_asserted",
38
+ "holder_provided",
39
+ "holder_signed",
40
+ "issuer_verified",
41
+ "document_verified",
42
+ ];
43
+ exports.UBID_EXTENDED_V1_SOCIAL_NETWORK_TYPES = [
44
+ "linkedin",
45
+ "x",
46
+ "github",
47
+ "instagram",
48
+ "facebook",
49
+ "website",
50
+ "other",
51
+ ];
52
+ exports.UBID_EXTENDED_V1_PUBLIC_CONTACT_TYPES = [
53
+ "email",
54
+ "phone_number",
55
+ "whatsapp",
56
+ "website",
57
+ ];
58
+ exports.UBID_EXTENDED_V1_CONSENT_GROUPS = [
59
+ "identity_core",
60
+ "identity_additional",
61
+ "contact",
62
+ "profile",
63
+ "postal_address",
64
+ "avatar",
65
+ "public_profile",
66
+ "blockchain",
67
+ ];
68
+ exports.UBID_EXTENDED_V1_GROUP_CLAIMS = Object.freeze({
69
+ identity_core: [
70
+ "given_name",
71
+ "family_name",
72
+ "ubid_did",
73
+ "identity_assurance",
74
+ ],
75
+ identity_additional: ["second_surname", "country"],
76
+ contact: [
77
+ "email",
78
+ "email_assurance",
79
+ "phone_number",
80
+ "phone_assurance",
81
+ ],
82
+ profile: ["profile"],
83
+ postal_address: ["postal_address"],
84
+ avatar: ["avatar"],
85
+ public_profile: ["public_profile"],
86
+ blockchain: [
87
+ "stacks_did",
88
+ "stx_address",
89
+ "btc_native_segwit_address",
90
+ "btc_taproot_address",
91
+ "blockchain_assurance",
92
+ ],
93
+ });
94
+ exports.UBID_EXTENDED_V1_FORBIDDEN_CLAIM_KEYS = Object.freeze([
95
+ "_id",
96
+ "_rev",
97
+ "avatar_base64",
98
+ "credential",
99
+ "c_nonce",
100
+ "documentIdentity",
101
+ "mnemonic",
102
+ "password",
103
+ "pre-authorized_code",
104
+ "private_key",
105
+ "profilePqcPublicKey",
106
+ "refresh_token",
107
+ "seed",
108
+ "tx_code",
109
+ "vcSdJwt",
110
+ ]);
111
+ exports.UBID_EXTENDED_V1_PRESENTATION_REQUEST_IDS = Object.freeze({
112
+ identity: "UbidExtendedIdentity",
113
+ contact: "UbidExtendedContact",
114
+ address: "UbidExtendedAddress",
115
+ publicProfile: "UbidExtendedPublicProfile",
116
+ blockchain: "UbidExtendedBlockchain",
117
+ full: "UbidExtendedFull",
118
+ });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWJpZEV4dGVuZGVkVjEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3RzL3ViaWRFeHRlbmRlZFYxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRVUsUUFBQSxpQ0FBaUMsR0FBRyxrQkFBMkIsQ0FBQztBQUNoRSxRQUFBLG9CQUFvQixHQUNoQyxzREFBK0QsQ0FBQztBQUNwRCxRQUFBLHVCQUF1QixHQUFHLHlCQUFrQyxDQUFDO0FBQzdELFFBQUEsc0JBQXNCLEdBQUcsa0JBQTJCLENBQUM7QUFDckQsUUFBQSx1QkFBdUIsR0FBRyxXQUFvQixDQUFDO0FBQy9DLFFBQUEsNEJBQTRCLEdBQUcsUUFBaUIsQ0FBQztBQUNqRCxRQUFBLCtCQUErQixHQUFHLFNBQWtCLENBQUM7QUFDckQsUUFBQSw0QkFBNEIsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDbEQsUUFBQSx1Q0FBdUMsR0FDbkQsaUJBQTBCLENBQUM7QUFFZixRQUFBLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDcEQsSUFBSSxFQUFFLEdBQUc7SUFDVCxXQUFXLEVBQUUsS0FBSztJQUNsQixjQUFjLEVBQUUsRUFBRTtJQUNsQixHQUFHLEVBQUUsS0FBSztJQUNWLFlBQVksRUFBRSxDQUFDO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsaUJBQWlCLEVBQUUsR0FBRztJQUN0QixjQUFjLEVBQUUsR0FBRztJQUNuQixXQUFXLEVBQUUsS0FBSztJQUNsQixjQUFjLEVBQUUsR0FBRztJQUNuQixjQUFjLEVBQUUsQ0FBQztJQUNqQixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLHFCQUFxQixFQUFFLENBQUM7SUFDeEIsb0JBQW9CLEVBQUUsR0FBRztDQUNoQixDQUFDLENBQUM7QUFFQyxRQUFBLGlDQUFpQyxHQUFHO0lBQ2hELGVBQWU7SUFDZixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixtQkFBbUI7Q0FDVixDQUFDO0FBYUUsUUFBQSxxQ0FBcUMsR0FBRztJQUNwRCxVQUFVO0lBQ1YsR0FBRztJQUNILFFBQVE7SUFDUixXQUFXO0lBQ1gsVUFBVTtJQUNWLFNBQVM7SUFDVCxPQUFPO0NBQ0UsQ0FBQztBQTRDRSxRQUFBLHFDQUFxQyxHQUFHO0lBQ3BELE9BQU87SUFDUCxjQUFjO0lBQ2QsVUFBVTtJQUNWLFNBQVM7Q0FDQSxDQUFDO0FBNERFLFFBQUEsK0JBQStCLEdBQUc7SUFDOUMsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixTQUFTO0lBQ1QsU0FBUztJQUNULGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLFlBQVk7Q0FDSCxDQUFDO0FBVUUsUUFBQSw2QkFBNkIsR0FFdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNqQixhQUFhLEVBQUU7UUFDZCxZQUFZO1FBQ1osYUFBYTtRQUNiLFVBQVU7UUFDVixvQkFBb0I7S0FDWDtJQUNWLG1CQUFtQixFQUFFLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFVO0lBQzNELE9BQU8sRUFBRTtRQUNSLE9BQU87UUFDUCxpQkFBaUI7UUFDakIsY0FBYztRQUNkLGlCQUFpQjtLQUNSO0lBQ1YsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFVO0lBQzdCLGNBQWMsRUFBRSxDQUFDLGdCQUFnQixDQUFVO0lBQzNDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBVTtJQUMzQixjQUFjLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBVTtJQUMzQyxVQUFVLEVBQUU7UUFDWCxZQUFZO1FBQ1osYUFBYTtRQUNiLDJCQUEyQjtRQUMzQixxQkFBcUI7UUFDckIsc0JBQXNCO0tBQ2I7Q0FDVixDQUFDLENBQUM7QUFFVSxRQUFBLHFDQUFxQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbEUsS0FBSztJQUNMLE1BQU07SUFDTixlQUFlO0lBQ2YsWUFBWTtJQUNaLFNBQVM7SUFDVCxrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLFVBQVU7SUFDVixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLHFCQUFxQjtJQUNyQixlQUFlO0lBQ2YsTUFBTTtJQUNOLFNBQVM7SUFDVCxTQUFTO0NBQ0EsQ0FBQyxDQUFDO0FBRUMsUUFBQSx5Q0FBeUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RFLFFBQVEsRUFBRSxzQkFBc0I7SUFDaEMsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixPQUFPLEVBQUUscUJBQXFCO0lBQzlCLGFBQWEsRUFBRSwyQkFBMkI7SUFDMUMsVUFBVSxFQUFFLHdCQUF3QjtJQUNwQyxJQUFJLEVBQUUsa0JBQWtCO0NBQ2YsQ0FBQyxDQUFDIn0=