@learncard/sss-key-manager 0.2.6 → 0.3.0
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/README.md +9 -0
- package/dist/escrow-authority.d.ts +4 -3
- package/dist/escrow-authority.d.ts.map +1 -1
- package/dist/escrow-authority.types.d.ts +15 -0
- package/dist/escrow-authority.types.d.ts.map +1 -1
- package/dist/escrow-crypto.d.ts +19 -1
- package/dist/escrow-crypto.d.ts.map +1 -1
- package/dist/escrow-enrollment-intent.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/sss-key-manager.cjs.development.js +776 -89
- package/dist/sss-key-manager.cjs.development.js.map +3 -3
- package/dist/sss-key-manager.cjs.production.min.js +30 -30
- package/dist/sss-key-manager.cjs.production.min.js.map +4 -4
- package/dist/sss-key-manager.esm.js +778 -89
- package/dist/sss-key-manager.esm.js.map +3 -3
- package/dist/sss-strategy.d.ts +26 -0
- package/dist/sss-strategy.d.ts.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__fixtures__/escrow-authority-brand-names-v1.json +29 -0
- package/src/__fixtures__/escrow-carry-contact-contract-v1.json +25 -1
- package/src/__fixtures__/escrow-email-brand-contract-v1.json +225 -0
- package/src/escrow-authority.test.ts +2 -0
- package/src/escrow-authority.ts +24 -7
- package/src/escrow-authority.types.ts +27 -0
- package/src/escrow-crypto.test.ts +75 -0
- package/src/escrow-crypto.ts +43 -1
- package/src/escrow-enrollment-intent.ts +2 -1
- package/src/index.ts +14 -2
- package/src/sss-authority.test.ts +392 -32
- package/src/sss-strategy.test.ts +238 -0
- package/src/sss-strategy.ts +245 -104
- package/src/types.ts +29 -0
|
@@ -60,6 +60,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
60
60
|
var index_exports2 = {};
|
|
61
61
|
__export2(index_exports2, {
|
|
62
62
|
ACT_AS_HEADER: /* @__PURE__ */ __name(() => ACT_AS_HEADER, "ACT_AS_HEADER"),
|
|
63
|
+
AIPassportCredentialRecordValidator: /* @__PURE__ */ __name(() => AIPassportCredentialRecordValidator, "AIPassportCredentialRecordValidator"),
|
|
63
64
|
AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX: /* @__PURE__ */ __name(() => AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX, "AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX"),
|
|
64
65
|
AchievementCredentialValidator: /* @__PURE__ */ __name(() => AchievementCredentialValidator, "AchievementCredentialValidator"),
|
|
65
66
|
AchievementCriteriaValidator: /* @__PURE__ */ __name(() => AchievementCriteriaValidator, "AchievementCriteriaValidator"),
|
|
@@ -71,6 +72,8 @@ var require_types_cjs_development = __commonJS({
|
|
|
71
72
|
AddTagInputValidator: /* @__PURE__ */ __name(() => AddTagInputValidator, "AddTagInputValidator"),
|
|
72
73
|
AddressValidator: /* @__PURE__ */ __name(() => AddressValidator, "AddressValidator"),
|
|
73
74
|
AgeRatingValidator: /* @__PURE__ */ __name(() => AgeRatingValidator, "AgeRatingValidator"),
|
|
75
|
+
AiSessionMode: /* @__PURE__ */ __name(() => AiSessionMode, "AiSessionMode"),
|
|
76
|
+
AiSessionModeValidator: /* @__PURE__ */ __name(() => AiSessionModeValidator, "AiSessionModeValidator"),
|
|
74
77
|
AlignmentTargetTypeValidator: /* @__PURE__ */ __name(() => AlignmentTargetTypeValidator, "AlignmentTargetTypeValidator"),
|
|
75
78
|
AlignmentValidator: /* @__PURE__ */ __name(() => AlignmentValidator, "AlignmentValidator"),
|
|
76
79
|
AllocateCredentialRefreshInputValidator: /* @__PURE__ */ __name(() => AllocateCredentialRefreshInputValidator, "AllocateCredentialRefreshInputValidator"),
|
|
@@ -78,6 +81,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
78
81
|
AllocateCredentialStatusInputValidator: /* @__PURE__ */ __name(() => AllocateCredentialStatusInputValidator, "AllocateCredentialStatusInputValidator"),
|
|
79
82
|
AllocatedBitstringStatusListEntryValidator: /* @__PURE__ */ __name(() => AllocatedBitstringStatusListEntryValidator, "AllocatedBitstringStatusListEntryValidator"),
|
|
80
83
|
AllowConnectionRequestsEnum: /* @__PURE__ */ __name(() => AllowConnectionRequestsEnum, "AllowConnectionRequestsEnum"),
|
|
84
|
+
AnnouncementPreferencesValidator: /* @__PURE__ */ __name(() => AnnouncementPreferencesValidator, "AnnouncementPreferencesValidator"),
|
|
81
85
|
AppBoostValidator: /* @__PURE__ */ __name(() => AppBoostValidator, "AppBoostValidator"),
|
|
82
86
|
AppEventInputValidator: /* @__PURE__ */ __name(() => AppEventInputValidator, "AppEventInputValidator"),
|
|
83
87
|
AppEventResponseValidator: /* @__PURE__ */ __name(() => AppEventResponseValidator, "AppEventResponseValidator"),
|
|
@@ -93,12 +97,15 @@ var require_types_cjs_development = __commonJS({
|
|
|
93
97
|
AppStoreListingSubmitterValidator: /* @__PURE__ */ __name(() => AppStoreListingSubmitterValidator, "AppStoreListingSubmitterValidator"),
|
|
94
98
|
AppStoreListingUpdateValidator: /* @__PURE__ */ __name(() => AppStoreListingUpdateValidator, "AppStoreListingUpdateValidator"),
|
|
95
99
|
AppStoreListingValidator: /* @__PURE__ */ __name(() => AppStoreListingValidator, "AppStoreListingValidator"),
|
|
100
|
+
ArtifactSuggestionValidator: /* @__PURE__ */ __name(() => ArtifactSuggestionValidator, "ArtifactSuggestionValidator"),
|
|
96
101
|
AssociationTypeValidator: /* @__PURE__ */ __name(() => AssociationTypeValidator, "AssociationTypeValidator"),
|
|
97
102
|
AssociationValidator: /* @__PURE__ */ __name(() => AssociationValidator, "AssociationValidator"),
|
|
103
|
+
AttachCredentialRefreshStatusEntriesInputValidator: /* @__PURE__ */ __name(() => AttachCredentialRefreshStatusEntriesInputValidator, "AttachCredentialRefreshStatusEntriesInputValidator"),
|
|
98
104
|
AuthGrantQueryValidator: /* @__PURE__ */ __name(() => AuthGrantQueryValidator, "AuthGrantQueryValidator"),
|
|
99
105
|
AuthGrantStatusValidator: /* @__PURE__ */ __name(() => AuthGrantStatusValidator, "AuthGrantStatusValidator"),
|
|
100
106
|
AuthGrantValidator: /* @__PURE__ */ __name(() => AuthGrantValidator, "AuthGrantValidator"),
|
|
101
107
|
AuthSessionError: /* @__PURE__ */ __name(() => AuthSessionError2, "AuthSessionError"),
|
|
108
|
+
AuthenticatedMessageValidator: /* @__PURE__ */ __name(() => AuthenticatedMessageValidator, "AuthenticatedMessageValidator"),
|
|
102
109
|
AutoBoostConfigValidator: /* @__PURE__ */ __name(() => AutoBoostConfigValidator, "AutoBoostConfigValidator"),
|
|
103
110
|
BITSTRING_STATUS_PURPOSES: /* @__PURE__ */ __name(() => BITSTRING_STATUS_PURPOSES, "BITSTRING_STATUS_PURPOSES"),
|
|
104
111
|
BitstringStatusListCredentialSubjectValidator: /* @__PURE__ */ __name(() => BitstringStatusListCredentialSubjectValidator, "BitstringStatusListCredentialSubjectValidator"),
|
|
@@ -110,19 +117,26 @@ var require_types_cjs_development = __commonJS({
|
|
|
110
117
|
BoostRecipientValidator: /* @__PURE__ */ __name(() => BoostRecipientValidator, "BoostRecipientValidator"),
|
|
111
118
|
BoostRecipientWithChildrenValidator: /* @__PURE__ */ __name(() => BoostRecipientWithChildrenValidator, "BoostRecipientWithChildrenValidator"),
|
|
112
119
|
BoostValidator: /* @__PURE__ */ __name(() => BoostValidator, "BoostValidator"),
|
|
120
|
+
CONTRACT_APPROVAL_REQUIRED: /* @__PURE__ */ __name(() => CONTRACT_APPROVAL_REQUIRED, "CONTRACT_APPROVAL_REQUIRED"),
|
|
113
121
|
CampaignAudienceInputValidator: /* @__PURE__ */ __name(() => CampaignAudienceInputValidator, "CampaignAudienceInputValidator"),
|
|
122
|
+
CampaignAudienceResultValidator: /* @__PURE__ */ __name(() => CampaignAudienceResultValidator, "CampaignAudienceResultValidator"),
|
|
114
123
|
CampaignAudienceSourceValidator: /* @__PURE__ */ __name(() => CampaignAudienceSourceValidator, "CampaignAudienceSourceValidator"),
|
|
115
124
|
CampaignChannelValidator: /* @__PURE__ */ __name(() => CampaignChannelValidator, "CampaignChannelValidator"),
|
|
125
|
+
CampaignDispatchOptionsValidator: /* @__PURE__ */ __name(() => CampaignDispatchOptionsValidator, "CampaignDispatchOptionsValidator"),
|
|
126
|
+
CampaignDispatchPreviewValidator: /* @__PURE__ */ __name(() => CampaignDispatchPreviewValidator, "CampaignDispatchPreviewValidator"),
|
|
127
|
+
CampaignEmailValidator: /* @__PURE__ */ __name(() => CampaignEmailValidator, "CampaignEmailValidator"),
|
|
116
128
|
CampaignEventValidator: /* @__PURE__ */ __name(() => CampaignEventValidator, "CampaignEventValidator"),
|
|
117
129
|
CampaignIdValidator: /* @__PURE__ */ __name(() => CampaignIdValidator, "CampaignIdValidator"),
|
|
118
130
|
CampaignPaginationValidator: /* @__PURE__ */ __name(() => CampaignPaginationValidator, "CampaignPaginationValidator"),
|
|
119
131
|
CampaignStatsValidator: /* @__PURE__ */ __name(() => CampaignStatsValidator, "CampaignStatsValidator"),
|
|
120
132
|
CampaignStatusValidator: /* @__PURE__ */ __name(() => CampaignStatusValidator, "CampaignStatusValidator"),
|
|
133
|
+
CampaignTestValidator: /* @__PURE__ */ __name(() => CampaignTestValidator, "CampaignTestValidator"),
|
|
121
134
|
CampaignUpdatesValidator: /* @__PURE__ */ __name(() => CampaignUpdatesValidator, "CampaignUpdatesValidator"),
|
|
122
135
|
CampaignUserStateValidator: /* @__PURE__ */ __name(() => CampaignUserStateValidator, "CampaignUserStateValidator"),
|
|
123
136
|
CampaignValidator: /* @__PURE__ */ __name(() => CampaignValidator, "CampaignValidator"),
|
|
124
137
|
CapturedConsentRecordValidator: /* @__PURE__ */ __name(() => CapturedConsentRecordValidator, "CapturedConsentRecordValidator"),
|
|
125
138
|
CapturedTemplateRecordValidator: /* @__PURE__ */ __name(() => CapturedTemplateRecordValidator, "CapturedTemplateRecordValidator"),
|
|
139
|
+
ChatMessageValidator: /* @__PURE__ */ __name(() => ChatMessageValidator, "ChatMessageValidator"),
|
|
126
140
|
CheckCredentialEventValidator: /* @__PURE__ */ __name(() => CheckCredentialEventValidator, "CheckCredentialEventValidator"),
|
|
127
141
|
CheckIssuanceStatusEventValidator: /* @__PURE__ */ __name(() => CheckIssuanceStatusEventValidator, "CheckIssuanceStatusEventValidator"),
|
|
128
142
|
ClaimHookQueryValidator: /* @__PURE__ */ __name(() => ClaimHookQueryValidator, "ClaimHookQueryValidator"),
|
|
@@ -132,15 +146,26 @@ var require_types_cjs_development = __commonJS({
|
|
|
132
146
|
ClaimTokenValidator: /* @__PURE__ */ __name(() => ClaimTokenValidator, "ClaimTokenValidator"),
|
|
133
147
|
ClrCredentialValidator: /* @__PURE__ */ __name(() => ClrCredentialValidator, "ClrCredentialValidator"),
|
|
134
148
|
ClrSubjectValidator: /* @__PURE__ */ __name(() => ClrSubjectValidator, "ClrSubjectValidator"),
|
|
149
|
+
ConsentFlowConsentStatusValidator: /* @__PURE__ */ __name(() => ConsentFlowConsentStatusValidator, "ConsentFlowConsentStatusValidator"),
|
|
150
|
+
ConsentFlowContractChangeKindValidator: /* @__PURE__ */ __name(() => ConsentFlowContractChangeKindValidator, "ConsentFlowContractChangeKindValidator"),
|
|
151
|
+
ConsentFlowContractChangesValidator: /* @__PURE__ */ __name(() => ConsentFlowContractChangesValidator, "ConsentFlowContractChangesValidator"),
|
|
135
152
|
ConsentFlowContractDataForDidValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDataForDidValidator, "ConsentFlowContractDataForDidValidator"),
|
|
136
153
|
ConsentFlowContractDataValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDataValidator, "ConsentFlowContractDataValidator"),
|
|
154
|
+
ConsentFlowContractDetailChangeValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDetailChangeValidator, "ConsentFlowContractDetailChangeValidator"),
|
|
137
155
|
ConsentFlowContractDetailsValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDetailsValidator, "ConsentFlowContractDetailsValidator"),
|
|
156
|
+
ConsentFlowContractDiffValidator: /* @__PURE__ */ __name(() => ConsentFlowContractDiffValidator, "ConsentFlowContractDiffValidator"),
|
|
157
|
+
ConsentFlowContractNotificationDataValidator: /* @__PURE__ */ __name(() => ConsentFlowContractNotificationDataValidator, "ConsentFlowContractNotificationDataValidator"),
|
|
138
158
|
ConsentFlowContractQueryValidator: /* @__PURE__ */ __name(() => ConsentFlowContractQueryValidator, "ConsentFlowContractQueryValidator"),
|
|
139
159
|
ConsentFlowContractRequestForProfileListValidator: /* @__PURE__ */ __name(() => ConsentFlowContractRequestForProfileListValidator, "ConsentFlowContractRequestForProfileListValidator"),
|
|
140
160
|
ConsentFlowContractRequestForProfileValidator: /* @__PURE__ */ __name(() => ConsentFlowContractRequestForProfileValidator, "ConsentFlowContractRequestForProfileValidator"),
|
|
141
161
|
ConsentFlowContractRequestReadStatusValidator: /* @__PURE__ */ __name(() => ConsentFlowContractRequestReadStatusValidator, "ConsentFlowContractRequestReadStatusValidator"),
|
|
142
162
|
ConsentFlowContractRequestStatusValidator: /* @__PURE__ */ __name(() => ConsentFlowContractRequestStatusValidator, "ConsentFlowContractRequestStatusValidator"),
|
|
163
|
+
ConsentFlowContractScopeValidator: /* @__PURE__ */ __name(() => ConsentFlowContractScopeValidator, "ConsentFlowContractScopeValidator"),
|
|
164
|
+
ConsentFlowContractStatusValidator: /* @__PURE__ */ __name(() => ConsentFlowContractStatusValidator, "ConsentFlowContractStatusValidator"),
|
|
165
|
+
ConsentFlowContractUpdatePreviewValidator: /* @__PURE__ */ __name(() => ConsentFlowContractUpdatePreviewValidator, "ConsentFlowContractUpdatePreviewValidator"),
|
|
166
|
+
ConsentFlowContractUpdateResultValidator: /* @__PURE__ */ __name(() => ConsentFlowContractUpdateResultValidator, "ConsentFlowContractUpdateResultValidator"),
|
|
143
167
|
ConsentFlowContractValidator: /* @__PURE__ */ __name(() => ConsentFlowContractValidator, "ConsentFlowContractValidator"),
|
|
168
|
+
ConsentFlowContractVersionValidator: /* @__PURE__ */ __name(() => ConsentFlowContractVersionValidator, "ConsentFlowContractVersionValidator"),
|
|
144
169
|
ConsentFlowDataForDidQueryValidator: /* @__PURE__ */ __name(() => ConsentFlowDataForDidQueryValidator, "ConsentFlowDataForDidQueryValidator"),
|
|
145
170
|
ConsentFlowDataQueryValidator: /* @__PURE__ */ __name(() => ConsentFlowDataQueryValidator, "ConsentFlowDataQueryValidator"),
|
|
146
171
|
ConsentFlowGuardianApprovalValidator: /* @__PURE__ */ __name(() => ConsentFlowGuardianApprovalValidator, "ConsentFlowGuardianApprovalValidator"),
|
|
@@ -180,6 +205,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
180
205
|
CredentialActivityStatsValidator: /* @__PURE__ */ __name(() => CredentialActivityStatsValidator, "CredentialActivityStatsValidator"),
|
|
181
206
|
CredentialActivityValidator: /* @__PURE__ */ __name(() => CredentialActivityValidator, "CredentialActivityValidator"),
|
|
182
207
|
CredentialActivityWithDetailsValidator: /* @__PURE__ */ __name(() => CredentialActivityWithDetailsValidator, "CredentialActivityWithDetailsValidator"),
|
|
208
|
+
CredentialDisplayValidator: /* @__PURE__ */ __name(() => CredentialDisplayValidator, "CredentialDisplayValidator"),
|
|
183
209
|
CredentialFormatValidator: /* @__PURE__ */ __name(() => CredentialFormatValidator, "CredentialFormatValidator"),
|
|
184
210
|
CredentialInfoValidator: /* @__PURE__ */ __name(() => CredentialInfoValidator, "CredentialInfoValidator"),
|
|
185
211
|
CredentialNameRefValidator: /* @__PURE__ */ __name(() => CredentialNameRefValidator, "CredentialNameRefValidator"),
|
|
@@ -187,11 +213,13 @@ var require_types_cjs_development = __commonJS({
|
|
|
187
213
|
CredentialRefreshChallengeValidator: /* @__PURE__ */ __name(() => CredentialRefreshChallengeValidator, "CredentialRefreshChallengeValidator"),
|
|
188
214
|
CredentialRefreshFailedResultValidator: /* @__PURE__ */ __name(() => CredentialRefreshFailedResultValidator, "CredentialRefreshFailedResultValidator"),
|
|
189
215
|
CredentialRefreshFailureCodeValidator: /* @__PURE__ */ __name(() => CredentialRefreshFailureCodeValidator, "CredentialRefreshFailureCodeValidator"),
|
|
216
|
+
CredentialRefreshReceiptValidator: /* @__PURE__ */ __name(() => CredentialRefreshReceiptValidator, "CredentialRefreshReceiptValidator"),
|
|
190
217
|
CredentialRefreshResponseEnvelopeValidator: /* @__PURE__ */ __name(() => CredentialRefreshResponseEnvelopeValidator, "CredentialRefreshResponseEnvelopeValidator"),
|
|
191
218
|
CredentialRefreshResultValidator: /* @__PURE__ */ __name(() => CredentialRefreshResultValidator, "CredentialRefreshResultValidator"),
|
|
192
219
|
CredentialRefreshSigningModeValidator: /* @__PURE__ */ __name(() => CredentialRefreshSigningModeValidator, "CredentialRefreshSigningModeValidator"),
|
|
193
220
|
CredentialRefreshUnchangedResultValidator: /* @__PURE__ */ __name(() => CredentialRefreshUnchangedResultValidator, "CredentialRefreshUnchangedResultValidator"),
|
|
194
221
|
CredentialRefreshUnsupportedResultValidator: /* @__PURE__ */ __name(() => CredentialRefreshUnsupportedResultValidator, "CredentialRefreshUnsupportedResultValidator"),
|
|
222
|
+
CredentialRefreshUpdateReasonValidator: /* @__PURE__ */ __name(() => CredentialRefreshUpdateReasonValidator, "CredentialRefreshUpdateReasonValidator"),
|
|
195
223
|
CredentialRefreshUpdatedResultValidator: /* @__PURE__ */ __name(() => CredentialRefreshUpdatedResultValidator, "CredentialRefreshUpdatedResultValidator"),
|
|
196
224
|
CredentialRefreshVersionMetadataValidator: /* @__PURE__ */ __name(() => CredentialRefreshVersionMetadataValidator, "CredentialRefreshVersionMetadataValidator"),
|
|
197
225
|
CredentialSchemaValidator: /* @__PURE__ */ __name(() => CredentialSchemaValidator, "CredentialSchemaValidator"),
|
|
@@ -199,8 +227,10 @@ var require_types_cjs_development = __commonJS({
|
|
|
199
227
|
CredentialSharePreviewValidator: /* @__PURE__ */ __name(() => CredentialSharePreviewValidator, "CredentialSharePreviewValidator"),
|
|
200
228
|
CredentialStatusValidator: /* @__PURE__ */ __name(() => CredentialStatusValidator, "CredentialStatusValidator"),
|
|
201
229
|
CredentialSubjectValidator: /* @__PURE__ */ __name(() => CredentialSubjectValidator, "CredentialSubjectValidator"),
|
|
230
|
+
CredentialVerificationMetadataValidator: /* @__PURE__ */ __name(() => CredentialVerificationMetadataValidator, "CredentialVerificationMetadataValidator"),
|
|
202
231
|
CriteriaValidator: /* @__PURE__ */ __name(() => CriteriaValidator, "CriteriaValidator"),
|
|
203
232
|
DEFAULT_BITSTRING_STATUS_LIST_SIZE: /* @__PURE__ */ __name(() => DEFAULT_BITSTRING_STATUS_LIST_SIZE, "DEFAULT_BITSTRING_STATUS_LIST_SIZE"),
|
|
233
|
+
DebugInfoValidator: /* @__PURE__ */ __name(() => DebugInfoValidator, "DebugInfoValidator"),
|
|
204
234
|
DeleteFrameworkInputValidator: /* @__PURE__ */ __name(() => DeleteFrameworkInputValidator, "DeleteFrameworkInputValidator"),
|
|
205
235
|
DeleteShareLinkAttachmentChunksInputValidator: /* @__PURE__ */ __name(() => DeleteShareLinkAttachmentChunksInputValidator, "DeleteShareLinkAttachmentChunksInputValidator"),
|
|
206
236
|
DeleteShareLinkAttachmentChunksOutputValidator: /* @__PURE__ */ __name(() => DeleteShareLinkAttachmentChunksOutputValidator, "DeleteShareLinkAttachmentChunksOutputValidator"),
|
|
@@ -212,6 +242,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
212
242
|
ESCROW_PIN_UNAVAILABLE_MESSAGE: /* @__PURE__ */ __name(() => ESCROW_PIN_UNAVAILABLE_MESSAGE2, "ESCROW_PIN_UNAVAILABLE_MESSAGE"),
|
|
213
243
|
EncryptedCredentialRecordValidator: /* @__PURE__ */ __name(() => EncryptedCredentialRecordValidator, "EncryptedCredentialRecordValidator"),
|
|
214
244
|
EncryptedRecordValidator: /* @__PURE__ */ __name(() => EncryptedRecordValidator, "EncryptedRecordValidator"),
|
|
245
|
+
EncryptionRecipientsResultValidator: /* @__PURE__ */ __name(() => EncryptionRecipientsResultValidator, "EncryptionRecipientsResultValidator"),
|
|
215
246
|
EndorsementCredentialValidator: /* @__PURE__ */ __name(() => EndorsementCredentialValidator, "EndorsementCredentialValidator"),
|
|
216
247
|
EndorsementSubjectValidator: /* @__PURE__ */ __name(() => EndorsementSubjectValidator, "EndorsementSubjectValidator"),
|
|
217
248
|
EscrowPinStatusValidator: /* @__PURE__ */ __name(() => EscrowPinStatusValidator, "EscrowPinStatusValidator"),
|
|
@@ -225,6 +256,8 @@ var require_types_cjs_development = __commonJS({
|
|
|
225
256
|
GetCountersEventValidator: /* @__PURE__ */ __name(() => GetCountersEventValidator, "GetCountersEventValidator"),
|
|
226
257
|
GetCredentialRefreshHistoryInputValidator: /* @__PURE__ */ __name(() => GetCredentialRefreshHistoryInputValidator, "GetCredentialRefreshHistoryInputValidator"),
|
|
227
258
|
GetCredentialRefreshHistoryResultValidator: /* @__PURE__ */ __name(() => GetCredentialRefreshHistoryResultValidator, "GetCredentialRefreshHistoryResultValidator"),
|
|
259
|
+
GetCredentialRefreshReceiptInputValidator: /* @__PURE__ */ __name(() => GetCredentialRefreshReceiptInputValidator, "GetCredentialRefreshReceiptInputValidator"),
|
|
260
|
+
GetEncryptionRecipientsInputValidator: /* @__PURE__ */ __name(() => GetEncryptionRecipientsInputValidator, "GetEncryptionRecipientsInputValidator"),
|
|
228
261
|
GetFullSkillTreeInputValidator: /* @__PURE__ */ __name(() => GetFullSkillTreeInputValidator, "GetFullSkillTreeInputValidator"),
|
|
229
262
|
GetFullSkillTreeResultValidator: /* @__PURE__ */ __name(() => GetFullSkillTreeResultValidator, "GetFullSkillTreeResultValidator"),
|
|
230
263
|
GetShareLinkAttachmentChunkInputValidator: /* @__PURE__ */ __name(() => GetShareLinkAttachmentChunkInputValidator, "GetShareLinkAttachmentChunkInputValidator"),
|
|
@@ -232,6 +265,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
232
265
|
GetSkillPathResultValidator: /* @__PURE__ */ __name(() => GetSkillPathResultValidator, "GetSkillPathResultValidator"),
|
|
233
266
|
GetTemplateRecipientsEventValidator: /* @__PURE__ */ __name(() => GetTemplateRecipientsEventValidator, "GetTemplateRecipientsEventValidator"),
|
|
234
267
|
GuardianStatusValidator: /* @__PURE__ */ __name(() => GuardianStatusValidator, "GuardianStatusValidator"),
|
|
268
|
+
HolderEncryptedHandoffValidator: /* @__PURE__ */ __name(() => HolderEncryptedHandoffValidator, "HolderEncryptedHandoffValidator"),
|
|
235
269
|
HolderExportConsentRecordValidator: /* @__PURE__ */ __name(() => HolderExportConsentRecordValidator, "HolderExportConsentRecordValidator"),
|
|
236
270
|
HolderExportMetadataValidator: /* @__PURE__ */ __name(() => HolderExportMetadataValidator, "HolderExportMetadataValidator"),
|
|
237
271
|
IdentifierEntryValidator: /* @__PURE__ */ __name(() => IdentifierEntryValidator, "IdentifierEntryValidator"),
|
|
@@ -251,7 +285,9 @@ var require_types_cjs_development = __commonJS({
|
|
|
251
285
|
InlineSendCredentialEventValidator: /* @__PURE__ */ __name(() => InlineSendCredentialEventValidator, "InlineSendCredentialEventValidator"),
|
|
252
286
|
InlineWalletCategoryValidator: /* @__PURE__ */ __name(() => InlineWalletCategoryValidator, "InlineWalletCategoryValidator"),
|
|
253
287
|
InlineWalletSkillTagValidator: /* @__PURE__ */ __name(() => InlineWalletSkillTagValidator, "InlineWalletSkillTagValidator"),
|
|
288
|
+
InsightArtifactValidator: /* @__PURE__ */ __name(() => InsightArtifactValidator, "InsightArtifactValidator"),
|
|
254
289
|
InstalledAppValidator: /* @__PURE__ */ __name(() => InstalledAppValidator, "InstalledAppValidator"),
|
|
290
|
+
IntroStreamModeValidator: /* @__PURE__ */ __name(() => IntroStreamModeValidator, "IntroStreamModeValidator"),
|
|
255
291
|
IssueInboxCredentialBatchItemResultValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialBatchItemResultValidator, "IssueInboxCredentialBatchItemResultValidator"),
|
|
256
292
|
IssueInboxCredentialBatchItemValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialBatchItemValidator, "IssueInboxCredentialBatchItemValidator"),
|
|
257
293
|
IssueInboxCredentialBatchResponseValidator: /* @__PURE__ */ __name(() => IssueInboxCredentialBatchResponseValidator, "IssueInboxCredentialBatchResponseValidator"),
|
|
@@ -303,6 +339,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
303
339
|
LCNVisibleProfileValidator: /* @__PURE__ */ __name(() => LCNVisibleProfileValidator, "LCNVisibleProfileValidator"),
|
|
304
340
|
LaunchTypeValidator: /* @__PURE__ */ __name(() => LaunchTypeValidator, "LaunchTypeValidator"),
|
|
305
341
|
LearnCardRefreshAuthorizationValidator: /* @__PURE__ */ __name(() => LearnCardRefreshAuthorizationValidator, "LearnCardRefreshAuthorizationValidator"),
|
|
342
|
+
LearningPathwayValidator: /* @__PURE__ */ __name(() => LearningPathwayValidator, "LearningPathwayValidator"),
|
|
306
343
|
LegacySendCredentialEventValidator: /* @__PURE__ */ __name(() => LegacySendCredentialEventValidator, "LegacySendCredentialEventValidator"),
|
|
307
344
|
LinkProviderFrameworkInputValidator: /* @__PURE__ */ __name(() => LinkProviderFrameworkInputValidator, "LinkProviderFrameworkInputValidator"),
|
|
308
345
|
ListCampaignsInputValidator: /* @__PURE__ */ __name(() => ListCampaignsInputValidator, "ListCampaignsInputValidator"),
|
|
@@ -314,8 +351,11 @@ var require_types_cjs_development = __commonJS({
|
|
|
314
351
|
MAX_SHARE_RECOVERY_JWE_BYTES: /* @__PURE__ */ __name(() => MAX_SHARE_RECOVERY_JWE_BYTES, "MAX_SHARE_RECOVERY_JWE_BYTES"),
|
|
315
352
|
MAX_SHARE_SOURCE_URI_CHARS: /* @__PURE__ */ __name(() => MAX_SHARE_SOURCE_URI_CHARS, "MAX_SHARE_SOURCE_URI_CHARS"),
|
|
316
353
|
MAX_VP_MEMBERS: /* @__PURE__ */ __name(() => MAX_VP_MEMBERS, "MAX_VP_MEMBERS"),
|
|
354
|
+
ManagedCredentialRefreshBindingValidator: /* @__PURE__ */ __name(() => ManagedCredentialRefreshBindingValidator, "ManagedCredentialRefreshBindingValidator"),
|
|
317
355
|
ManagedCredentialRefreshReceiptValidator: /* @__PURE__ */ __name(() => ManagedCredentialRefreshReceiptValidator, "ManagedCredentialRefreshReceiptValidator"),
|
|
318
356
|
ManagedCredentialRefreshServiceValidator: /* @__PURE__ */ __name(() => ManagedCredentialRefreshServiceValidator, "ManagedCredentialRefreshServiceValidator"),
|
|
357
|
+
ModelSafeCredentialFactValidator: /* @__PURE__ */ __name(() => ModelSafeCredentialFactValidator, "ModelSafeCredentialFactValidator"),
|
|
358
|
+
ModelSafeCredentialProjectionValidator: /* @__PURE__ */ __name(() => ModelSafeCredentialProjectionValidator, "ModelSafeCredentialProjectionValidator"),
|
|
319
359
|
MyCampaignValidator: /* @__PURE__ */ __name(() => MyCampaignValidator, "MyCampaignValidator"),
|
|
320
360
|
NormalizedConsentScopesValidator: /* @__PURE__ */ __name(() => NormalizedConsentScopesValidator, "NormalizedConsentScopesValidator"),
|
|
321
361
|
PageCampaignAudienceInputValidator: /* @__PURE__ */ __name(() => PageCampaignAudienceInputValidator, "PageCampaignAudienceInputValidator"),
|
|
@@ -360,6 +400,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
360
400
|
PublishCredentialRefreshNotificationValidator: /* @__PURE__ */ __name(() => PublishCredentialRefreshNotificationValidator, "PublishCredentialRefreshNotificationValidator"),
|
|
361
401
|
PublishCredentialRefreshResultValidator: /* @__PURE__ */ __name(() => PublishCredentialRefreshResultValidator, "PublishCredentialRefreshResultValidator"),
|
|
362
402
|
PublishCredentialSharePreviewValidator: /* @__PURE__ */ __name(() => PublishCredentialSharePreviewValidator, "PublishCredentialSharePreviewValidator"),
|
|
403
|
+
PublishHolderEncryptedRefreshInputValidator: /* @__PURE__ */ __name(() => PublishHolderEncryptedRefreshInputValidator, "PublishHolderEncryptedRefreshInputValidator"),
|
|
363
404
|
PublishIssuerSignedRefreshValidator: /* @__PURE__ */ __name(() => PublishIssuerSignedRefreshValidator, "PublishIssuerSignedRefreshValidator"),
|
|
364
405
|
PublishSigningAuthorityRefreshValidator: /* @__PURE__ */ __name(() => PublishSigningAuthorityRefreshValidator, "PublishSigningAuthorityRefreshValidator"),
|
|
365
406
|
PutShareLinkAttachmentChunkInputValidator: /* @__PURE__ */ __name(() => PutShareLinkAttachmentChunkInputValidator, "PutShareLinkAttachmentChunkInputValidator"),
|
|
@@ -377,6 +418,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
377
418
|
ResultStatusTypeValidator: /* @__PURE__ */ __name(() => ResultStatusTypeValidator, "ResultStatusTypeValidator"),
|
|
378
419
|
ResultTypeValidator: /* @__PURE__ */ __name(() => ResultTypeValidator, "ResultTypeValidator"),
|
|
379
420
|
ResultValidator: /* @__PURE__ */ __name(() => ResultValidator, "ResultValidator"),
|
|
421
|
+
RoleValidator: /* @__PURE__ */ __name(() => RoleValidator, "RoleValidator"),
|
|
380
422
|
RubricCriterionValidator: /* @__PURE__ */ __name(() => RubricCriterionValidator, "RubricCriterionValidator"),
|
|
381
423
|
SHARE_AAD_PREFIX: /* @__PURE__ */ __name(() => SHARE_AAD_PREFIX, "SHARE_AAD_PREFIX"),
|
|
382
424
|
SHARE_CONTENT_KEY_BYTES: /* @__PURE__ */ __name(() => SHARE_CONTENT_KEY_BYTES, "SHARE_CONTENT_KEY_BYTES"),
|
|
@@ -395,6 +437,7 @@ var require_types_cjs_development = __commonJS({
|
|
|
395
437
|
SendBrandingOptionsValidator: /* @__PURE__ */ __name(() => SendBrandingOptionsValidator, "SendBrandingOptionsValidator"),
|
|
396
438
|
SendContractRequestValidator: /* @__PURE__ */ __name(() => SendContractRequestValidator, "SendContractRequestValidator"),
|
|
397
439
|
SendCredentialEventValidator: /* @__PURE__ */ __name(() => SendCredentialEventValidator, "SendCredentialEventValidator"),
|
|
440
|
+
SendHolderEncryptedRefreshableInputValidator: /* @__PURE__ */ __name(() => SendHolderEncryptedRefreshableInputValidator, "SendHolderEncryptedRefreshableInputValidator"),
|
|
398
441
|
SendInboxResponseValidator: /* @__PURE__ */ __name(() => SendInboxResponseValidator, "SendInboxResponseValidator"),
|
|
399
442
|
SendInputValidator: /* @__PURE__ */ __name(() => SendInputValidator, "SendInputValidator"),
|
|
400
443
|
SendNotificationEventValidator: /* @__PURE__ */ __name(() => SendNotificationEventValidator, "SendNotificationEventValidator"),
|
|
@@ -451,8 +494,10 @@ var require_types_cjs_development = __commonJS({
|
|
|
451
494
|
SkillValidator: /* @__PURE__ */ __name(() => SkillValidator, "SkillValidator"),
|
|
452
495
|
StandardCredentialRefreshServiceValidator: /* @__PURE__ */ __name(() => StandardCredentialRefreshServiceValidator, "StandardCredentialRefreshServiceValidator"),
|
|
453
496
|
StatusCheckEntryValidator: /* @__PURE__ */ __name(() => StatusCheckEntryValidator, "StatusCheckEntryValidator"),
|
|
497
|
+
StatusManagementValidator: /* @__PURE__ */ __name(() => StatusManagementValidator, "StatusManagementValidator"),
|
|
454
498
|
StoredCredentialEnvelopeValidator: /* @__PURE__ */ __name(() => StoredCredentialEnvelopeValidator, "StoredCredentialEnvelopeValidator"),
|
|
455
499
|
StringQuery: /* @__PURE__ */ __name(() => StringQuery, "StringQuery"),
|
|
500
|
+
StructuredResponseValidator: /* @__PURE__ */ __name(() => StructuredResponseValidator, "StructuredResponseValidator"),
|
|
456
501
|
SummaryCredentialDataValidator: /* @__PURE__ */ __name(() => SummaryCredentialDataValidator, "SummaryCredentialDataValidator"),
|
|
457
502
|
SummaryCredentialKeywordValidator: /* @__PURE__ */ __name(() => SummaryCredentialKeywordValidator, "SummaryCredentialKeywordValidator"),
|
|
458
503
|
SupportedCredentialRefreshServiceValidator: /* @__PURE__ */ __name(() => SupportedCredentialRefreshServiceValidator, "SupportedCredentialRefreshServiceValidator"),
|
|
@@ -460,6 +505,9 @@ var require_types_cjs_development = __commonJS({
|
|
|
460
505
|
TagValidator: /* @__PURE__ */ __name(() => TagValidator, "TagValidator"),
|
|
461
506
|
TemplateRenderMethodValidator: /* @__PURE__ */ __name(() => TemplateRenderMethodValidator, "TemplateRenderMethodValidator"),
|
|
462
507
|
TermsOfUseValidator: /* @__PURE__ */ __name(() => TermsOfUseValidator, "TermsOfUseValidator"),
|
|
508
|
+
ThreadCredentialContextValidator: /* @__PURE__ */ __name(() => ThreadCredentialContextValidator, "ThreadCredentialContextValidator"),
|
|
509
|
+
ThreadValidator: /* @__PURE__ */ __name(() => ThreadValidator, "ThreadValidator"),
|
|
510
|
+
TimingEventValidator: /* @__PURE__ */ __name(() => TimingEventValidator, "TimingEventValidator"),
|
|
463
511
|
UnsignedAchievementCredentialValidator: /* @__PURE__ */ __name(() => UnsignedAchievementCredentialValidator, "UnsignedAchievementCredentialValidator"),
|
|
464
512
|
UnsignedClrCredentialValidator: /* @__PURE__ */ __name(() => UnsignedClrCredentialValidator, "UnsignedClrCredentialValidator"),
|
|
465
513
|
UnsignedVCValidator: /* @__PURE__ */ __name(() => UnsignedVCValidator, "UnsignedVCValidator"),
|
|
@@ -21978,12 +22026,47 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
21978
22026
|
$or: BaseStringQuery.array()
|
|
21979
22027
|
})
|
|
21980
22028
|
]);
|
|
22029
|
+
var BITSTRING_STATUS_PURPOSES = ["revocation", "suspension"];
|
|
22030
|
+
var DEFAULT_BITSTRING_STATUS_LIST_SIZE = 131072;
|
|
22031
|
+
var BitstringStatusPurposeValidator = external_exports.enum(BITSTRING_STATUS_PURPOSES);
|
|
22032
|
+
var BitstringStatusListEntryValidator = external_exports.object({
|
|
22033
|
+
id: external_exports.string().optional(),
|
|
22034
|
+
type: external_exports.literal("BitstringStatusListEntry"),
|
|
22035
|
+
statusPurpose: BitstringStatusPurposeValidator,
|
|
22036
|
+
statusListIndex: external_exports.string().or(external_exports.number().int().nonnegative()),
|
|
22037
|
+
statusListCredential: external_exports.string()
|
|
22038
|
+
});
|
|
22039
|
+
var AllocatedBitstringStatusListEntryValidator = BitstringStatusListEntryValidator.extend({
|
|
22040
|
+
id: external_exports.string()
|
|
22041
|
+
});
|
|
22042
|
+
var BitstringStatusListCredentialSubjectValidator = external_exports.object({
|
|
22043
|
+
id: external_exports.string().optional(),
|
|
22044
|
+
type: external_exports.literal("BitstringStatusList"),
|
|
22045
|
+
statusPurpose: BitstringStatusPurposeValidator,
|
|
22046
|
+
encodedList: external_exports.string()
|
|
22047
|
+
});
|
|
22048
|
+
var AllocateCredentialStatusInputValidator = external_exports.object({
|
|
22049
|
+
statusPurposes: external_exports.array(BitstringStatusPurposeValidator).optional(),
|
|
22050
|
+
listSize: external_exports.number().int().positive().optional()
|
|
22051
|
+
}).default({});
|
|
22052
|
+
var AttachCredentialRefreshStatusEntriesInputValidator = external_exports.object({
|
|
22053
|
+
refreshId: external_exports.string().min(1),
|
|
22054
|
+
credentialStatus: CredentialStatusValidator.or(CredentialStatusValidator.array()).nullable()
|
|
22055
|
+
});
|
|
21981
22056
|
var LearnCardRefreshAuthorizationValidator = external_exports.object({ type: external_exports.literal("LearnCardDIDAuth") }).catchall(external_exports.any());
|
|
21982
22057
|
var ManagedCredentialRefreshServiceValidator = external_exports.object({
|
|
21983
22058
|
id: external_exports.string().min(1),
|
|
21984
22059
|
type: external_exports.literal("LearnCardCredentialRefresh2026"),
|
|
21985
22060
|
authorization: LearnCardRefreshAuthorizationValidator.optional()
|
|
21986
22061
|
}).catchall(external_exports.any());
|
|
22062
|
+
var ManagedCredentialRefreshBindingValidator = ManagedCredentialRefreshServiceValidator.or(
|
|
22063
|
+
RefreshServiceValidator.array().refine(
|
|
22064
|
+
(services) => services.some(
|
|
22065
|
+
(service) => ManagedCredentialRefreshServiceValidator.safeParse(service).success
|
|
22066
|
+
),
|
|
22067
|
+
"A managed refresh service is required"
|
|
22068
|
+
)
|
|
22069
|
+
);
|
|
21987
22070
|
var StandardCredentialRefreshServiceValidator = external_exports.object({
|
|
21988
22071
|
id: external_exports.string().min(1),
|
|
21989
22072
|
type: external_exports.literal("1EdTechCredentialRefresh")
|
|
@@ -22007,7 +22090,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22007
22090
|
});
|
|
22008
22091
|
var ManagedCredentialRefreshReceiptValidator = external_exports.object({
|
|
22009
22092
|
refreshId: external_exports.string().min(1),
|
|
22010
|
-
refreshService:
|
|
22093
|
+
refreshService: ManagedCredentialRefreshBindingValidator,
|
|
22094
|
+
/** Legacy receipts authenticate only the allocated managed entry, not other services. */
|
|
22095
|
+
refreshServiceBinding: external_exports.literal("managed-entry").optional(),
|
|
22011
22096
|
credentialId: external_exports.string().min(1),
|
|
22012
22097
|
issuerDid: external_exports.string().min(1),
|
|
22013
22098
|
holderDid: external_exports.string().min(1),
|
|
@@ -22015,14 +22100,43 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22015
22100
|
CredentialStatusValidator.array()
|
|
22016
22101
|
).optional()
|
|
22017
22102
|
}).strip();
|
|
22103
|
+
var GetCredentialRefreshReceiptInputValidator = external_exports.object({ uri: external_exports.string().min(1) });
|
|
22104
|
+
var CredentialRefreshReceiptValidator = ManagedCredentialRefreshReceiptValidator.extend({
|
|
22105
|
+
encryptionMode: external_exports.enum(["network", "holder"])
|
|
22106
|
+
});
|
|
22107
|
+
var HolderEncryptedHandoffValidator = external_exports.object({
|
|
22108
|
+
refreshId: external_exports.string().min(1),
|
|
22109
|
+
credentialId: external_exports.string().min(1),
|
|
22110
|
+
holderDid: external_exports.string().min(1),
|
|
22111
|
+
issuerDid: external_exports.string().min(1),
|
|
22112
|
+
credentialStatus: CredentialStatusValidator.or(CredentialStatusValidator.array()),
|
|
22113
|
+
refreshService: ManagedCredentialRefreshBindingValidator.optional(),
|
|
22114
|
+
jwe: JWEValidator
|
|
22115
|
+
}).strict();
|
|
22116
|
+
var SendHolderEncryptedRefreshableInputValidator = external_exports.object({
|
|
22117
|
+
handoff: HolderEncryptedHandoffValidator,
|
|
22118
|
+
idempotencyKey: external_exports.string().min(1).optional(),
|
|
22119
|
+
boostUri: external_exports.string().optional(),
|
|
22120
|
+
skipNotification: external_exports.boolean().optional()
|
|
22121
|
+
});
|
|
22122
|
+
var GetEncryptionRecipientsInputValidator = external_exports.object({ refreshId: external_exports.string().min(1) });
|
|
22123
|
+
var EncryptionRecipientsResultValidator = external_exports.object({
|
|
22124
|
+
recipientKeyIds: external_exports.array(external_exports.string())
|
|
22125
|
+
});
|
|
22018
22126
|
var InboxCredentialRefreshReceiptValidator = ManagedCredentialRefreshReceiptValidator.omit(
|
|
22019
22127
|
{ holderDid: true }
|
|
22020
22128
|
).extend({ holderDid: external_exports.string().min(1).optional() });
|
|
22021
22129
|
var CredentialRefreshSigningModeValidator = external_exports.enum(["issuer-signed", "signing-authority"]);
|
|
22130
|
+
var CredentialRefreshUpdateReasonValidator = external_exports.enum(["corrected", "updated", "reissued"]);
|
|
22022
22131
|
var PublishCredentialRefreshBaseFields = {
|
|
22023
22132
|
refreshId: external_exports.string().min(1),
|
|
22024
22133
|
notifyHolder: external_exports.boolean().optional(),
|
|
22025
|
-
updateSummary: external_exports.string().optional()
|
|
22134
|
+
updateSummary: external_exports.string().max(280).optional().describe(
|
|
22135
|
+
"Public legacy update summary. Do not include private claims; prefer updateReason."
|
|
22136
|
+
),
|
|
22137
|
+
updateReason: CredentialRefreshUpdateReasonValidator.optional().describe(
|
|
22138
|
+
"Public reason for this update"
|
|
22139
|
+
),
|
|
22026
22140
|
idempotencyKey: external_exports.string().optional()
|
|
22027
22141
|
};
|
|
22028
22142
|
var PublishIssuerSignedRefreshValidator = external_exports.object({
|
|
@@ -22098,13 +22212,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22098
22212
|
publishedAt: external_exports.string().min(1),
|
|
22099
22213
|
notification: PublishCredentialRefreshNotificationValidator
|
|
22100
22214
|
});
|
|
22215
|
+
var PublishHolderEncryptedRefreshInputValidator = external_exports.object({
|
|
22216
|
+
handoff: HolderEncryptedHandoffValidator,
|
|
22217
|
+
notify: external_exports.boolean(),
|
|
22218
|
+
updateSummary: external_exports.string().max(280).optional().describe(
|
|
22219
|
+
"Public legacy update summary. Do not include private claims; prefer updateReason."
|
|
22220
|
+
),
|
|
22221
|
+
updateReason: CredentialRefreshUpdateReasonValidator.optional().describe(
|
|
22222
|
+
"Public reason for this update"
|
|
22223
|
+
),
|
|
22224
|
+
idempotencyKey: external_exports.string().optional()
|
|
22225
|
+
});
|
|
22101
22226
|
var CredentialRefreshVersionMetadataValidator = external_exports.object({
|
|
22102
22227
|
version: external_exports.number().int().positive(),
|
|
22103
22228
|
publishedAt: external_exports.string().min(1),
|
|
22104
22229
|
effectiveAt: external_exports.string().optional(),
|
|
22105
22230
|
etag: external_exports.string().optional(),
|
|
22106
22231
|
signingMode: CredentialRefreshSigningModeValidator.optional(),
|
|
22107
|
-
updateSummary: external_exports.string().optional()
|
|
22232
|
+
updateSummary: external_exports.string().optional(),
|
|
22233
|
+
updateReason: CredentialRefreshUpdateReasonValidator.optional()
|
|
22108
22234
|
});
|
|
22109
22235
|
var GetCredentialRefreshHistoryInputValidator = external_exports.object({
|
|
22110
22236
|
refreshId: external_exports.string().min(1),
|
|
@@ -22147,6 +22273,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22147
22273
|
"INVALID_PROOF",
|
|
22148
22274
|
"ISSUER_MISMATCH",
|
|
22149
22275
|
"ID_MISMATCH",
|
|
22276
|
+
"BINDING_MISMATCH",
|
|
22150
22277
|
"ROLLBACK",
|
|
22151
22278
|
"REVOKED",
|
|
22152
22279
|
"UNSAFE_ENDPOINT"
|
|
@@ -22471,6 +22598,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22471
22598
|
name: external_exports.string()
|
|
22472
22599
|
})
|
|
22473
22600
|
});
|
|
22601
|
+
var CredentialDisplayValidator = external_exports.object({
|
|
22602
|
+
name: external_exports.string().trim().min(1).max(280).optional(),
|
|
22603
|
+
category: external_exports.string().max(280).optional(),
|
|
22604
|
+
image: external_exports.string().max(2048).url().refine((url2) => url2.startsWith("https://"), { message: "Image URL must use https" }).optional()
|
|
22605
|
+
});
|
|
22474
22606
|
var SendBoostTemplateValidator = BoostValidator.partial().omit({ uri: true, claimPermissions: true }).extend({
|
|
22475
22607
|
credential: VCValidator.or(UnsignedVCValidator),
|
|
22476
22608
|
claimPermissions: BoostPermissionsValidator.partial().optional(),
|
|
@@ -22509,6 +22641,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22509
22641
|
templateUri: external_exports.string().optional(),
|
|
22510
22642
|
template: SendBoostTemplateValidator.optional(),
|
|
22511
22643
|
signedCredential: VCValidator.optional(),
|
|
22644
|
+
display: CredentialDisplayValidator.optional().describe(
|
|
22645
|
+
"Public display metadata for managed and signed-only sends. Nothing is inferred from credential content; omitted names use generic copy. The exception is category: when display.category is omitted for an inline template, the template's category is copied, since consent-flow write authorization is keyed on it."
|
|
22646
|
+
),
|
|
22647
|
+
statusPurposes: external_exports.array(BitstringStatusPurposeValidator).optional(),
|
|
22512
22648
|
options: SendOptionsValidator.optional().describe(
|
|
22513
22649
|
"Options for email/phone recipients (Universal Inbox)"
|
|
22514
22650
|
),
|
|
@@ -22547,7 +22683,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22547
22683
|
"Present when guardianEmail was specified"
|
|
22548
22684
|
)
|
|
22549
22685
|
});
|
|
22686
|
+
var StatusManagementValidator = external_exports.enum(["network", "external", "mixed", "none"]);
|
|
22550
22687
|
var SendBoostResponseValidator = external_exports.object({
|
|
22688
|
+
/** Public status providers for a managed send; external entries require provider-side updates. */
|
|
22689
|
+
statusManagement: StatusManagementValidator.optional(),
|
|
22551
22690
|
type: external_exports.literal("boost"),
|
|
22552
22691
|
credentialUri: external_exports.string(),
|
|
22553
22692
|
uri: external_exports.string(),
|
|
@@ -22560,19 +22699,33 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22560
22699
|
)
|
|
22561
22700
|
});
|
|
22562
22701
|
var PrepareRefreshableSendInputValidator = external_exports.object({
|
|
22702
|
+
/** Opt in to signing the server-bound statusEntries; omission preserves client allocation. */
|
|
22703
|
+
statusBinding: external_exports.literal("server").optional(),
|
|
22704
|
+
statusPurposes: external_exports.array(BitstringStatusPurposeValidator).optional(),
|
|
22563
22705
|
recipient: external_exports.string(),
|
|
22564
22706
|
templateUri: external_exports.string().optional(),
|
|
22565
22707
|
template: SendBoostTemplateValidator.optional(),
|
|
22708
|
+
display: CredentialDisplayValidator.optional().describe("Public display metadata only"),
|
|
22566
22709
|
contractUri: external_exports.string().optional(),
|
|
22567
22710
|
templateData: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
22568
22711
|
integrationId: external_exports.string().optional(),
|
|
22569
22712
|
/** Credential ID to allocate for; generated server-side when omitted. */
|
|
22570
22713
|
credentialId: external_exports.string().min(1).optional(),
|
|
22571
|
-
idempotencyKey: external_exports.string().min(1).max(200).optional()
|
|
22572
|
-
|
|
22573
|
-
|
|
22714
|
+
idempotencyKey: external_exports.string().min(1).max(200).optional(),
|
|
22715
|
+
/**
|
|
22716
|
+
* `'holder'` requests student-only encryption (LC-2345): the SDK signs and
|
|
22717
|
+
* encrypts locally and the server never receives plaintext. Requires a
|
|
22718
|
+
* profile or DID recipient; rejected for signedCredential-only sends and for
|
|
22719
|
+
* inbox (email/phone) recipients. Defaults to `'network'`.
|
|
22720
|
+
*/
|
|
22721
|
+
encryption: external_exports.enum(["network", "holder"]).optional()
|
|
22722
|
+
}).refine((data) => !(data.templateUri && data.template), {
|
|
22723
|
+
message: "Provide at most one of templateUri or template."
|
|
22574
22724
|
});
|
|
22575
22725
|
var PrepareRefreshableSendResultValidator = external_exports.object({
|
|
22726
|
+
/** Public status providers known at preparation; final send reports the signed entries. */
|
|
22727
|
+
statusManagement: StatusManagementValidator.optional(),
|
|
22728
|
+
statusEntries: external_exports.array(BitstringStatusListEntryValidator).optional(),
|
|
22576
22729
|
boostUri: external_exports.string(),
|
|
22577
22730
|
credentialId: external_exports.string(),
|
|
22578
22731
|
refreshId: external_exports.string(),
|
|
@@ -22580,11 +22733,111 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22580
22733
|
/** The DID to use as credentialSubject.id (recipient DID, or the profile's did:web). */
|
|
22581
22734
|
holderDid: external_exports.string(),
|
|
22582
22735
|
/** Present when this idempotencyKey already completed: return it without signing. */
|
|
22583
|
-
completed: SendBoostResponseValidator.optional()
|
|
22736
|
+
completed: SendBoostResponseValidator.optional(),
|
|
22737
|
+
/**
|
|
22738
|
+
* Present only when `encryption: 'holder'` was requested: the exact
|
|
22739
|
+
* key-agreement verification-method ids (holder + current managers) the SDK
|
|
22740
|
+
* must encrypt to. Recomputed on every call, so a later manager change can
|
|
22741
|
+
* make a previously-prepared set stale (see `credentialRefresh.sendHolderEncryptedRefreshable`
|
|
22742
|
+
* and `credentialRefresh.getEncryptionRecipients`).
|
|
22743
|
+
*/
|
|
22744
|
+
recipientKeyIds: external_exports.array(external_exports.string()).optional()
|
|
22584
22745
|
});
|
|
22585
22746
|
var SendInputValidator = external_exports.discriminatedUnion("type", [SendBoostInputValidator]);
|
|
22586
22747
|
var SendResponseValidator = external_exports.discriminatedUnion("type", [SendBoostResponseValidator]);
|
|
22587
|
-
var ConsentFlowTermsStatusValidator = external_exports.enum([
|
|
22748
|
+
var ConsentFlowTermsStatusValidator = external_exports.enum([
|
|
22749
|
+
"live",
|
|
22750
|
+
"consumed",
|
|
22751
|
+
"withdrawn",
|
|
22752
|
+
"needs_reconsent",
|
|
22753
|
+
"suspended"
|
|
22754
|
+
]);
|
|
22755
|
+
var CONTRACT_APPROVAL_REQUIRED = "CONTRACT_APPROVAL_REQUIRED";
|
|
22756
|
+
var ConsentFlowContractChangeKindValidator = external_exports.enum([
|
|
22757
|
+
"relaxed",
|
|
22758
|
+
"expanded_optional",
|
|
22759
|
+
"requires_consent"
|
|
22760
|
+
]);
|
|
22761
|
+
var ConsentFlowContractScopeValidator = external_exports.object({
|
|
22762
|
+
area: external_exports.enum(["read", "write"]),
|
|
22763
|
+
type: external_exports.enum(["credential", "personal"]),
|
|
22764
|
+
key: external_exports.string(),
|
|
22765
|
+
required: external_exports.boolean(),
|
|
22766
|
+
reason: external_exports.string().optional()
|
|
22767
|
+
});
|
|
22768
|
+
var ConsentFlowContractDetailValueValidator = external_exports.union([
|
|
22769
|
+
external_exports.string(),
|
|
22770
|
+
external_exports.boolean(),
|
|
22771
|
+
external_exports.string().array()
|
|
22772
|
+
]);
|
|
22773
|
+
var ConsentFlowContractDetailChangeValidator = external_exports.object({
|
|
22774
|
+
field: external_exports.enum([
|
|
22775
|
+
"name",
|
|
22776
|
+
"subtitle",
|
|
22777
|
+
"description",
|
|
22778
|
+
"reasonForAccessing",
|
|
22779
|
+
"image",
|
|
22780
|
+
"needsGuardianConsent",
|
|
22781
|
+
"redirectUrl",
|
|
22782
|
+
"frontDoorBoostUri",
|
|
22783
|
+
"expiresAt",
|
|
22784
|
+
"writers",
|
|
22785
|
+
"autoboosts"
|
|
22786
|
+
]),
|
|
22787
|
+
before: ConsentFlowContractDetailValueValidator.optional(),
|
|
22788
|
+
after: ConsentFlowContractDetailValueValidator.optional()
|
|
22789
|
+
});
|
|
22790
|
+
var ConsentFlowContractDiffValidator = external_exports.object({
|
|
22791
|
+
added: ConsentFlowContractScopeValidator.array(),
|
|
22792
|
+
removed: ConsentFlowContractScopeValidator.array(),
|
|
22793
|
+
changed: ConsentFlowContractScopeValidator.array(),
|
|
22794
|
+
details: ConsentFlowContractDetailChangeValidator.array().optional()
|
|
22795
|
+
});
|
|
22796
|
+
var ConsentFlowContractUpdatePreviewValidator = external_exports.object({
|
|
22797
|
+
headline: external_exports.string(),
|
|
22798
|
+
subhead: external_exports.string(),
|
|
22799
|
+
rows: external_exports.array(
|
|
22800
|
+
external_exports.object({
|
|
22801
|
+
scope: ConsentFlowContractScopeValidator,
|
|
22802
|
+
change: external_exports.enum(["added", "removed", "changed"]),
|
|
22803
|
+
label: external_exports.string(),
|
|
22804
|
+
subtitle: external_exports.string()
|
|
22805
|
+
})
|
|
22806
|
+
),
|
|
22807
|
+
primaryLabel: external_exports.string()
|
|
22808
|
+
});
|
|
22809
|
+
var ConsentFlowContractStatusValidator = external_exports.enum(["active", "retired"]);
|
|
22810
|
+
var ConsentFlowContractVersionValidator = external_exports.object({
|
|
22811
|
+
version: external_exports.number().int().positive(),
|
|
22812
|
+
createdAt: external_exports.string(),
|
|
22813
|
+
reason: external_exports.string().optional(),
|
|
22814
|
+
kind: ConsentFlowContractChangeKindValidator.optional()
|
|
22815
|
+
});
|
|
22816
|
+
var ConsentFlowContractUpdateResultValidator = external_exports.object({
|
|
22817
|
+
version: external_exports.number().int().positive(),
|
|
22818
|
+
kind: ConsentFlowContractChangeKindValidator,
|
|
22819
|
+
affectedUsers: external_exports.number().int().nonnegative(),
|
|
22820
|
+
preview: ConsentFlowContractUpdatePreviewValidator
|
|
22821
|
+
});
|
|
22822
|
+
var ConsentFlowConsentStatusValidator = external_exports.object({
|
|
22823
|
+
status: ConsentFlowTermsStatusValidator.or(external_exports.literal("not_consented")),
|
|
22824
|
+
consentedVersion: external_exports.number().int().positive().optional(),
|
|
22825
|
+
currentVersion: external_exports.number().int().positive(),
|
|
22826
|
+
needsReconsent: external_exports.boolean(),
|
|
22827
|
+
reviewUrl: external_exports.string().optional()
|
|
22828
|
+
});
|
|
22829
|
+
var ConsentFlowContractNotificationDataValidator = external_exports.object({
|
|
22830
|
+
contractUri: external_exports.string(),
|
|
22831
|
+
contractName: external_exports.string().optional(),
|
|
22832
|
+
fromVersion: external_exports.number().int().positive(),
|
|
22833
|
+
toVersion: external_exports.number().int().positive(),
|
|
22834
|
+
kind: ConsentFlowContractChangeKindValidator,
|
|
22835
|
+
reason: external_exports.string().optional(),
|
|
22836
|
+
diff: ConsentFlowContractDiffValidator,
|
|
22837
|
+
reconsentDeadline: external_exports.string().optional(),
|
|
22838
|
+
reviewUrl: external_exports.string(),
|
|
22839
|
+
preview: ConsentFlowContractUpdatePreviewValidator.optional()
|
|
22840
|
+
});
|
|
22588
22841
|
var ConsentFlowContractValidator = external_exports.object({
|
|
22589
22842
|
read: external_exports.object({
|
|
22590
22843
|
anonymize: external_exports.boolean().optional(),
|
|
@@ -22593,13 +22846,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22593
22846
|
external_exports.string(),
|
|
22594
22847
|
external_exports.object({
|
|
22595
22848
|
required: external_exports.boolean(),
|
|
22596
|
-
defaultEnabled: external_exports.boolean().optional()
|
|
22849
|
+
defaultEnabled: external_exports.boolean().optional(),
|
|
22850
|
+
reason: external_exports.string().optional()
|
|
22597
22851
|
})
|
|
22598
22852
|
).default({})
|
|
22599
22853
|
}).prefault({ categories: {} }),
|
|
22600
22854
|
personal: external_exports.record(
|
|
22601
22855
|
external_exports.string(),
|
|
22602
|
-
external_exports.object({
|
|
22856
|
+
external_exports.object({
|
|
22857
|
+
required: external_exports.boolean(),
|
|
22858
|
+
defaultEnabled: external_exports.boolean().optional(),
|
|
22859
|
+
reason: external_exports.string().optional()
|
|
22860
|
+
})
|
|
22603
22861
|
).default({})
|
|
22604
22862
|
}).prefault({ credentials: { categories: {} }, personal: {} }),
|
|
22605
22863
|
write: external_exports.object({
|
|
@@ -22608,16 +22866,55 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22608
22866
|
external_exports.string(),
|
|
22609
22867
|
external_exports.object({
|
|
22610
22868
|
required: external_exports.boolean(),
|
|
22611
|
-
defaultEnabled: external_exports.boolean().optional()
|
|
22869
|
+
defaultEnabled: external_exports.boolean().optional(),
|
|
22870
|
+
reason: external_exports.string().optional()
|
|
22612
22871
|
})
|
|
22613
22872
|
).default({})
|
|
22614
22873
|
}).prefault({ categories: {} }),
|
|
22615
22874
|
personal: external_exports.record(
|
|
22616
22875
|
external_exports.string(),
|
|
22617
|
-
external_exports.object({
|
|
22876
|
+
external_exports.object({
|
|
22877
|
+
required: external_exports.boolean(),
|
|
22878
|
+
defaultEnabled: external_exports.boolean().optional(),
|
|
22879
|
+
reason: external_exports.string().optional()
|
|
22880
|
+
})
|
|
22618
22881
|
).default({})
|
|
22619
22882
|
}).prefault({ credentials: { categories: {} }, personal: {} })
|
|
22620
22883
|
});
|
|
22884
|
+
var ConsentFlowContractScopePatchValidator = external_exports.object({
|
|
22885
|
+
required: external_exports.boolean(),
|
|
22886
|
+
defaultEnabled: external_exports.boolean().optional(),
|
|
22887
|
+
reason: external_exports.string().optional()
|
|
22888
|
+
}).nullable();
|
|
22889
|
+
var ConsentFlowContractChangesValidator = external_exports.object({
|
|
22890
|
+
contract: external_exports.object({
|
|
22891
|
+
read: external_exports.object({
|
|
22892
|
+
anonymize: external_exports.boolean().optional(),
|
|
22893
|
+
credentials: external_exports.object({
|
|
22894
|
+
categories: external_exports.record(external_exports.string(), ConsentFlowContractScopePatchValidator).optional()
|
|
22895
|
+
}).optional(),
|
|
22896
|
+
personal: external_exports.record(external_exports.string(), ConsentFlowContractScopePatchValidator).optional()
|
|
22897
|
+
}).optional(),
|
|
22898
|
+
write: external_exports.object({
|
|
22899
|
+
credentials: external_exports.object({
|
|
22900
|
+
categories: external_exports.record(external_exports.string(), ConsentFlowContractScopePatchValidator).optional()
|
|
22901
|
+
}).optional(),
|
|
22902
|
+
personal: external_exports.record(external_exports.string(), ConsentFlowContractScopePatchValidator).optional()
|
|
22903
|
+
}).optional()
|
|
22904
|
+
}).optional(),
|
|
22905
|
+
name: external_exports.string().optional(),
|
|
22906
|
+
subtitle: external_exports.string().optional(),
|
|
22907
|
+
description: external_exports.string().optional(),
|
|
22908
|
+
reasonForAccessing: external_exports.string().optional(),
|
|
22909
|
+
image: external_exports.string().optional(),
|
|
22910
|
+
needsGuardianConsent: external_exports.boolean().optional(),
|
|
22911
|
+
redirectUrl: external_exports.string().optional(),
|
|
22912
|
+
frontDoorBoostUri: external_exports.string().optional(),
|
|
22913
|
+
expiresAt: external_exports.string().nullable().optional(),
|
|
22914
|
+
autoboosts: AutoBoostConfigValidator.array().optional(),
|
|
22915
|
+
writers: external_exports.string().array().optional(),
|
|
22916
|
+
recipients: external_exports.string().array().optional()
|
|
22917
|
+
});
|
|
22621
22918
|
var ConsentFlowContractDetailsValidator = external_exports.object({
|
|
22622
22919
|
contract: ConsentFlowContractValidator,
|
|
22623
22920
|
owner: LCNProfileValidator,
|
|
@@ -22636,7 +22933,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22636
22933
|
autoBoosts: external_exports.string().array().optional(),
|
|
22637
22934
|
writers: external_exports.array(LCNProfileValidator).optional(),
|
|
22638
22935
|
recipients: external_exports.array(LCNPublicProfileValidator.extend({ did: external_exports.string() })).optional(),
|
|
22639
|
-
audienceVersion: external_exports.number().int().nonnegative().optional()
|
|
22936
|
+
audienceVersion: external_exports.number().int().nonnegative().optional(),
|
|
22937
|
+
version: external_exports.number().int().positive(),
|
|
22938
|
+
status: ConsentFlowContractStatusValidator.optional(),
|
|
22939
|
+
latestUpdate: external_exports.object({
|
|
22940
|
+
fromVersion: external_exports.number().int().positive(),
|
|
22941
|
+
toVersion: external_exports.number().int().positive(),
|
|
22942
|
+
kind: ConsentFlowContractChangeKindValidator,
|
|
22943
|
+
reason: external_exports.string().optional(),
|
|
22944
|
+
diff: ConsentFlowContractDiffValidator,
|
|
22945
|
+
reconsentDeadline: external_exports.string().optional(),
|
|
22946
|
+
createdAt: external_exports.string(),
|
|
22947
|
+
preview: ConsentFlowContractUpdatePreviewValidator
|
|
22948
|
+
}).optional()
|
|
22640
22949
|
});
|
|
22641
22950
|
var ConsentFlowContractRequestStatusValidator = external_exports.enum(["pending", "accepted", "denied", "cancelled"]).nullable();
|
|
22642
22951
|
var ConsentFlowContractRequestReadStatusValidator = external_exports.enum(["unseen", "seen"]).nullable();
|
|
@@ -22725,7 +23034,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22725
23034
|
contract: ConsentFlowContractDetailsValidator,
|
|
22726
23035
|
uri: external_exports.string(),
|
|
22727
23036
|
consenter: LCNProfileValidator,
|
|
22728
|
-
status: ConsentFlowTermsStatusValidator
|
|
23037
|
+
status: ConsentFlowTermsStatusValidator,
|
|
23038
|
+
consentedVersion: external_exports.number().int().positive(),
|
|
23039
|
+
lastReviewedVersion: external_exports.number().int().positive().optional(),
|
|
23040
|
+
reconsentDeadline: external_exports.string().optional(),
|
|
23041
|
+
newOptionsUntil: external_exports.string().optional(),
|
|
23042
|
+
cumulativeUpdate: ConsentFlowContractDetailsValidator.shape.latestUpdate
|
|
22729
23043
|
}).array()
|
|
22730
23044
|
});
|
|
22731
23045
|
var ConsentFlowGuardianApprovalValidator = external_exports.object({
|
|
@@ -22801,7 +23115,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22801
23115
|
"update",
|
|
22802
23116
|
"sync",
|
|
22803
23117
|
"withdraw",
|
|
22804
|
-
"write"
|
|
23118
|
+
"write",
|
|
23119
|
+
"reconsent"
|
|
22805
23120
|
]);
|
|
22806
23121
|
var ConsentFlowTransactionsQueryValidator = external_exports.object({
|
|
22807
23122
|
terms: ConsentFlowTermsQueryValidator.optional(),
|
|
@@ -22820,8 +23135,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22820
23135
|
referral: ConsentFlowReferralValidator.optional(),
|
|
22821
23136
|
id: external_exports.string(),
|
|
22822
23137
|
action: ConsentFlowTransactionActionValidator,
|
|
23138
|
+
kind: ConsentFlowContractChangeKindValidator.optional(),
|
|
22823
23139
|
date: external_exports.string(),
|
|
22824
|
-
uris: external_exports.string().array().optional()
|
|
23140
|
+
uris: external_exports.string().array().optional(),
|
|
23141
|
+
consentedVersion: external_exports.number().int().positive().optional(),
|
|
23142
|
+
reconsentDeadline: external_exports.string().optional(),
|
|
23143
|
+
newOptionsUntil: external_exports.string().optional()
|
|
22825
23144
|
});
|
|
22826
23145
|
var HolderExportConsentRecordValidator = external_exports.object({
|
|
22827
23146
|
termsUri: external_exports.string(),
|
|
@@ -22829,6 +23148,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22829
23148
|
contract: ConsentFlowContractDetailsValidator,
|
|
22830
23149
|
terms: ConsentFlowTermsValidator,
|
|
22831
23150
|
referral: ConsentFlowReferralValidator.optional(),
|
|
23151
|
+
consentedVersion: external_exports.number().int().positive(),
|
|
23152
|
+
reconsentDeadline: external_exports.string().optional(),
|
|
23153
|
+
newOptionsUntil: external_exports.string().optional(),
|
|
23154
|
+
cumulativeUpdate: ConsentFlowContractDetailsValidator.shape.latestUpdate,
|
|
22832
23155
|
transactions: ConsentFlowTransactionValidator.array()
|
|
22833
23156
|
});
|
|
22834
23157
|
var HolderExportMetadataValidator = external_exports.object({
|
|
@@ -22889,10 +23212,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22889
23212
|
"GUARDIAN_APPROVED",
|
|
22890
23213
|
"GUARDIAN_REJECTED",
|
|
22891
23214
|
"APP_NOTIFICATION",
|
|
23215
|
+
"ANNOUNCEMENT",
|
|
22892
23216
|
"CREDENTIAL_REVOKED",
|
|
22893
23217
|
"CREDENTIAL_SUSPENDED",
|
|
22894
23218
|
"CREDENTIAL_UNSUSPENDED",
|
|
22895
|
-
"CREDENTIAL_REFRESHED"
|
|
23219
|
+
"CREDENTIAL_REFRESHED",
|
|
23220
|
+
"CONSENT_FLOW_CONTRACT_UPDATED"
|
|
22896
23221
|
]);
|
|
22897
23222
|
var LCNNotificationMessageValidator = external_exports.object({
|
|
22898
23223
|
title: external_exports.string().optional(),
|
|
@@ -22921,12 +23246,26 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
22921
23246
|
timestamp: external_exports.iso.datetime().optional()
|
|
22922
23247
|
});
|
|
22923
23248
|
var LCNNotificationMetadataValidator = external_exports.object({
|
|
22924
|
-
connectionPrompt: LCNConnectionPromptMetadataValidator.optional()
|
|
23249
|
+
connectionPrompt: LCNConnectionPromptMetadataValidator.optional(),
|
|
23250
|
+
campaignId: external_exports.string().regex(/^[a-z0-9-]{3,64}$/).optional(),
|
|
23251
|
+
campaignCreatedAt: external_exports.iso.datetime().optional(),
|
|
23252
|
+
campaignHasInApp: external_exports.boolean().optional(),
|
|
23253
|
+
campaignTestId: external_exports.uuid().optional()
|
|
22925
23254
|
}).catchall(external_exports.unknown());
|
|
22926
23255
|
var LCNNotificationDataValidator = external_exports.object({
|
|
22927
23256
|
vcUris: external_exports.array(external_exports.string()).optional(),
|
|
22928
23257
|
vpUris: external_exports.array(external_exports.string()).optional(),
|
|
22929
23258
|
transaction: ConsentFlowTransactionValidator.optional(),
|
|
23259
|
+
contractUri: external_exports.string().optional(),
|
|
23260
|
+
contractName: external_exports.string().optional(),
|
|
23261
|
+
fromVersion: external_exports.number().int().positive().optional(),
|
|
23262
|
+
toVersion: external_exports.number().int().positive().optional(),
|
|
23263
|
+
kind: ConsentFlowContractChangeKindValidator.optional(),
|
|
23264
|
+
reason: external_exports.string().optional(),
|
|
23265
|
+
diff: ConsentFlowContractDiffValidator.optional(),
|
|
23266
|
+
reconsentDeadline: external_exports.string().optional(),
|
|
23267
|
+
reviewUrl: external_exports.string().optional(),
|
|
23268
|
+
preview: ConsentFlowContractUpdatePreviewValidator.optional(),
|
|
22930
23269
|
inbox: LCNNotificationInboxValidator.optional(),
|
|
22931
23270
|
metadata: LCNNotificationMetadataValidator.optional()
|
|
22932
23271
|
}).loose();
|
|
@@ -24039,29 +24378,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
24039
24378
|
*/
|
|
24040
24379
|
wrongAttempts: external_exports.number().int().nonnegative().optional()
|
|
24041
24380
|
});
|
|
24042
|
-
var BITSTRING_STATUS_PURPOSES = ["revocation", "suspension"];
|
|
24043
|
-
var DEFAULT_BITSTRING_STATUS_LIST_SIZE = 131072;
|
|
24044
|
-
var BitstringStatusPurposeValidator = external_exports.enum(BITSTRING_STATUS_PURPOSES);
|
|
24045
|
-
var BitstringStatusListEntryValidator = external_exports.object({
|
|
24046
|
-
id: external_exports.string().optional(),
|
|
24047
|
-
type: external_exports.literal("BitstringStatusListEntry"),
|
|
24048
|
-
statusPurpose: BitstringStatusPurposeValidator,
|
|
24049
|
-
statusListIndex: external_exports.string().or(external_exports.number().int().nonnegative()),
|
|
24050
|
-
statusListCredential: external_exports.string()
|
|
24051
|
-
});
|
|
24052
|
-
var AllocatedBitstringStatusListEntryValidator = BitstringStatusListEntryValidator.extend({
|
|
24053
|
-
id: external_exports.string()
|
|
24054
|
-
});
|
|
24055
|
-
var BitstringStatusListCredentialSubjectValidator = external_exports.object({
|
|
24056
|
-
id: external_exports.string().optional(),
|
|
24057
|
-
type: external_exports.literal("BitstringStatusList"),
|
|
24058
|
-
statusPurpose: BitstringStatusPurposeValidator,
|
|
24059
|
-
encodedList: external_exports.string()
|
|
24060
|
-
});
|
|
24061
|
-
var AllocateCredentialStatusInputValidator = external_exports.object({
|
|
24062
|
-
statusPurposes: external_exports.array(BitstringStatusPurposeValidator).optional(),
|
|
24063
|
-
listSize: external_exports.number().int().positive().optional()
|
|
24064
|
-
}).default({});
|
|
24065
24381
|
var isSafeInAppMessagePath = /* @__PURE__ */ __name2((path) => {
|
|
24066
24382
|
let decoded = path;
|
|
24067
24383
|
for (let depth = 0; depth < 5; depth += 1) {
|
|
@@ -24389,24 +24705,46 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
24389
24705
|
}, "parseInAppMessagesFlag");
|
|
24390
24706
|
var CampaignIdValidator = external_exports.string().regex(/^[a-z0-9-]{3,64}$/);
|
|
24391
24707
|
var CampaignStatusValidator = external_exports.enum(["draft", "live", "paused", "archived"]);
|
|
24392
|
-
var CampaignChannelValidator = external_exports.enum(["inApp", "notify"]);
|
|
24708
|
+
var CampaignChannelValidator = external_exports.enum(["inApp", "notify", "email"]);
|
|
24393
24709
|
var CampaignEventValidator = external_exports.enum(["shown", "clicked", "dismissed", "converted"]);
|
|
24394
|
-
var timestamp = external_exports.iso.datetime({ offset: true }).overwrite((value) =>
|
|
24710
|
+
var timestamp = external_exports.iso.datetime({ offset: true }).overwrite((value) => {
|
|
24711
|
+
const date5 = new Date(value);
|
|
24712
|
+
return Number.isFinite(date5.getTime()) ? date5.toISOString() : value;
|
|
24713
|
+
});
|
|
24395
24714
|
var notification = external_exports.object({ title: external_exports.string().min(1), body: external_exports.string().min(1) }).strict();
|
|
24396
|
-
var
|
|
24715
|
+
var CampaignEmailValidator = external_exports.object({
|
|
24716
|
+
subject: external_exports.string().trim().min(1).max(200).regex(/^[^\r\n]+$/),
|
|
24717
|
+
title: external_exports.string().trim().min(1).max(200),
|
|
24718
|
+
body: external_exports.string().trim().min(1).max(2e4),
|
|
24719
|
+
heroImageUrl: external_exports.url().startsWith("https://").max(2048).optional(),
|
|
24720
|
+
ctaLabel: external_exports.string().trim().min(1).max(100)
|
|
24721
|
+
}).strict();
|
|
24722
|
+
var AnnouncementPreferencesValidator = external_exports.object({
|
|
24723
|
+
announcementEmailOptOut: external_exports.boolean(),
|
|
24724
|
+
announcementPushOptOut: external_exports.boolean()
|
|
24725
|
+
}).strict();
|
|
24726
|
+
var channels = external_exports.array(CampaignChannelValidator).min(1).max(3).refine((values) => new Set(values).size === values.length, "Channels must be unique");
|
|
24397
24727
|
var campaignDefinition = external_exports.object({
|
|
24398
24728
|
id: CampaignIdValidator,
|
|
24399
24729
|
name: external_exports.string().trim().min(1).max(200),
|
|
24400
24730
|
status: CampaignStatusValidator.default("draft"),
|
|
24401
24731
|
channels,
|
|
24402
|
-
message: inAppMessageValidator,
|
|
24732
|
+
message: inAppMessageValidator.optional(),
|
|
24403
24733
|
notification: notification.optional(),
|
|
24734
|
+
email: CampaignEmailValidator.optional(),
|
|
24404
24735
|
startsAt: timestamp.optional(),
|
|
24405
24736
|
endsAt: timestamp.optional(),
|
|
24406
24737
|
excludeMinors: external_exports.boolean().default(true),
|
|
24407
24738
|
selfEnroll: external_exports.boolean().default(false)
|
|
24408
24739
|
}).strict();
|
|
24409
24740
|
var validDefinition = /* @__PURE__ */ __name2((value, ctx) => {
|
|
24741
|
+
if (value.channels.includes("inApp") && !value.message) {
|
|
24742
|
+
ctx.addIssue({
|
|
24743
|
+
code: "custom",
|
|
24744
|
+
path: ["message"],
|
|
24745
|
+
message: "In-app requires a message"
|
|
24746
|
+
});
|
|
24747
|
+
}
|
|
24410
24748
|
if (value.channels.includes("notify") && !value.notification) {
|
|
24411
24749
|
ctx.addIssue({
|
|
24412
24750
|
code: "custom",
|
|
@@ -24414,15 +24752,23 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
24414
24752
|
message: "Notify requires a title and body"
|
|
24415
24753
|
});
|
|
24416
24754
|
}
|
|
24755
|
+
if (value.channels.includes("email") && !value.email) {
|
|
24756
|
+
ctx.addIssue({
|
|
24757
|
+
code: "custom",
|
|
24758
|
+
path: ["email"],
|
|
24759
|
+
message: "Email requires announcement content"
|
|
24760
|
+
});
|
|
24761
|
+
}
|
|
24417
24762
|
if (value.startsAt && value.endsAt && value.startsAt >= value.endsAt) {
|
|
24418
24763
|
ctx.addIssue({ code: "custom", path: ["endsAt"], message: "End must be after start" });
|
|
24419
24764
|
}
|
|
24420
24765
|
}, "validDefinition");
|
|
24421
24766
|
var CampaignValidator = campaignDefinition.extend({
|
|
24767
|
+
tenantId: external_exports.string().optional(),
|
|
24422
24768
|
createdAt: timestamp,
|
|
24423
24769
|
updatedAt: timestamp
|
|
24424
24770
|
}).superRefine(validDefinition).superRefine((value, ctx) => {
|
|
24425
|
-
if (value.message.id !== value.id) {
|
|
24771
|
+
if (value.message && value.message.id !== value.id) {
|
|
24426
24772
|
ctx.addIssue({
|
|
24427
24773
|
code: "custom",
|
|
24428
24774
|
path: ["message", "id"],
|
|
@@ -24431,21 +24777,23 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
24431
24777
|
}
|
|
24432
24778
|
});
|
|
24433
24779
|
var CreateCampaignInputValidator = campaignDefinition.extend({
|
|
24434
|
-
message: inAppMessageAuthoringValidator
|
|
24780
|
+
message: inAppMessageAuthoringValidator.optional()
|
|
24435
24781
|
}).superRefine(validDefinition);
|
|
24436
24782
|
var CampaignUpdatesValidator = campaignDefinition.omit({ id: true }).partial().extend({
|
|
24437
24783
|
// A PATCH must not apply creation defaults to fields the caller omitted.
|
|
24438
24784
|
status: CampaignStatusValidator.optional(),
|
|
24439
24785
|
excludeMinors: external_exports.boolean().optional(),
|
|
24440
24786
|
selfEnroll: external_exports.boolean().optional(),
|
|
24441
|
-
message: inAppMessageAuthoringValidator.optional(),
|
|
24787
|
+
message: inAppMessageAuthoringValidator.nullable().optional(),
|
|
24442
24788
|
notification: notification.nullable().optional(),
|
|
24789
|
+
email: CampaignEmailValidator.nullable().optional(),
|
|
24443
24790
|
startsAt: timestamp.nullable().optional(),
|
|
24444
24791
|
endsAt: timestamp.nullable().optional()
|
|
24445
24792
|
}).strict();
|
|
24446
24793
|
var UpdateCampaignInputValidator = external_exports.object({
|
|
24447
24794
|
campaignId: CampaignIdValidator,
|
|
24448
|
-
updates: CampaignUpdatesValidator
|
|
24795
|
+
updates: CampaignUpdatesValidator,
|
|
24796
|
+
expectedUpdatedAt: timestamp.optional()
|
|
24449
24797
|
}).strict();
|
|
24450
24798
|
var identifier = external_exports.string().trim().min(1).max(2048);
|
|
24451
24799
|
var metadataKey = external_exports.string().regex(/^[a-zA-Z_][a-zA-Z0-9_.-]{0,63}$/).refine(
|
|
@@ -24497,7 +24845,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
24497
24845
|
clickedAt: timestamp.optional(),
|
|
24498
24846
|
dismissedAt: timestamp.optional(),
|
|
24499
24847
|
convertedAt: timestamp.optional(),
|
|
24500
|
-
notifiedAt: timestamp.optional()
|
|
24848
|
+
notifiedAt: timestamp.optional(),
|
|
24849
|
+
emailedAt: timestamp.optional()
|
|
24501
24850
|
});
|
|
24502
24851
|
var MyCampaignValidator = external_exports.object({
|
|
24503
24852
|
campaign: campaignDefinition.pick({
|
|
@@ -24506,12 +24855,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
24506
24855
|
startsAt: true,
|
|
24507
24856
|
endsAt: true,
|
|
24508
24857
|
selfEnroll: true
|
|
24509
|
-
}),
|
|
24510
|
-
state: CampaignUserStateValidator
|
|
24858
|
+
}).extend({ message: inAppMessageValidator }),
|
|
24859
|
+
state: CampaignUserStateValidator,
|
|
24860
|
+
testId: external_exports.uuid().optional()
|
|
24861
|
+
});
|
|
24862
|
+
var CampaignTestValidator = external_exports.object({
|
|
24863
|
+
id: external_exports.uuid(),
|
|
24864
|
+
campaignId: CampaignIdValidator,
|
|
24865
|
+
message: inAppMessageValidator
|
|
24511
24866
|
});
|
|
24512
24867
|
var CampaignStatsValidator = external_exports.object({
|
|
24513
24868
|
audience: external_exports.number().int().nonnegative(),
|
|
24514
24869
|
notified: external_exports.number().int().nonnegative(),
|
|
24870
|
+
emailed: external_exports.number().int().nonnegative(),
|
|
24515
24871
|
shown: external_exports.number().int().nonnegative(),
|
|
24516
24872
|
clicked: external_exports.number().int().nonnegative(),
|
|
24517
24873
|
dismissed: external_exports.number().int().nonnegative(),
|
|
@@ -24538,6 +24894,31 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
24538
24894
|
hasMore: external_exports.boolean(),
|
|
24539
24895
|
cursor: external_exports.string().optional()
|
|
24540
24896
|
});
|
|
24897
|
+
var CampaignDispatchPreviewValidator = external_exports.object({
|
|
24898
|
+
campaignId: CampaignIdValidator,
|
|
24899
|
+
audienceCount: external_exports.number().int().nonnegative(),
|
|
24900
|
+
alreadyNotifiedCount: external_exports.number().int().nonnegative(),
|
|
24901
|
+
recipientCount: external_exports.number().int().nonnegative(),
|
|
24902
|
+
notificationRecipientCount: external_exports.number().int().nonnegative().optional(),
|
|
24903
|
+
emailRecipientCount: external_exports.number().int().nonnegative().optional(),
|
|
24904
|
+
previewToken: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
24905
|
+
blockedReason: external_exports.enum([
|
|
24906
|
+
"not_live",
|
|
24907
|
+
"notify_disabled",
|
|
24908
|
+
"email_confirmation_required",
|
|
24909
|
+
"not_started",
|
|
24910
|
+
"ended",
|
|
24911
|
+
"no_recipients"
|
|
24912
|
+
]).optional()
|
|
24913
|
+
});
|
|
24914
|
+
var CampaignDispatchOptionsValidator = external_exports.object({
|
|
24915
|
+
expectedPreviewToken: CampaignDispatchPreviewValidator.shape.previewToken.optional()
|
|
24916
|
+
}).strict();
|
|
24917
|
+
var CampaignAudienceResultValidator = external_exports.object({
|
|
24918
|
+
count: external_exports.number().int().nonnegative(),
|
|
24919
|
+
added: external_exports.number().int().nonnegative(),
|
|
24920
|
+
notFound: external_exports.array(external_exports.string())
|
|
24921
|
+
});
|
|
24541
24922
|
var SHARE_LINK_ID_BYTES = 16;
|
|
24542
24923
|
var SHARE_CONTENT_KEY_BYTES = 32;
|
|
24543
24924
|
var SHARE_IV_BYTES = 12;
|
|
@@ -25062,6 +25443,217 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
25062
25443
|
}
|
|
25063
25444
|
);
|
|
25064
25445
|
var GenerateSkillIconsInputValidator = external_exports.object({ names: SkillIconNamesValidator });
|
|
25446
|
+
var RoleValidator = external_exports.enum(["user", "assistant", "tool", "system"]);
|
|
25447
|
+
var AiSessionMode = {
|
|
25448
|
+
tutor: "ai-tutor",
|
|
25449
|
+
insights: "ai-insights"
|
|
25450
|
+
};
|
|
25451
|
+
var AiSessionModeValidator = external_exports.enum([AiSessionMode.tutor, AiSessionMode.insights]);
|
|
25452
|
+
var StructuredResponseValidator = external_exports.object({
|
|
25453
|
+
notes: external_exports.string().optional(),
|
|
25454
|
+
questions: external_exports.array(external_exports.string())
|
|
25455
|
+
});
|
|
25456
|
+
var IntroStreamModeValidator = external_exports.enum(["formatted", "structured"]);
|
|
25457
|
+
var ChatMessageValidator = external_exports.object({
|
|
25458
|
+
role: RoleValidator,
|
|
25459
|
+
content: external_exports.string().nullable(),
|
|
25460
|
+
tool_call_id: external_exports.string().optional(),
|
|
25461
|
+
tool_calls: external_exports.array(
|
|
25462
|
+
external_exports.object({
|
|
25463
|
+
id: external_exports.string(),
|
|
25464
|
+
type: external_exports.literal("function"),
|
|
25465
|
+
function: external_exports.object({
|
|
25466
|
+
name: external_exports.string(),
|
|
25467
|
+
arguments: external_exports.string()
|
|
25468
|
+
})
|
|
25469
|
+
})
|
|
25470
|
+
).optional()
|
|
25471
|
+
});
|
|
25472
|
+
var InsightArtifactValidator = external_exports.object({
|
|
25473
|
+
title: external_exports.string(),
|
|
25474
|
+
summary: external_exports.string(),
|
|
25475
|
+
category: external_exports.string(),
|
|
25476
|
+
question: external_exports.string(),
|
|
25477
|
+
narrative: external_exports.string()
|
|
25478
|
+
});
|
|
25479
|
+
var ArtifactSuggestionValidator = external_exports.object({
|
|
25480
|
+
artifact: InsightArtifactValidator,
|
|
25481
|
+
source_text: external_exports.string().optional(),
|
|
25482
|
+
created_at: external_exports.string()
|
|
25483
|
+
});
|
|
25484
|
+
var ThreadCredentialContextValidator = external_exports.object({
|
|
25485
|
+
uri: external_exports.string(),
|
|
25486
|
+
type: external_exports.string(),
|
|
25487
|
+
context: external_exports.string(),
|
|
25488
|
+
score: external_exports.number(),
|
|
25489
|
+
strongestScore: external_exports.number().optional(),
|
|
25490
|
+
averageScore: external_exports.number().optional(),
|
|
25491
|
+
matchCount: external_exports.number().optional(),
|
|
25492
|
+
title: external_exports.string().optional()
|
|
25493
|
+
});
|
|
25494
|
+
var ThreadValidator = external_exports.object({
|
|
25495
|
+
id: external_exports.string(),
|
|
25496
|
+
did: external_exports.string(),
|
|
25497
|
+
topicCredentialUri: external_exports.string().nullable().optional(),
|
|
25498
|
+
title: external_exports.string(),
|
|
25499
|
+
created_at: external_exports.string(),
|
|
25500
|
+
last_message_at: external_exports.string(),
|
|
25501
|
+
active: external_exports.boolean().optional(),
|
|
25502
|
+
ended_at: external_exports.string().optional(),
|
|
25503
|
+
plan_started_at: external_exports.string().optional(),
|
|
25504
|
+
summaries: external_exports.array(
|
|
25505
|
+
external_exports.object({
|
|
25506
|
+
summary_data: external_exports.string(),
|
|
25507
|
+
credential_uri: external_exports.string(),
|
|
25508
|
+
created_at: external_exports.string()
|
|
25509
|
+
})
|
|
25510
|
+
).optional(),
|
|
25511
|
+
plans: external_exports.array(
|
|
25512
|
+
external_exports.object({
|
|
25513
|
+
plan_data: external_exports.string(),
|
|
25514
|
+
created_at: external_exports.string(),
|
|
25515
|
+
consentRevision: external_exports.string().optional()
|
|
25516
|
+
})
|
|
25517
|
+
).optional(),
|
|
25518
|
+
credentials: external_exports.array(ThreadCredentialContextValidator).optional(),
|
|
25519
|
+
credentialSearchTopic: external_exports.string().optional(),
|
|
25520
|
+
credentialContextStatus: external_exports.enum(["pending", "ready", "empty", "error"]).optional(),
|
|
25521
|
+
mode: AiSessionModeValidator.optional(),
|
|
25522
|
+
artifactSuggestions: external_exports.array(ArtifactSuggestionValidator).optional()
|
|
25523
|
+
});
|
|
25524
|
+
var CredentialVerificationMetadataValidator = external_exports.object({
|
|
25525
|
+
credentialUri: external_exports.string(),
|
|
25526
|
+
contentHash: external_exports.string().regex(/^[a-f0-9]{64}$/),
|
|
25527
|
+
status: external_exports.enum(["valid", "invalid"]),
|
|
25528
|
+
checkedAt: external_exports.string().datetime(),
|
|
25529
|
+
verifier: external_exports.object({
|
|
25530
|
+
name: external_exports.string(),
|
|
25531
|
+
version: external_exports.string()
|
|
25532
|
+
}),
|
|
25533
|
+
verifiedPayload: external_exports.enum(["credential", "boostCredential"]),
|
|
25534
|
+
checks: external_exports.array(external_exports.string()),
|
|
25535
|
+
errors: external_exports.array(external_exports.string()),
|
|
25536
|
+
warnings: external_exports.array(external_exports.string()),
|
|
25537
|
+
provenance: external_exports.object({
|
|
25538
|
+
source: external_exports.enum(["wallet", "generated"]),
|
|
25539
|
+
retrievedAt: external_exports.string().datetime()
|
|
25540
|
+
}),
|
|
25541
|
+
consent: external_exports.object({
|
|
25542
|
+
contractUri: external_exports.string(),
|
|
25543
|
+
receiptId: external_exports.string().min(1),
|
|
25544
|
+
grantedAt: external_exports.string().datetime().optional(),
|
|
25545
|
+
updatedAt: external_exports.string().datetime(),
|
|
25546
|
+
contractUpdatedAt: external_exports.string().min(1),
|
|
25547
|
+
status: external_exports.literal("live"),
|
|
25548
|
+
expiresAt: external_exports.string().datetime().optional(),
|
|
25549
|
+
contractExpiresAt: external_exports.string().datetime().optional(),
|
|
25550
|
+
categories: external_exports.array(external_exports.string()),
|
|
25551
|
+
credentialUris: external_exports.array(external_exports.string()),
|
|
25552
|
+
personalFields: external_exports.array(external_exports.string()),
|
|
25553
|
+
purpose: external_exports.enum(["credential-ingestion", "model-inference", "embedding"]),
|
|
25554
|
+
revision: external_exports.string().min(1),
|
|
25555
|
+
guardian: external_exports.object({ required: external_exports.boolean(), approved: external_exports.boolean() })
|
|
25556
|
+
})
|
|
25557
|
+
});
|
|
25558
|
+
var ModelSafeCredentialFactValidator = external_exports.object({
|
|
25559
|
+
kind: external_exports.enum([
|
|
25560
|
+
"skill",
|
|
25561
|
+
"goal",
|
|
25562
|
+
"achievement",
|
|
25563
|
+
"course",
|
|
25564
|
+
"experience",
|
|
25565
|
+
"competency",
|
|
25566
|
+
"title",
|
|
25567
|
+
"summary",
|
|
25568
|
+
"assessment",
|
|
25569
|
+
"grade",
|
|
25570
|
+
"date",
|
|
25571
|
+
"alignment",
|
|
25572
|
+
"criteria",
|
|
25573
|
+
"pathway",
|
|
25574
|
+
"topic"
|
|
25575
|
+
]),
|
|
25576
|
+
value: external_exports.string().min(1).max(240),
|
|
25577
|
+
label: external_exports.string().min(1).max(120).optional()
|
|
25578
|
+
});
|
|
25579
|
+
var ModelSafeCredentialProjectionValidator = external_exports.object({
|
|
25580
|
+
schemaVersion: external_exports.literal("1"),
|
|
25581
|
+
category: external_exports.string().min(1).max(120),
|
|
25582
|
+
credentialTypes: external_exports.array(external_exports.string().min(1).max(120)).max(20),
|
|
25583
|
+
facts: external_exports.array(ModelSafeCredentialFactValidator).max(100),
|
|
25584
|
+
// Present only on credentials that are past their expiry, so the model can
|
|
25585
|
+
// tell a lapsed credential from a current one.
|
|
25586
|
+
expired: external_exports.literal(true).optional(),
|
|
25587
|
+
expirationDate: external_exports.string().datetime().optional()
|
|
25588
|
+
});
|
|
25589
|
+
var AIPassportCredentialRecordValidator = external_exports.object({
|
|
25590
|
+
id: external_exports.string(),
|
|
25591
|
+
uri: external_exports.string(),
|
|
25592
|
+
category: external_exports.string(),
|
|
25593
|
+
credential: VCValidator,
|
|
25594
|
+
aiContext: external_exports.string(),
|
|
25595
|
+
generalSummary: external_exports.string().optional(),
|
|
25596
|
+
createdAt: external_exports.string(),
|
|
25597
|
+
verification: CredentialVerificationMetadataValidator.optional(),
|
|
25598
|
+
projection: ModelSafeCredentialProjectionValidator.optional()
|
|
25599
|
+
});
|
|
25600
|
+
var AuthenticatedMessageValidator = external_exports.object({
|
|
25601
|
+
message: ChatMessageValidator.optional(),
|
|
25602
|
+
threadId: external_exports.string().optional(),
|
|
25603
|
+
selectedQuestion: external_exports.string().optional(),
|
|
25604
|
+
action: external_exports.enum([
|
|
25605
|
+
"start_topic",
|
|
25606
|
+
"continue_plan",
|
|
25607
|
+
"start_topic_uri",
|
|
25608
|
+
"start_learning_pathway",
|
|
25609
|
+
"start_insights_session",
|
|
25610
|
+
"close_insights_session",
|
|
25611
|
+
"artifact_suggestion"
|
|
25612
|
+
]).optional(),
|
|
25613
|
+
topic: external_exports.string().optional(),
|
|
25614
|
+
topicUri: external_exports.string().optional(),
|
|
25615
|
+
pathwayUri: external_exports.string().optional(),
|
|
25616
|
+
mode: AiSessionModeValidator.optional(),
|
|
25617
|
+
introStreamMode: IntroStreamModeValidator.optional(),
|
|
25618
|
+
// BCP-47 language for AI responses (LC-1901). This has to live on the
|
|
25619
|
+
// validator, not just the inferred type — z.object strips unknown keys, so an
|
|
25620
|
+
// undeclared `locale` would be dropped before the WS handler ever saw it.
|
|
25621
|
+
locale: external_exports.string().nullish()
|
|
25622
|
+
});
|
|
25623
|
+
var DebugInfoValidator = external_exports.object({
|
|
25624
|
+
operation: external_exports.string(),
|
|
25625
|
+
collection: external_exports.string(),
|
|
25626
|
+
input: external_exports.unknown().optional(),
|
|
25627
|
+
output: external_exports.unknown().optional(),
|
|
25628
|
+
timestamp: external_exports.string(),
|
|
25629
|
+
duration: external_exports.number().optional()
|
|
25630
|
+
});
|
|
25631
|
+
var TimingEventValidator = external_exports.object({
|
|
25632
|
+
event: external_exports.literal("timing"),
|
|
25633
|
+
operation: external_exports.string(),
|
|
25634
|
+
phase: external_exports.enum(["start", "end", "complete"]),
|
|
25635
|
+
duration: external_exports.number().optional(),
|
|
25636
|
+
metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
25637
|
+
timestamp: external_exports.string()
|
|
25638
|
+
});
|
|
25639
|
+
var LearningPathwayValidator = external_exports.object({
|
|
25640
|
+
id: external_exports.string(),
|
|
25641
|
+
learningPathway: external_exports.object({
|
|
25642
|
+
stepIndex: external_exports.number(),
|
|
25643
|
+
step: external_exports.object({
|
|
25644
|
+
title: external_exports.string(),
|
|
25645
|
+
description: external_exports.string(),
|
|
25646
|
+
summary: external_exports.string(),
|
|
25647
|
+
learned: external_exports.array(external_exports.string()),
|
|
25648
|
+
skills: external_exports.array(
|
|
25649
|
+
external_exports.object({
|
|
25650
|
+
title: external_exports.string(),
|
|
25651
|
+
description: external_exports.string()
|
|
25652
|
+
})
|
|
25653
|
+
)
|
|
25654
|
+
})
|
|
25655
|
+
})
|
|
25656
|
+
});
|
|
25065
25657
|
}
|
|
25066
25658
|
});
|
|
25067
25659
|
|
|
@@ -25087,12 +25679,14 @@ __export(index_exports, {
|
|
|
25087
25679
|
EMAIL_RELAY_ALGORITHM: () => EMAIL_RELAY_ALGORITHM,
|
|
25088
25680
|
EMAIL_RELAY_ENVELOPE_VERSION: () => EMAIL_RELAY_ENVELOPE_VERSION,
|
|
25089
25681
|
ESCROW_ALGORITHM: () => ESCROW_ALGORITHM,
|
|
25682
|
+
ESCROW_AUTHORITY_TENANT_PATTERN: () => ESCROW_AUTHORITY_TENANT_PATTERN,
|
|
25090
25683
|
ESCROW_BLOB_INFO: () => ESCROW_BLOB_INFO,
|
|
25091
25684
|
ESCROW_CLIENT_KEY_ID: () => ESCROW_CLIENT_KEY_ID,
|
|
25092
25685
|
ESCROW_ENROLLMENT_INTENT_DOMAIN: () => ESCROW_ENROLLMENT_INTENT_DOMAIN,
|
|
25093
25686
|
ESCROW_ENVELOPE_VERSION: () => ESCROW_ENVELOPE_VERSION,
|
|
25094
25687
|
ESCROW_PIN_MAX_ATTEMPTS: () => ESCROW_PIN_MAX_ATTEMPTS,
|
|
25095
25688
|
ESCROW_RELEASE_INFO: () => ESCROW_RELEASE_INFO,
|
|
25689
|
+
EscrowAuthorityTenantMismatchError: () => EscrowAuthorityTenantMismatchError,
|
|
25096
25690
|
EscrowEvidenceError: () => EscrowEvidenceError,
|
|
25097
25691
|
EscrowHoldRestartThrottledError: () => EscrowHoldRestartThrottledError,
|
|
25098
25692
|
EscrowPinLockedError: () => EscrowPinLockedError,
|
|
@@ -25101,6 +25695,8 @@ __export(index_exports, {
|
|
|
25101
25695
|
EscrowPinUnavailableError: () => EscrowPinUnavailableError,
|
|
25102
25696
|
EscrowRequestError: () => EscrowRequestError,
|
|
25103
25697
|
IdentityRecoverySessionConsumedError: () => IdentityRecoverySessionConsumedError,
|
|
25698
|
+
MAX_ESCROW_EMAIL_BRAND_DIGITS: () => MAX_ESCROW_EMAIL_BRAND_DIGITS,
|
|
25699
|
+
MAX_ESCROW_EMAIL_BRAND_LENGTH: () => MAX_ESCROW_EMAIL_BRAND_LENGTH,
|
|
25104
25700
|
NitroAttestationError: () => NitroAttestationError,
|
|
25105
25701
|
PIN_MAX_LENGTH: () => PIN_MAX_LENGTH,
|
|
25106
25702
|
PIN_MIN_LENGTH: () => PIN_MIN_LENGTH,
|
|
@@ -25118,6 +25714,7 @@ __export(index_exports, {
|
|
|
25118
25714
|
bufferToBase64: () => bufferToBase64,
|
|
25119
25715
|
buildRecoveryPhraseChallengeOptions: () => buildRecoveryPhraseChallengeOptions,
|
|
25120
25716
|
bytesToHex: () => bytesToHex,
|
|
25717
|
+
canonicalEscrowEmailBrand: () => canonicalEscrowEmailBrand,
|
|
25121
25718
|
clearAllShares: () => clearAllShares,
|
|
25122
25719
|
constantTimeEqualHex: () => constantTimeEqualHex,
|
|
25123
25720
|
countWords: () => countWords,
|
|
@@ -26508,6 +27105,16 @@ var ESCROW_BLOB_INFO = "learncard-escrow-blob-v1";
|
|
|
26508
27105
|
var ESCROW_RELEASE_INFO = "learncard-escrow-release-v1";
|
|
26509
27106
|
var ESCROW_CLIENT_KEY_ID = "client";
|
|
26510
27107
|
var RECOVERY_LANGUAGES = ["en", "es", "fr", "ar"];
|
|
27108
|
+
var MAX_ESCROW_EMAIL_BRAND_LENGTH = 32;
|
|
27109
|
+
var MAX_ESCROW_EMAIL_BRAND_DIGITS = 3;
|
|
27110
|
+
var canonicalEscrowEmailBrand = /* @__PURE__ */ __name((raw) => {
|
|
27111
|
+
if (typeof raw !== "string") return void 0;
|
|
27112
|
+
const brand = raw.split(" ").filter((word) => word.length > 0).join(" ");
|
|
27113
|
+
if (brand.length === 0 || brand.length > MAX_ESCROW_EMAIL_BRAND_LENGTH || !/^[A-Za-z][A-Za-z0-9 '&-]*$/.test(brand) || (brand.match(/[0-9]/g)?.length ?? 0) > MAX_ESCROW_EMAIL_BRAND_DIGITS || /http|www/i.test(brand)) {
|
|
27114
|
+
return void 0;
|
|
27115
|
+
}
|
|
27116
|
+
return brand;
|
|
27117
|
+
}, "canonicalEscrowEmailBrand");
|
|
26511
27118
|
var encodeUtf82 = /* @__PURE__ */ __name((value) => {
|
|
26512
27119
|
const bytes3 = new TextEncoder().encode(value);
|
|
26513
27120
|
const copy = new Uint8Array(new ArrayBuffer(bytes3.byteLength));
|
|
@@ -26563,6 +27170,7 @@ var parseEscrowBlobPlaintext = /* @__PURE__ */ __name((value) => {
|
|
|
26563
27170
|
}
|
|
26564
27171
|
recoveryContact = { recoveryEmail: email, recoveryLanguage: language };
|
|
26565
27172
|
}
|
|
27173
|
+
const recoveryBrand = canonicalEscrowEmailBrand(value.recoveryBrand);
|
|
26566
27174
|
return {
|
|
26567
27175
|
version: ESCROW_ENVELOPE_VERSION,
|
|
26568
27176
|
recoveryShare: requireString2(value, "recoveryShare", {
|
|
@@ -26579,7 +27187,8 @@ var parseEscrowBlobPlaintext = /* @__PURE__ */ __name((value) => {
|
|
|
26579
27187
|
pattern: /^[0-9a-f]{64}$/i
|
|
26580
27188
|
}).toLowerCase()
|
|
26581
27189
|
} : {},
|
|
26582
|
-
...recoveryContact
|
|
27190
|
+
...recoveryContact,
|
|
27191
|
+
...recoveryBrand !== void 0 ? { recoveryBrand } : {}
|
|
26583
27192
|
};
|
|
26584
27193
|
}, "parseEscrowBlobPlaintext");
|
|
26585
27194
|
var parseEscrowReleasePlaintext = /* @__PURE__ */ __name((value) => {
|
|
@@ -27148,6 +27757,30 @@ var wNAF = /* @__PURE__ */ __name((n) => {
|
|
|
27148
27757
|
return { p, f };
|
|
27149
27758
|
}, "wNAF");
|
|
27150
27759
|
|
|
27760
|
+
// src/escrow-authority.types.ts
|
|
27761
|
+
var EscrowEvidenceError = class extends Error {
|
|
27762
|
+
static {
|
|
27763
|
+
__name(this, "EscrowEvidenceError");
|
|
27764
|
+
}
|
|
27765
|
+
constructor() {
|
|
27766
|
+
super("Automatic recovery evidence could not be verified.");
|
|
27767
|
+
this.name = "EscrowEvidenceError";
|
|
27768
|
+
}
|
|
27769
|
+
};
|
|
27770
|
+
var ESCROW_AUTHORITY_TENANT_PATTERN = /^[A-Za-z0-9_-]{1,128}$/;
|
|
27771
|
+
var EscrowAuthorityTenantMismatchError = class extends EscrowEvidenceError {
|
|
27772
|
+
static {
|
|
27773
|
+
__name(this, "EscrowAuthorityTenantMismatchError");
|
|
27774
|
+
}
|
|
27775
|
+
constructor(expectedTenant, signedTenant) {
|
|
27776
|
+
super();
|
|
27777
|
+
this.name = "EscrowAuthorityTenantMismatchError";
|
|
27778
|
+
this.expectedTenant = expectedTenant;
|
|
27779
|
+
this.signedTenant = signedTenant;
|
|
27780
|
+
this.message = `Escrow authority tenant mismatch: the enclave signed for "${signedTenant}" but this app expects "${expectedTenant}". Set auth.sss.escrowAuthorityTenant to the enclave's ESCROW_AUTHORITY_TENANT.`;
|
|
27781
|
+
}
|
|
27782
|
+
};
|
|
27783
|
+
|
|
27151
27784
|
// src/escrow-enrollment-intent.ts
|
|
27152
27785
|
var ESCROW_ENROLLMENT_INTENT_DOMAIN = "learncard-escrow-enrollment-intent-v2\0";
|
|
27153
27786
|
var BASE58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
@@ -27228,7 +27861,7 @@ var encodeEscrowEnrollmentIntent = /* @__PURE__ */ __name((intent) => {
|
|
|
27228
27861
|
Object.keys(intent).length === FIELDS.length && FIELDS.every((field) => Object.prototype.hasOwnProperty.call(intent, field))
|
|
27229
27862
|
);
|
|
27230
27863
|
requireIntent(intent.version === 2 && typeof intent.allowRewrap === "boolean");
|
|
27231
|
-
requireIntent(matches(intent.tenant,
|
|
27864
|
+
requireIntent(matches(intent.tenant, ESCROW_AUTHORITY_TENANT_PATTERN));
|
|
27232
27865
|
requireIntent(matches(intent.authorityGeneration, /^[A-Za-z0-9_-]{1,128}$/));
|
|
27233
27866
|
requireIntent(matches(intent.requestId, /^[A-Za-z0-9._-]{1,112}$/));
|
|
27234
27867
|
didPublicKey(intent.did);
|
|
@@ -29694,17 +30327,6 @@ var verifyEnclaveAttestation = /* @__PURE__ */ __name(async (attestation, policy
|
|
|
29694
30327
|
};
|
|
29695
30328
|
}, "verifyEnclaveAttestation");
|
|
29696
30329
|
|
|
29697
|
-
// src/escrow-authority.types.ts
|
|
29698
|
-
var EscrowEvidenceError = class extends Error {
|
|
29699
|
-
static {
|
|
29700
|
-
__name(this, "EscrowEvidenceError");
|
|
29701
|
-
}
|
|
29702
|
-
constructor() {
|
|
29703
|
-
super("Automatic recovery evidence could not be verified.");
|
|
29704
|
-
this.name = "EscrowEvidenceError";
|
|
29705
|
-
}
|
|
29706
|
-
};
|
|
29707
|
-
|
|
29708
30330
|
// src/escrow-authority.ts
|
|
29709
30331
|
var fail2 = /* @__PURE__ */ __name(() => {
|
|
29710
30332
|
throw new EscrowEvidenceError();
|
|
@@ -29743,6 +30365,12 @@ var verifyEscrowCodeDelivery = /* @__PURE__ */ __name(async (delivery, expected,
|
|
|
29743
30365
|
var requireEvidence = /* @__PURE__ */ __name((condition) => {
|
|
29744
30366
|
if (!condition) fail2();
|
|
29745
30367
|
}, "requireEvidence");
|
|
30368
|
+
var requireAuthorityTenant = /* @__PURE__ */ __name((signedTenant, expectedTenant) => {
|
|
30369
|
+
if (signedTenant === expectedTenant) return;
|
|
30370
|
+
if (typeof signedTenant === "string" && ESCROW_AUTHORITY_TENANT_PATTERN.test(signedTenant))
|
|
30371
|
+
throw new EscrowAuthorityTenantMismatchError(expectedTenant, signedTenant);
|
|
30372
|
+
fail2();
|
|
30373
|
+
}, "requireAuthorityTenant");
|
|
29746
30374
|
var object = /* @__PURE__ */ __name((value) => {
|
|
29747
30375
|
if (!value || typeof value !== "object" || Array.isArray(value)) return fail2();
|
|
29748
30376
|
return value;
|
|
@@ -29935,7 +30563,8 @@ var verifyEscrowAuthorityState = /* @__PURE__ */ __name(async (response, nonce,
|
|
|
29935
30563
|
const { payload } = await verifyRecord(raw.proof, "snapshot", identity);
|
|
29936
30564
|
if (!Array.isArray(payload) || payload.length !== 2 || payload[0] !== nonce) return fail2();
|
|
29937
30565
|
const signed = state(payload[1]);
|
|
29938
|
-
requireEvidence(signed.
|
|
30566
|
+
requireEvidence(signed.did === did);
|
|
30567
|
+
requireAuthorityTenant(signed.tenant, tenant);
|
|
29939
30568
|
requireEvidence(JSON.stringify(signed) === JSON.stringify(state(raw.state)));
|
|
29940
30569
|
if (signed.envelope) {
|
|
29941
30570
|
requireEvidence(
|
|
@@ -30025,7 +30654,8 @@ var verifyEscrowHoldRecord = /* @__PURE__ */ __name(async (record, expected, ide
|
|
|
30025
30654
|
keys(commit, ["schemaVersion", "binding", "executionId", "revisions", "transactionDigest"]);
|
|
30026
30655
|
const binding = object(commit.binding);
|
|
30027
30656
|
keys(binding, ["tenant", "generation", "didHash"]);
|
|
30028
|
-
requireEvidence(commit.schemaVersion === 1
|
|
30657
|
+
requireEvidence(commit.schemaVersion === 1);
|
|
30658
|
+
requireAuthorityTenant(binding.tenant, expected.tenant);
|
|
30029
30659
|
const authorityGeneration = text(binding.generation, 128);
|
|
30030
30660
|
if (historical) requireEvidence(authorityGeneration === historical.authorityGeneration);
|
|
30031
30661
|
requireEvidence(bytesToHex(bytes2(binding.didHash, 32)) === await hash(utf82(expected.did)));
|
|
@@ -30074,7 +30704,7 @@ var resolveEscrowEnrollmentAction = /* @__PURE__ */ __name((current, input) => {
|
|
|
30074
30704
|
const action = disabling ? "disable" : current.status !== "active" ? "enroll" : current.hasPin && pinAction === "keep" ? "carry" : "replace";
|
|
30075
30705
|
return { action, pinAction, bindsRecoveryContact: action === "enroll" || action === "replace" };
|
|
30076
30706
|
}, "resolveEscrowEnrollmentAction");
|
|
30077
|
-
var violatesCarryContactRule = /* @__PURE__ */ __name((action, target) => action === "carry" && !!target && (!!target.recoveryEmail || !!target.recoveryLanguage), "violatesCarryContactRule");
|
|
30707
|
+
var violatesCarryContactRule = /* @__PURE__ */ __name((action, target) => action === "carry" && !!target && (!!target.recoveryEmail || !!target.recoveryLanguage || !!target.recoveryBrand), "violatesCarryContactRule");
|
|
30078
30708
|
var createEscrowEnrollmentIntent = /* @__PURE__ */ __name(async (input) => {
|
|
30079
30709
|
const current = state(input.state);
|
|
30080
30710
|
const target = input.target === null ? null : envelope(input.target);
|
|
@@ -30428,6 +31058,7 @@ var EscrowRequestError = class extends Error {
|
|
|
30428
31058
|
__name(this, "EscrowRequestError");
|
|
30429
31059
|
}
|
|
30430
31060
|
};
|
|
31061
|
+
var isConflictRefusal = /* @__PURE__ */ __name((error) => error instanceof EscrowRequestError && error.status === 409, "isConflictRefusal");
|
|
30431
31062
|
var DuplicateShareCoordinateError = class extends Error {
|
|
30432
31063
|
static {
|
|
30433
31064
|
__name(this, "DuplicateShareCoordinateError");
|
|
@@ -30871,6 +31502,16 @@ function createSSSStrategy(config) {
|
|
|
30871
31502
|
emailBranding,
|
|
30872
31503
|
tenantId
|
|
30873
31504
|
} = config;
|
|
31505
|
+
const authorityTenant = config.escrow?.authorityTenant ?? tenantId ?? "learncard";
|
|
31506
|
+
if (config.escrow && !ESCROW_AUTHORITY_TENANT_PATTERN.test(authorityTenant))
|
|
31507
|
+
throw new Error(
|
|
31508
|
+
'Invalid escrow authority tenant: expected 1-128 letters, digits, "_" or "-".'
|
|
31509
|
+
);
|
|
31510
|
+
const emailBrand = config.escrow?.emailBrand === void 0 ? void 0 : canonicalEscrowEmailBrand(config.escrow.emailBrand);
|
|
31511
|
+
if (config.escrow?.emailBrand !== void 0 && emailBrand === void 0)
|
|
31512
|
+
throw new Error(
|
|
31513
|
+
`Invalid escrow email brand: expected 1-32 ASCII letters, digits, spaces, "-", "'" or "&", starting with a letter.`
|
|
31514
|
+
);
|
|
30874
31515
|
const storage = config.storage || defaultStorage;
|
|
30875
31516
|
let storageGeneration = 0;
|
|
30876
31517
|
const localWrites = /* @__PURE__ */ new Set();
|
|
@@ -30990,7 +31631,7 @@ function createSSSStrategy(config) {
|
|
|
30990
31631
|
return result.hold;
|
|
30991
31632
|
}, "fetchEscrowHoldStatus");
|
|
30992
31633
|
const recoveryExpectations = /* @__PURE__ */ __name((holdId, expected) => {
|
|
30993
|
-
if (!expected || expected.holdId !== holdId || expected.tenant !==
|
|
31634
|
+
if (!expected || expected.holdId !== holdId || expected.tenant !== authorityTenant || !expected.did || !expected.clientEphemeralPublicKey || !expected.blobHash || !expected.authorityGeneration || !expected.holdDigest || !expected.ledgerPublicKey || !expected.keyId)
|
|
30994
31635
|
throw new EscrowEvidenceError();
|
|
30995
31636
|
return { ...expected };
|
|
30996
31637
|
}, "recoveryExpectations");
|
|
@@ -31025,7 +31666,7 @@ function createSSSStrategy(config) {
|
|
|
31025
31666
|
const result = await verifyEscrowAuthorityState(
|
|
31026
31667
|
response,
|
|
31027
31668
|
nonce,
|
|
31028
|
-
|
|
31669
|
+
authorityTenant,
|
|
31029
31670
|
did,
|
|
31030
31671
|
identity
|
|
31031
31672
|
);
|
|
@@ -31057,7 +31698,14 @@ function createSSSStrategy(config) {
|
|
|
31057
31698
|
did: primaryDid,
|
|
31058
31699
|
shareVersion,
|
|
31059
31700
|
...pinMaterial ? { pinVerifier: pinMaterial.pinVerifier } : {},
|
|
31060
|
-
|
|
31701
|
+
// D21: the brand is sealed exactly when the contact is, so a
|
|
31702
|
+
// carry (whose target the enclave refuses if it claims one)
|
|
31703
|
+
// never sends it; the enclave inherits the source's brand.
|
|
31704
|
+
...authority && recoveryEmail && bindsRecoveryContact ? {
|
|
31705
|
+
recoveryEmail,
|
|
31706
|
+
recoveryLanguage,
|
|
31707
|
+
...emailBrand ? { recoveryBrand: emailBrand } : {}
|
|
31708
|
+
} : {}
|
|
31061
31709
|
},
|
|
31062
31710
|
publicKey,
|
|
31063
31711
|
keyId
|
|
@@ -31324,21 +31972,34 @@ function createSSSStrategy(config) {
|
|
|
31324
31972
|
}
|
|
31325
31973
|
};
|
|
31326
31974
|
}, "captureActiveUserGuard");
|
|
31327
|
-
const
|
|
31975
|
+
const recordedWrongPinAttempts = /* @__PURE__ */ __name((escrowPin) => {
|
|
31328
31976
|
const status = escrowPin;
|
|
31329
|
-
if (status?.state === "none") return
|
|
31330
|
-
|
|
31331
|
-
|
|
31332
|
-
|
|
31977
|
+
if (status?.state === "none") return 0;
|
|
31978
|
+
const count = status?.wrongAttempts;
|
|
31979
|
+
return typeof count === "number" && Number.isSafeInteger(count) && count >= 0 ? count : void 0;
|
|
31980
|
+
}, "recordedWrongPinAttempts");
|
|
31981
|
+
const attemptCount = /* @__PURE__ */ __name((value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : void 0, "attemptCount");
|
|
31982
|
+
const pinSignInClean = /* @__PURE__ */ __name((observed, flowAttempts) => {
|
|
31983
|
+
const flowSalt = flowAttempts?.pinSalt;
|
|
31984
|
+
const sameGeneration = typeof flowSalt !== "string" || observed.every((status) => {
|
|
31985
|
+
const salt = status?.salt;
|
|
31986
|
+
return typeof salt !== "string" || salt === flowSalt;
|
|
31987
|
+
});
|
|
31988
|
+
const attempts = sameGeneration ? flowAttempts : void 0;
|
|
31989
|
+
const own = attempts ? attemptCount(attempts.ownWrongAttempts) : 0;
|
|
31990
|
+
if (own === void 0) return { clean: false, ownWrongAttempts: 0 };
|
|
31991
|
+
const prior = attempts ? attemptCount(attempts.priorWrongAttempts) : recordedWrongPinAttempts(observed[0]);
|
|
31992
|
+
const clean = prior === 0 && observed.length > 0 && observed.every((status) => recordedWrongPinAttempts(status) === own);
|
|
31993
|
+
return { clean, ownWrongAttempts: own };
|
|
31994
|
+
}, "pinSignInClean");
|
|
31995
|
+
const refreshablePinCharges = /* @__PURE__ */ __name((before, after, ownWrongAttempts) => {
|
|
31333
31996
|
const pre = before;
|
|
31334
31997
|
const post = after;
|
|
31335
|
-
if (pinHasRecordedWrongAttempts(before) || pinHasRecordedWrongAttempts(after))
|
|
31336
|
-
return void 0;
|
|
31337
31998
|
if (pre?.state !== "enabled" || post?.state !== "enabled") return void 0;
|
|
31338
31999
|
if (typeof pre.attemptsRemaining !== "number" || typeof post.attemptsRemaining !== "number")
|
|
31339
32000
|
return void 0;
|
|
31340
32001
|
if (post.attemptsRemaining !== pre.attemptsRemaining - 1) return void 0;
|
|
31341
|
-
return { attemptsRemaining: post.attemptsRemaining, wrongAttempts:
|
|
32002
|
+
return { attemptsRemaining: post.attemptsRemaining, wrongAttempts: ownWrongAttempts };
|
|
31342
32003
|
}, "refreshablePinCharges");
|
|
31343
32004
|
const freshPinMaterial = /* @__PURE__ */ __name(async (pin) => {
|
|
31344
32005
|
if (!validatePin(pin).ok) return void 0;
|
|
@@ -31361,7 +32022,7 @@ function createSSSStrategy(config) {
|
|
|
31361
32022
|
primaryDid: released.primaryDid
|
|
31362
32023
|
};
|
|
31363
32024
|
}, "adoptReleasedShare");
|
|
31364
|
-
const completePinSignInKeep = /* @__PURE__ */ __name(async (params, released, pin, pinBefore) => {
|
|
32025
|
+
const completePinSignInKeep = /* @__PURE__ */ __name(async (params, released, pin, pinBefore, pinAttempts) => {
|
|
31365
32026
|
const storage2 = guardedStorage();
|
|
31366
32027
|
const generation = storageGeneration;
|
|
31367
32028
|
const storageId = activeStorageId;
|
|
@@ -31370,7 +32031,11 @@ function createSSSStrategy(config) {
|
|
|
31370
32031
|
throw new Error("This recovery request was cancelled.");
|
|
31371
32032
|
}
|
|
31372
32033
|
}, "assertActive");
|
|
31373
|
-
const {
|
|
32034
|
+
const {
|
|
32035
|
+
mode,
|
|
32036
|
+
newPinRequired: newPinRequiredAtRelease,
|
|
32037
|
+
refreshCharges
|
|
32038
|
+
} = await withShareUpdateLock(
|
|
31374
32039
|
storage2,
|
|
31375
32040
|
storageId,
|
|
31376
32041
|
() => withRotationLock(async () => {
|
|
@@ -31414,18 +32079,23 @@ function createSSSStrategy(config) {
|
|
|
31414
32079
|
current.shareVersion
|
|
31415
32080
|
);
|
|
31416
32081
|
pendingIdentityRecovery = void 0;
|
|
32082
|
+
const { clean, ownWrongAttempts } = pinSignInClean(
|
|
32083
|
+
[pinBefore, current.escrowPin],
|
|
32084
|
+
pinAttempts
|
|
32085
|
+
);
|
|
31417
32086
|
return {
|
|
31418
32087
|
mode: mode2,
|
|
31419
|
-
newPinRequired:
|
|
31420
|
-
refreshCharges: refreshablePinCharges(pinBefore, current.escrowPin)
|
|
32088
|
+
newPinRequired: !clean,
|
|
32089
|
+
refreshCharges: clean ? refreshablePinCharges(pinBefore, current.escrowPin, ownWrongAttempts) : void 0
|
|
31421
32090
|
};
|
|
31422
32091
|
})
|
|
31423
32092
|
);
|
|
31424
32093
|
let pinRefreshed = false;
|
|
31425
32094
|
let pinRefreshFailed = false;
|
|
32095
|
+
let newPinRequired = newPinRequiredAtRelease;
|
|
31426
32096
|
if (mode === "kept" && !newPinRequired && refreshCharges && params.signDidAuthVp) {
|
|
31427
32097
|
const pinMaterial = await freshPinMaterial(pin);
|
|
31428
|
-
|
|
32098
|
+
const refresh = pinMaterial === void 0 ? void 0 : await attemptEnrollEscrow(
|
|
31429
32099
|
params.token,
|
|
31430
32100
|
params.providerType,
|
|
31431
32101
|
released.privateKey,
|
|
@@ -31441,7 +32111,18 @@ function createSSSStrategy(config) {
|
|
|
31441
32111
|
params.options?.recoveryLanguage,
|
|
31442
32112
|
refreshCharges
|
|
31443
32113
|
);
|
|
32114
|
+
pinRefreshed = refresh?.enrolled === true;
|
|
31444
32115
|
pinRefreshFailed = pinMaterial !== void 0 && !pinRefreshed;
|
|
32116
|
+
if (pinRefreshFailed) {
|
|
32117
|
+
const latest = await fetchAuthShareRaw(
|
|
32118
|
+
serverUrl,
|
|
32119
|
+
params.token,
|
|
32120
|
+
params.providerType,
|
|
32121
|
+
void 0,
|
|
32122
|
+
tenantId
|
|
32123
|
+
).catch(() => void 0);
|
|
32124
|
+
newPinRequired = latest ? !pinSignInClean([pinBefore, latest.escrowPin], pinAttempts).clean : isConflictRefusal(refresh && !refresh.enrolled ? refresh.error : void 0);
|
|
32125
|
+
}
|
|
31445
32126
|
}
|
|
31446
32127
|
assertActive();
|
|
31447
32128
|
return {
|
|
@@ -31529,7 +32210,7 @@ function createSSSStrategy(config) {
|
|
|
31529
32210
|
pinSignIn: {
|
|
31530
32211
|
mode: "relinked",
|
|
31531
32212
|
pinRefreshed: false,
|
|
31532
|
-
newPinRequired:
|
|
32213
|
+
newPinRequired: !pinSignInClean([status?.escrowPin], pending.pinKeep?.pinAttempts).clean
|
|
31533
32214
|
}
|
|
31534
32215
|
};
|
|
31535
32216
|
}, "completePinSignInRelink");
|
|
@@ -32257,7 +32938,7 @@ function createSSSStrategy(config) {
|
|
|
32257
32938
|
const verified = await verifyEscrowHoldRecord(
|
|
32258
32939
|
result.holdRecord,
|
|
32259
32940
|
{
|
|
32260
|
-
tenant:
|
|
32941
|
+
tenant: authorityTenant,
|
|
32261
32942
|
did: expectedDid,
|
|
32262
32943
|
holdId: result.holdId,
|
|
32263
32944
|
clientEphemeralPublicKey: pair.publicKey,
|
|
@@ -32266,7 +32947,7 @@ function createSSSStrategy(config) {
|
|
|
32266
32947
|
identity
|
|
32267
32948
|
);
|
|
32268
32949
|
expectations = {
|
|
32269
|
-
tenant:
|
|
32950
|
+
tenant: authorityTenant,
|
|
32270
32951
|
did: expectedDid,
|
|
32271
32952
|
holdId: result.holdId,
|
|
32272
32953
|
clientEphemeralPublicKey: pair.publicKey,
|
|
@@ -32449,7 +33130,8 @@ function createSSSStrategy(config) {
|
|
|
32449
33130
|
shareVersion: material.shareVersion
|
|
32450
33131
|
},
|
|
32451
33132
|
input.pin,
|
|
32452
|
-
pinBefore
|
|
33133
|
+
pinBefore,
|
|
33134
|
+
input.pinAttempts
|
|
32453
33135
|
);
|
|
32454
33136
|
}
|
|
32455
33137
|
pendingIdentityRecovery = {
|
|
@@ -32460,7 +33142,12 @@ function createSSSStrategy(config) {
|
|
|
32460
33142
|
rebindSessionToken: material.rebindSessionToken,
|
|
32461
33143
|
fromEscrow: true,
|
|
32462
33144
|
// The PIN itself is not kept across the new-login step.
|
|
32463
|
-
...input.method === "escrow-pin" ? {
|
|
33145
|
+
...input.method === "escrow-pin" ? {
|
|
33146
|
+
pinKeep: {
|
|
33147
|
+
shareVersion: material.shareVersion,
|
|
33148
|
+
...input.pinAttempts ? { pinAttempts: { ...input.pinAttempts } } : {}
|
|
33149
|
+
}
|
|
33150
|
+
} : {}
|
|
32464
33151
|
};
|
|
32465
33152
|
if (!token) return { privateKey: privateKey2, did: material.primaryDid };
|
|
32466
33153
|
return completeIdentityRecoveryWith({
|