@learncard/types 5.21.0 → 5.23.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/dist/__tests__/unsupportedSignInOperation.test.d.ts +2 -0
- package/dist/__tests__/unsupportedSignInOperation.test.d.ts.map +1 -0
- package/dist/auth.d.ts +233 -5
- package/dist/auth.d.ts.map +1 -1
- package/dist/clr.d.ts +2 -2
- package/dist/clr.d.ts.map +1 -1
- package/dist/clr.test.d.ts +2 -0
- package/dist/clr.test.d.ts.map +1 -0
- package/dist/inAppMessages.d.ts +10 -10
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/lcn.d.ts +1638 -15
- package/dist/lcn.d.ts.map +1 -1
- package/dist/share-links.d.ts +1950 -0
- package/dist/share-links.d.ts.map +1 -0
- package/dist/types.cjs.development.cjs +873 -10
- package/dist/types.cjs.development.cjs.map +4 -4
- package/dist/types.cjs.production.min.cjs +33 -33
- package/dist/types.cjs.production.min.cjs.map +4 -4
- package/dist/types.esm.js +941 -76
- package/dist/types.esm.js.map +4 -4
- package/package.json +2 -1
- package/src/__tests__/unsupportedSignInOperation.test.ts +13 -0
- package/src/auth.ts +248 -4
- package/src/clr.test.ts +163 -0
- package/src/clr.ts +2 -1
- package/src/index.ts +1 -0
- package/src/lcn.ts +342 -5
- package/src/share-links.ts +931 -0
package/src/lcn.ts
CHANGED
|
@@ -714,12 +714,14 @@ export const ConsentFlowContractDetailsValidator = z.object({
|
|
|
714
714
|
expiresAt: z.string().optional(),
|
|
715
715
|
autoBoosts: z.string().array().optional(),
|
|
716
716
|
writers: z.array(LCNProfileValidator).optional(),
|
|
717
|
+
recipients: z.array(LCNPublicProfileValidator.extend({ did: z.string() })).optional(),
|
|
718
|
+
audienceVersion: z.number().int().nonnegative().optional(),
|
|
717
719
|
});
|
|
718
720
|
export type ConsentFlowContractDetails = z.infer<typeof ConsentFlowContractDetailsValidator>;
|
|
719
721
|
export type ConsentFlowContractDetailsInput = z.input<typeof ConsentFlowContractDetailsValidator>;
|
|
720
722
|
|
|
721
723
|
export const ConsentFlowContractRequestStatusValidator = z
|
|
722
|
-
.enum(['pending', 'accepted', 'denied'])
|
|
724
|
+
.enum(['pending', 'accepted', 'denied', 'cancelled'])
|
|
723
725
|
.nullable();
|
|
724
726
|
export type ConsentFlowContractRequestStatus = z.infer<
|
|
725
727
|
typeof ConsentFlowContractRequestStatusValidator
|
|
@@ -730,7 +732,51 @@ export type ConsentFlowContractRequestReadStatus = z.infer<
|
|
|
730
732
|
typeof ConsentFlowContractRequestReadStatusValidator
|
|
731
733
|
>;
|
|
732
734
|
|
|
733
|
-
|
|
735
|
+
/** Durable referral identity captured on consent history and correlated events. */
|
|
736
|
+
export const ConsentFlowReferralValidator = z.object({
|
|
737
|
+
requestId: z.string(),
|
|
738
|
+
requestedBy: z.string(),
|
|
739
|
+
externalReferenceId: z.string().max(256).optional(),
|
|
740
|
+
});
|
|
741
|
+
export type ConsentFlowReferral = z.infer<typeof ConsentFlowReferralValidator>;
|
|
742
|
+
|
|
743
|
+
export const ContractRequestFieldsValidator = ConsentFlowReferralValidator.partial().extend({
|
|
744
|
+
requestedAt: z.string().optional(),
|
|
745
|
+
message: z.string().max(500).optional(),
|
|
746
|
+
});
|
|
747
|
+
export type ContractRequestFields = z.infer<typeof ContractRequestFieldsValidator>;
|
|
748
|
+
|
|
749
|
+
export const SendContractRequestValidator = z.object({
|
|
750
|
+
contractUri: z.string(),
|
|
751
|
+
targetProfileId: z.string(),
|
|
752
|
+
externalReferenceId: z.string().trim().min(1).max(256).optional(),
|
|
753
|
+
message: z.string().trim().max(500).optional(),
|
|
754
|
+
});
|
|
755
|
+
export type SendContractRequest = z.infer<typeof SendContractRequestValidator>;
|
|
756
|
+
|
|
757
|
+
export const ConsentFlowWebhookMetadataValidator = z.object({
|
|
758
|
+
eventId: z.string(),
|
|
759
|
+
deliveryKey: z.string(),
|
|
760
|
+
event: z.enum([
|
|
761
|
+
'request_sent',
|
|
762
|
+
'request_accepted',
|
|
763
|
+
'request_denied',
|
|
764
|
+
'request_cancelled',
|
|
765
|
+
'consent_created',
|
|
766
|
+
'consent_updated',
|
|
767
|
+
'consent_withdrawn',
|
|
768
|
+
'credentials_synced',
|
|
769
|
+
]),
|
|
770
|
+
contractUri: z.string(),
|
|
771
|
+
termsUri: z.string().optional(),
|
|
772
|
+
requestId: z.string().optional(),
|
|
773
|
+
requestedBy: z.string().optional(),
|
|
774
|
+
externalReferenceId: z.string().optional(),
|
|
775
|
+
recipientRole: z.enum(['owner', 'recipient', 'requester', 'target']),
|
|
776
|
+
});
|
|
777
|
+
export type ConsentFlowWebhookMetadata = z.infer<typeof ConsentFlowWebhookMetadataValidator>;
|
|
778
|
+
|
|
779
|
+
export const ConsentFlowContractRequestForProfileValidator = ContractRequestFieldsValidator.extend({
|
|
734
780
|
profile: LCNProfileValidator,
|
|
735
781
|
status: ConsentFlowContractRequestStatusValidator,
|
|
736
782
|
readStatus: ConsentFlowContractRequestReadStatusValidator.optional(),
|
|
@@ -803,6 +849,7 @@ export const PaginatedConsentFlowTermsValidator = PaginationResponseValidator.ex
|
|
|
803
849
|
expiresAt: z.string().optional(),
|
|
804
850
|
oneTime: z.boolean().optional(),
|
|
805
851
|
terms: ConsentFlowTermsValidator,
|
|
852
|
+
referral: ConsentFlowReferralValidator.optional(),
|
|
806
853
|
contract: ConsentFlowContractDetailsValidator,
|
|
807
854
|
uri: z.string(),
|
|
808
855
|
consenter: LCNProfileValidator,
|
|
@@ -962,6 +1009,7 @@ export const ConsentFlowTransactionValidator = z.object({
|
|
|
962
1009
|
oneTime: z.boolean().optional(),
|
|
963
1010
|
terms: ConsentFlowTermsValidator.optional(),
|
|
964
1011
|
guardianApproval: ConsentFlowGuardianApprovalValidator.optional(),
|
|
1012
|
+
referral: ConsentFlowReferralValidator.optional(),
|
|
965
1013
|
id: z.string(),
|
|
966
1014
|
action: ConsentFlowTransactionActionValidator,
|
|
967
1015
|
date: z.string(),
|
|
@@ -974,6 +1022,7 @@ export const HolderExportConsentRecordValidator = z.object({
|
|
|
974
1022
|
status: ConsentFlowTermsStatusValidator,
|
|
975
1023
|
contract: ConsentFlowContractDetailsValidator,
|
|
976
1024
|
terms: ConsentFlowTermsValidator,
|
|
1025
|
+
referral: ConsentFlowReferralValidator.optional(),
|
|
977
1026
|
transactions: ConsentFlowTransactionValidator.array(),
|
|
978
1027
|
});
|
|
979
1028
|
export type HolderExportConsentRecord = z.infer<typeof HolderExportConsentRecordValidator>;
|
|
@@ -2188,7 +2237,7 @@ export const AppStoreListingSubmitterValidator = z.object({
|
|
|
2188
2237
|
|
|
2189
2238
|
export type AppStoreListingSubmitter = z.infer<typeof AppStoreListingSubmitterValidator>;
|
|
2190
2239
|
|
|
2191
|
-
|
|
2240
|
+
const AppStoreListingFieldsValidator = z.object({
|
|
2192
2241
|
listing_id: z.string(),
|
|
2193
2242
|
slug: z.string().optional(),
|
|
2194
2243
|
display_name: z.string(),
|
|
@@ -2215,12 +2264,35 @@ export const AppStoreListingValidator = z.object({
|
|
|
2215
2264
|
contact_email: z.string().email().optional(),
|
|
2216
2265
|
});
|
|
2217
2266
|
|
|
2267
|
+
export const PendingListingUpdateStatusValidator = z.enum(['DRAFT', 'PENDING_REVIEW']);
|
|
2268
|
+
export type PendingListingUpdateStatus = z.infer<typeof PendingListingUpdateStatusValidator>;
|
|
2269
|
+
|
|
2270
|
+
/** Changes to a live app that only take effect once an admin approves them. */
|
|
2271
|
+
export const PendingListingUpdateValidator = z.object({
|
|
2272
|
+
status: PendingListingUpdateStatusValidator,
|
|
2273
|
+
submitted_at: z.string().optional(),
|
|
2274
|
+
changes: AppStoreListingFieldsValidator.omit({
|
|
2275
|
+
listing_id: true,
|
|
2276
|
+
app_listing_status: true,
|
|
2277
|
+
promotion_level: true,
|
|
2278
|
+
submitted_at: true,
|
|
2279
|
+
submitter: true,
|
|
2280
|
+
}).partial(),
|
|
2281
|
+
manifest_version: z.number().int().min(1).optional(),
|
|
2282
|
+
});
|
|
2283
|
+
export type PendingListingUpdate = z.infer<typeof PendingListingUpdateValidator>;
|
|
2284
|
+
|
|
2285
|
+
export const AppStoreListingValidator = AppStoreListingFieldsValidator.extend({
|
|
2286
|
+
pending_update: PendingListingUpdateValidator.optional(),
|
|
2287
|
+
});
|
|
2288
|
+
|
|
2218
2289
|
export type AppStoreListing = z.infer<typeof AppStoreListingValidator>;
|
|
2219
2290
|
|
|
2220
2291
|
export const AppStoreListingCreateValidator = AppStoreListingValidator.omit({
|
|
2221
2292
|
listing_id: true,
|
|
2222
2293
|
app_listing_status: true,
|
|
2223
2294
|
promotion_level: true,
|
|
2295
|
+
pending_update: true,
|
|
2224
2296
|
});
|
|
2225
2297
|
|
|
2226
2298
|
export type AppStoreListingCreateType = z.infer<typeof AppStoreListingCreateValidator>;
|
|
@@ -2229,6 +2301,7 @@ export const AppStoreListingUpdateValidator = AppStoreListingValidator.partial()
|
|
|
2229
2301
|
listing_id: true,
|
|
2230
2302
|
app_listing_status: true,
|
|
2231
2303
|
promotion_level: true,
|
|
2304
|
+
pending_update: true,
|
|
2232
2305
|
});
|
|
2233
2306
|
|
|
2234
2307
|
export type AppStoreListingUpdateType = z.infer<typeof AppStoreListingUpdateValidator>;
|
|
@@ -2264,13 +2337,116 @@ export const AppBoostValidator = z.object({
|
|
|
2264
2337
|
export type AppBoost = z.infer<typeof AppBoostValidator>;
|
|
2265
2338
|
|
|
2266
2339
|
// App Event Types (discriminated union for type safety)
|
|
2267
|
-
export const
|
|
2340
|
+
export const InlineWalletCategoryValidator = z.enum([
|
|
2341
|
+
'Achievement',
|
|
2342
|
+
'Skill',
|
|
2343
|
+
'ID',
|
|
2344
|
+
'Learning History',
|
|
2345
|
+
'Work History',
|
|
2346
|
+
'Social Badges',
|
|
2347
|
+
'Membership',
|
|
2348
|
+
'Accomplishment',
|
|
2349
|
+
'Experiences',
|
|
2350
|
+
'Accommodation',
|
|
2351
|
+
'Family',
|
|
2352
|
+
]);
|
|
2353
|
+
|
|
2354
|
+
export const InlineAlignmentValidator = z
|
|
2355
|
+
.object({
|
|
2356
|
+
name: z.string(),
|
|
2357
|
+
url: z.string(),
|
|
2358
|
+
framework: z.string().optional(),
|
|
2359
|
+
code: z.string().optional(),
|
|
2360
|
+
})
|
|
2361
|
+
.passthrough();
|
|
2362
|
+
|
|
2363
|
+
export const InlineEvidenceValidator = z
|
|
2364
|
+
.object({
|
|
2365
|
+
id: z.string().optional(),
|
|
2366
|
+
name: z.string().optional(),
|
|
2367
|
+
narrative: z.string().optional(),
|
|
2368
|
+
})
|
|
2369
|
+
.passthrough();
|
|
2370
|
+
|
|
2371
|
+
export const InlineWalletSkillTagValidator = z
|
|
2372
|
+
.object({
|
|
2373
|
+
frameworkId: z.string(),
|
|
2374
|
+
id: z.string(),
|
|
2375
|
+
proficiencyLevel: z.string().optional(),
|
|
2376
|
+
})
|
|
2377
|
+
.passthrough();
|
|
2378
|
+
|
|
2379
|
+
export const SimpleInlineCredentialTemplateValidator = z
|
|
2380
|
+
.object({
|
|
2381
|
+
rawCredential: z.undefined().optional(),
|
|
2382
|
+
name: z.string(),
|
|
2383
|
+
description: z.string().optional(),
|
|
2384
|
+
image: z.string().optional(),
|
|
2385
|
+
issuerName: z.string().optional(),
|
|
2386
|
+
achievementType: z.string().optional(),
|
|
2387
|
+
category: InlineWalletCategoryValidator.optional(),
|
|
2388
|
+
criteria: z
|
|
2389
|
+
.object({
|
|
2390
|
+
narrative: z.string().optional(),
|
|
2391
|
+
url: z.string().optional(),
|
|
2392
|
+
})
|
|
2393
|
+
.passthrough()
|
|
2394
|
+
.optional(),
|
|
2395
|
+
alignments: z.array(InlineAlignmentValidator).optional(),
|
|
2396
|
+
tags: z.array(z.string()).optional(),
|
|
2397
|
+
activity: z
|
|
2398
|
+
.object({
|
|
2399
|
+
startDate: z.string().optional(),
|
|
2400
|
+
endDate: z.string().optional(),
|
|
2401
|
+
})
|
|
2402
|
+
.passthrough()
|
|
2403
|
+
.optional(),
|
|
2404
|
+
credits: z
|
|
2405
|
+
.object({
|
|
2406
|
+
earned: z.union([z.number(), z.string()]).optional(),
|
|
2407
|
+
available: z.union([z.number(), z.string()]).optional(),
|
|
2408
|
+
})
|
|
2409
|
+
.passthrough()
|
|
2410
|
+
.optional(),
|
|
2411
|
+
validUntil: z.string().optional(),
|
|
2412
|
+
evidence: z.array(InlineEvidenceValidator).optional(),
|
|
2413
|
+
walletSkills: z.array(InlineWalletSkillTagValidator).optional(),
|
|
2414
|
+
})
|
|
2415
|
+
.passthrough();
|
|
2416
|
+
|
|
2417
|
+
export const RawInlineCredentialTemplateValidator = z
|
|
2418
|
+
.object({
|
|
2419
|
+
rawCredential: z.record(z.string(), z.unknown()),
|
|
2420
|
+
category: InlineWalletCategoryValidator.optional(),
|
|
2421
|
+
walletSkills: z.array(InlineWalletSkillTagValidator).optional(),
|
|
2422
|
+
})
|
|
2423
|
+
.passthrough();
|
|
2424
|
+
|
|
2425
|
+
export const InlineCredentialTemplateValidator = z.union([
|
|
2426
|
+
RawInlineCredentialTemplateValidator,
|
|
2427
|
+
SimpleInlineCredentialTemplateValidator,
|
|
2428
|
+
]);
|
|
2429
|
+
|
|
2430
|
+
export const LegacySendCredentialEventValidator = z.object({
|
|
2268
2431
|
type: z.literal('send-credential'),
|
|
2269
2432
|
templateAlias: z.string(),
|
|
2270
2433
|
templateData: z.record(z.string(), z.unknown()).optional(),
|
|
2271
2434
|
preventDuplicateClaim: z.boolean().optional(),
|
|
2272
2435
|
});
|
|
2273
2436
|
|
|
2437
|
+
export const InlineSendCredentialEventValidator = z.object({
|
|
2438
|
+
type: z.literal('send-credential'),
|
|
2439
|
+
alias: z.string(),
|
|
2440
|
+
template: InlineCredentialTemplateValidator,
|
|
2441
|
+
templateData: z.record(z.string(), z.unknown()).optional(),
|
|
2442
|
+
preventDuplicateClaim: z.boolean().optional(),
|
|
2443
|
+
});
|
|
2444
|
+
|
|
2445
|
+
export const SendCredentialEventValidator = z.union([
|
|
2446
|
+
LegacySendCredentialEventValidator,
|
|
2447
|
+
InlineSendCredentialEventValidator,
|
|
2448
|
+
]);
|
|
2449
|
+
|
|
2274
2450
|
export type SendCredentialEvent = z.infer<typeof SendCredentialEventValidator>;
|
|
2275
2451
|
|
|
2276
2452
|
export const CheckCredentialEventValidator = z
|
|
@@ -2425,8 +2601,168 @@ export const GetCountersEventValidator = z.object({
|
|
|
2425
2601
|
|
|
2426
2602
|
export type GetCountersEvent = z.infer<typeof GetCountersEventValidator>;
|
|
2427
2603
|
|
|
2604
|
+
export const ConsentRequestWalletCategoryValidator = z.enum([
|
|
2605
|
+
'Achievement',
|
|
2606
|
+
'Skill',
|
|
2607
|
+
'ID',
|
|
2608
|
+
'Learning History',
|
|
2609
|
+
'Work History',
|
|
2610
|
+
'Social Badges',
|
|
2611
|
+
'Membership',
|
|
2612
|
+
'Accomplishment',
|
|
2613
|
+
'Experiences',
|
|
2614
|
+
'Accommodation',
|
|
2615
|
+
'Family',
|
|
2616
|
+
]);
|
|
2617
|
+
|
|
2618
|
+
export const ConsentRequestPersonalFieldValidator = z.enum([
|
|
2619
|
+
'name',
|
|
2620
|
+
'email',
|
|
2621
|
+
'phone',
|
|
2622
|
+
'birthDate',
|
|
2623
|
+
'country',
|
|
2624
|
+
'avatar',
|
|
2625
|
+
]);
|
|
2626
|
+
|
|
2627
|
+
export const ConsentRequestValidator = z.object({
|
|
2628
|
+
read: z
|
|
2629
|
+
.object({
|
|
2630
|
+
credentialCategories: z.array(ConsentRequestWalletCategoryValidator).optional(),
|
|
2631
|
+
personalFields: z.array(ConsentRequestPersonalFieldValidator).optional(),
|
|
2632
|
+
})
|
|
2633
|
+
.optional(),
|
|
2634
|
+
write: z
|
|
2635
|
+
.object({
|
|
2636
|
+
credentialCategories: z.array(ConsentRequestWalletCategoryValidator).optional(),
|
|
2637
|
+
})
|
|
2638
|
+
.optional(),
|
|
2639
|
+
reason: z.string().optional(),
|
|
2640
|
+
});
|
|
2641
|
+
|
|
2642
|
+
export type ConsentRequest = z.infer<typeof ConsentRequestValidator>;
|
|
2643
|
+
|
|
2644
|
+
export const NormalizedConsentScopesValidator = z.object({
|
|
2645
|
+
read: z.object({
|
|
2646
|
+
credentialCategories: z.array(ConsentRequestWalletCategoryValidator).default([]),
|
|
2647
|
+
personalFields: z.array(ConsentRequestPersonalFieldValidator).default([]),
|
|
2648
|
+
}),
|
|
2649
|
+
write: z.object({
|
|
2650
|
+
credentialCategories: z.array(ConsentRequestWalletCategoryValidator).default([]),
|
|
2651
|
+
}),
|
|
2652
|
+
});
|
|
2653
|
+
|
|
2654
|
+
export type NormalizedConsentScopes = z.infer<typeof NormalizedConsentScopesValidator>;
|
|
2655
|
+
|
|
2656
|
+
export const CapturedTemplateRecordValidator = z
|
|
2657
|
+
.object({
|
|
2658
|
+
alias: z.string(),
|
|
2659
|
+
template: InlineCredentialTemplateValidator,
|
|
2660
|
+
version: z.number().int().min(1),
|
|
2661
|
+
lastUsedAt: z.string(),
|
|
2662
|
+
})
|
|
2663
|
+
.passthrough();
|
|
2664
|
+
|
|
2665
|
+
export type CapturedTemplateRecord = z.infer<typeof CapturedTemplateRecordValidator>;
|
|
2666
|
+
|
|
2667
|
+
export const CapturedConsentRecordValidator = z
|
|
2668
|
+
.object({
|
|
2669
|
+
scopes: NormalizedConsentScopesValidator,
|
|
2670
|
+
reason: z.string().optional(),
|
|
2671
|
+
lastUsedAt: z.string(),
|
|
2672
|
+
})
|
|
2673
|
+
.passthrough();
|
|
2674
|
+
|
|
2675
|
+
export type CapturedConsentRecord = z.infer<typeof CapturedConsentRecordValidator>;
|
|
2676
|
+
|
|
2677
|
+
export const AppManifestValidator = z
|
|
2678
|
+
.object({
|
|
2679
|
+
manifestVersion: z.literal(1),
|
|
2680
|
+
appUrl: z.string(),
|
|
2681
|
+
appKey: z.string().max(200).optional(),
|
|
2682
|
+
suggestedName: z.string().optional(),
|
|
2683
|
+
suggestedIconUrl: z.string().optional(),
|
|
2684
|
+
permissions: z.array(z.string()).default([]),
|
|
2685
|
+
templates: z.array(CapturedTemplateRecordValidator).default([]),
|
|
2686
|
+
consentRequests: z.array(CapturedConsentRecordValidator).default([]),
|
|
2687
|
+
usedConsentContract: z.boolean().optional(),
|
|
2688
|
+
featuresLaunched: z.array(z.string()).default([]),
|
|
2689
|
+
counterKeys: z.array(z.string()).default([]),
|
|
2690
|
+
usedLearnerContext: z.boolean(),
|
|
2691
|
+
usedNotifications: z.boolean(),
|
|
2692
|
+
firstCapturedAt: z.string(),
|
|
2693
|
+
lastUpdatedAt: z.string(),
|
|
2694
|
+
})
|
|
2695
|
+
.passthrough();
|
|
2696
|
+
|
|
2697
|
+
export type AppManifest = z.infer<typeof AppManifestValidator>;
|
|
2698
|
+
|
|
2699
|
+
export const AppManifestVersionStatusValidator = z.enum(['draft', 'active', 'superseded']);
|
|
2700
|
+
export type AppManifestVersionStatus = z.infer<typeof AppManifestVersionStatusValidator>;
|
|
2701
|
+
|
|
2702
|
+
export const AppManifestVersionValidator = z.object({
|
|
2703
|
+
id: z.string(),
|
|
2704
|
+
version: z.number().int().min(1),
|
|
2705
|
+
manifestHash: z.string(),
|
|
2706
|
+
manifest: AppManifestValidator,
|
|
2707
|
+
status: AppManifestVersionStatusValidator,
|
|
2708
|
+
createdAt: z.string(),
|
|
2709
|
+
activatedAt: z.string().optional(),
|
|
2710
|
+
});
|
|
2711
|
+
|
|
2712
|
+
export type AppManifestVersion = z.infer<typeof AppManifestVersionValidator>;
|
|
2713
|
+
|
|
2714
|
+
const AppManifestStringDiffValidator = z.object({
|
|
2715
|
+
added: z.array(z.string()),
|
|
2716
|
+
removed: z.array(z.string()),
|
|
2717
|
+
changed: z.array(z.string()),
|
|
2718
|
+
});
|
|
2719
|
+
|
|
2720
|
+
export const AppManifestTemplateRefValidator = z.object({
|
|
2721
|
+
alias: z.string(),
|
|
2722
|
+
version: z.number().int().min(1),
|
|
2723
|
+
});
|
|
2724
|
+
|
|
2725
|
+
export type AppManifestTemplateRef = z.infer<typeof AppManifestTemplateRefValidator>;
|
|
2726
|
+
|
|
2727
|
+
export const AppManifestTemplateChangeValidator = z.object({
|
|
2728
|
+
alias: z.string(),
|
|
2729
|
+
fromVersion: z.number().int().min(1),
|
|
2730
|
+
toVersion: z.number().int().min(1),
|
|
2731
|
+
});
|
|
2732
|
+
|
|
2733
|
+
export type AppManifestTemplateChange = z.infer<typeof AppManifestTemplateChangeValidator>;
|
|
2734
|
+
|
|
2735
|
+
export const AppManifestDiffValidator = z.object({
|
|
2736
|
+
permissions: AppManifestStringDiffValidator,
|
|
2737
|
+
templates: z.object({
|
|
2738
|
+
added: z.array(AppManifestTemplateRefValidator),
|
|
2739
|
+
removed: z.array(AppManifestTemplateRefValidator),
|
|
2740
|
+
changed: z.array(AppManifestTemplateChangeValidator),
|
|
2741
|
+
}),
|
|
2742
|
+
consentScopes: AppManifestStringDiffValidator,
|
|
2743
|
+
featurePaths: AppManifestStringDiffValidator,
|
|
2744
|
+
counterKeys: AppManifestStringDiffValidator,
|
|
2745
|
+
requiresReview: z.boolean(),
|
|
2746
|
+
});
|
|
2747
|
+
|
|
2748
|
+
export type AppManifestDiff = z.infer<typeof AppManifestDiffValidator>;
|
|
2749
|
+
|
|
2750
|
+
export const UpsertConsentContractEventValidator = z.object({
|
|
2751
|
+
type: z.literal('upsert-consent-contract'),
|
|
2752
|
+
scopes: ConsentRequestValidator,
|
|
2753
|
+
});
|
|
2754
|
+
|
|
2755
|
+
export type UpsertConsentContractEvent = z.infer<typeof UpsertConsentContractEventValidator>;
|
|
2756
|
+
|
|
2757
|
+
export const UpsertConsentContractResponseValidator = z.object({
|
|
2758
|
+
contractUri: z.string(),
|
|
2759
|
+
created: z.boolean(),
|
|
2760
|
+
});
|
|
2761
|
+
|
|
2762
|
+
export type UpsertConsentContractResponse = z.infer<typeof UpsertConsentContractResponseValidator>;
|
|
2763
|
+
|
|
2428
2764
|
// Add new event types here as the union grows
|
|
2429
|
-
export const AppEventValidator = z.
|
|
2765
|
+
export const AppEventValidator = z.union([
|
|
2430
2766
|
SendCredentialEventValidator,
|
|
2431
2767
|
CheckCredentialEventValidator,
|
|
2432
2768
|
CheckIssuanceStatusEventValidator,
|
|
@@ -2437,6 +2773,7 @@ export const AppEventValidator = z.discriminatedUnion('type', [
|
|
|
2437
2773
|
IncrementCounterEventValidator,
|
|
2438
2774
|
GetCounterEventValidator,
|
|
2439
2775
|
GetCountersEventValidator,
|
|
2776
|
+
UpsertConsentContractEventValidator,
|
|
2440
2777
|
]);
|
|
2441
2778
|
|
|
2442
2779
|
export type AppEvent = z.infer<typeof AppEventValidator>;
|