@camstack/types 1.2.363 → 1.2.365

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.
@@ -42,6 +42,7 @@ import type { dayNightCapability } from '../capabilities/day-night.cap.js';
42
42
  import type { decoderCapability } from '../capabilities/decoder.cap.js';
43
43
  import type { deviceAdminLinkCapability } from '../capabilities/device-admin-link.cap.js';
44
44
  import type { deviceAdoptionCapability } from '../capabilities/device-adoption.cap.js';
45
+ import type { deviceCredentialsCapability } from '../capabilities/device-credentials.cap.js';
45
46
  import type { deviceDiscoveryCapability } from '../capabilities/device-discovery.cap.js';
46
47
  import type { deviceExportCapability } from '../capabilities/device-export.cap.js';
47
48
  import type { deviceExtensionCapability } from '../capabilities/device-extension.cap.js';
@@ -82,6 +83,7 @@ import type { nativeObjectDetectionCapability } from '../capabilities/native-obj
82
83
  import type { navigationCapability } from '../capabilities/navigation.cap.js';
83
84
  import type { networkAccessCapability } from '../capabilities/network-access.cap.js';
84
85
  import type { networkQualityCapability } from '../capabilities/network-quality.cap.js';
86
+ import type { nodeCertificatesCapability } from '../capabilities/node-certificates.cap.js';
85
87
  import type { nodesCapability } from '../capabilities/nodes.cap.js';
86
88
  import type { notificationOutputCapability } from '../capabilities/notification-output.cap.js';
87
89
  import type { notificationRulesCapability } from '../capabilities/notification-rules.cap.js';
@@ -2145,6 +2147,69 @@ export type AppRouter = TrpcCoreRouter<{
2145
2147
  meta: object;
2146
2148
  }>;
2147
2149
  }>>;
2150
+ deviceCredentials: TRPCBuiltRouter<{
2151
+ ctx: TrpcContext;
2152
+ meta: object;
2153
+ errorShape: AugmentedErrorShape;
2154
+ transformer: true;
2155
+ }, TRPCDecorateCreateRouterOptions<{
2156
+ listDeviceCredentials: TRPCQueryProcedure<{
2157
+ input: {
2158
+ [x: string]: unknown;
2159
+ } & z.input<typeof deviceCredentialsCapability.methods.listDeviceCredentials.input>;
2160
+ output: z.infer<typeof deviceCredentialsCapability.methods.listDeviceCredentials.output>;
2161
+ meta: object;
2162
+ }>;
2163
+ startEnrollment: TRPCMutationProcedure<{
2164
+ input: {
2165
+ [x: string]: unknown;
2166
+ } & z.input<typeof deviceCredentialsCapability.methods.startEnrollment.input>;
2167
+ output: z.infer<typeof deviceCredentialsCapability.methods.startEnrollment.output>;
2168
+ meta: object;
2169
+ }>;
2170
+ revokeDeviceCredential: TRPCMutationProcedure<{
2171
+ input: {
2172
+ [x: string]: unknown;
2173
+ } & z.input<typeof deviceCredentialsCapability.methods.revokeDeviceCredential.input>;
2174
+ output: z.infer<typeof deviceCredentialsCapability.methods.revokeDeviceCredential.output>;
2175
+ meta: object;
2176
+ }>;
2177
+ getDeviceCertificateSettings: TRPCQueryProcedure<{
2178
+ input: {
2179
+ [x: string]: unknown;
2180
+ } & z.input<typeof deviceCredentialsCapability.methods.getDeviceCertificateSettings.input>;
2181
+ output: z.infer<typeof deviceCredentialsCapability.methods.getDeviceCertificateSettings.output>;
2182
+ meta: object;
2183
+ }>;
2184
+ setDeviceCertificateSettings: TRPCMutationProcedure<{
2185
+ input: {
2186
+ [x: string]: unknown;
2187
+ } & z.input<typeof deviceCredentialsCapability.methods.setDeviceCertificateSettings.input>;
2188
+ output: z.infer<typeof deviceCredentialsCapability.methods.setDeviceCertificateSettings.output>;
2189
+ meta: object;
2190
+ }>;
2191
+ deleteDeviceCredential: TRPCMutationProcedure<{
2192
+ input: {
2193
+ [x: string]: unknown;
2194
+ } & z.input<typeof deviceCredentialsCapability.methods.deleteDeviceCredential.input>;
2195
+ output: z.infer<typeof deviceCredentialsCapability.methods.deleteDeviceCredential.output>;
2196
+ meta: object;
2197
+ }>;
2198
+ getDeviceCaStatus: TRPCQueryProcedure<{
2199
+ input: {
2200
+ [x: string]: unknown;
2201
+ } & z.input<typeof deviceCredentialsCapability.methods.getDeviceCaStatus.input>;
2202
+ output: z.infer<typeof deviceCredentialsCapability.methods.getDeviceCaStatus.output>;
2203
+ meta: object;
2204
+ }>;
2205
+ renameDeviceCredential: TRPCMutationProcedure<{
2206
+ input: {
2207
+ [x: string]: unknown;
2208
+ } & z.input<typeof deviceCredentialsCapability.methods.renameDeviceCredential.input>;
2209
+ output: z.infer<typeof deviceCredentialsCapability.methods.renameDeviceCredential.output>;
2210
+ meta: object;
2211
+ }>;
2212
+ }>>;
2148
2213
  deviceDiscovery: TRPCBuiltRouter<{
2149
2214
  ctx: TrpcContext;
2150
2215
  meta: object;
@@ -5016,6 +5081,62 @@ export type AppRouter = TrpcCoreRouter<{
5016
5081
  meta: object;
5017
5082
  }>;
5018
5083
  }>>;
5084
+ nodeCertificates: TRPCBuiltRouter<{
5085
+ ctx: TrpcContext;
5086
+ meta: object;
5087
+ errorShape: AugmentedErrorShape;
5088
+ transformer: true;
5089
+ }, TRPCDecorateCreateRouterOptions<{
5090
+ getCertificates: TRPCQueryProcedure<{
5091
+ input: {
5092
+ [x: string]: unknown;
5093
+ } & z.input<typeof nodeCertificatesCapability.methods.getCertificates.input>;
5094
+ output: z.infer<typeof nodeCertificatesCapability.methods.getCertificates.output>;
5095
+ meta: object;
5096
+ }>;
5097
+ prepareMeshRenewal: TRPCMutationProcedure<{
5098
+ input: {
5099
+ [x: string]: unknown;
5100
+ } & z.input<typeof nodeCertificatesCapability.methods.prepareMeshRenewal.input>;
5101
+ output: z.infer<typeof nodeCertificatesCapability.methods.prepareMeshRenewal.output>;
5102
+ meta: object;
5103
+ }>;
5104
+ installMeshLeaf: TRPCMutationProcedure<{
5105
+ input: {
5106
+ [x: string]: unknown;
5107
+ } & z.input<typeof nodeCertificatesCapability.methods.installMeshLeaf.input>;
5108
+ output: z.infer<typeof nodeCertificatesCapability.methods.installMeshLeaf.output>;
5109
+ meta: object;
5110
+ }>;
5111
+ confirmMeshLeaf: TRPCMutationProcedure<{
5112
+ input: {
5113
+ [x: string]: unknown;
5114
+ } & z.input<typeof nodeCertificatesCapability.methods.confirmMeshLeaf.input>;
5115
+ output: z.infer<typeof nodeCertificatesCapability.methods.confirmMeshLeaf.output>;
5116
+ meta: object;
5117
+ }>;
5118
+ rollbackMeshLeaf: TRPCMutationProcedure<{
5119
+ input: {
5120
+ [x: string]: unknown;
5121
+ } & z.input<typeof nodeCertificatesCapability.methods.rollbackMeshLeaf.input>;
5122
+ output: z.infer<typeof nodeCertificatesCapability.methods.rollbackMeshLeaf.output>;
5123
+ meta: object;
5124
+ }>;
5125
+ prepareHttpsCertificate: TRPCMutationProcedure<{
5126
+ input: {
5127
+ [x: string]: unknown;
5128
+ } & z.input<typeof nodeCertificatesCapability.methods.prepareHttpsCertificate.input>;
5129
+ output: z.infer<typeof nodeCertificatesCapability.methods.prepareHttpsCertificate.output>;
5130
+ meta: object;
5131
+ }>;
5132
+ installHttpsCertificate: TRPCMutationProcedure<{
5133
+ input: {
5134
+ [x: string]: unknown;
5135
+ } & z.input<typeof nodeCertificatesCapability.methods.installHttpsCertificate.input>;
5136
+ output: z.infer<typeof nodeCertificatesCapability.methods.installHttpsCertificate.output>;
5137
+ meta: object;
5138
+ }>;
5139
+ }>>;
5019
5140
  nodes: TRPCBuiltRouter<{
5020
5141
  ctx: TrpcContext;
5021
5142
  meta: object;
@@ -11290,6 +11411,268 @@ export type AppRouter = TrpcCoreRouter<{
11290
11411
  meta: object;
11291
11412
  }>;
11292
11413
  }>;
11414
+ certificates: import("@trpc/server/unstable-core-do-not-import").Router<{
11415
+ ctx: any;
11416
+ meta: object;
11417
+ errorShape: AugmentedErrorShape;
11418
+ transformer: true;
11419
+ }, import("@trpc/server/unstable-core-do-not-import").DecorateCreateRouterOptions<{
11420
+ listHttpsCertificates: import("@trpc/server/unstable-core-do-not-import").QueryProcedure<{
11421
+ input: void;
11422
+ output: {
11423
+ nodeId: string;
11424
+ isHub: boolean;
11425
+ online: boolean;
11426
+ https: {
11427
+ kind: "served";
11428
+ status: {
11429
+ mode: "generated" | "uploaded" | "disabled";
11430
+ leafFingerprintSha256: string | null;
11431
+ caFingerprintSha256: string | null;
11432
+ validTo: string | null;
11433
+ sans: string[];
11434
+ reissueError: string | null;
11435
+ restartRequired: boolean;
11436
+ };
11437
+ } | {
11438
+ kind: "not-served";
11439
+ reason: string;
11440
+ } | {
11441
+ kind: "unreadable";
11442
+ reason: string;
11443
+ };
11444
+ }[];
11445
+ meta: object;
11446
+ }>;
11447
+ renewHttpsOnNode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11448
+ input: {
11449
+ nodeId: string;
11450
+ reason?: string | undefined;
11451
+ };
11452
+ output: {
11453
+ mode: "generated" | "uploaded" | "disabled";
11454
+ leafFingerprintSha256: string | null;
11455
+ caFingerprintSha256: string | null;
11456
+ validTo: string | null;
11457
+ sans: string[];
11458
+ reissueError: string | null;
11459
+ restartRequired: boolean;
11460
+ };
11461
+ meta: object;
11462
+ }>;
11463
+ getMeshCertificates: import("@trpc/server/unstable-core-do-not-import").QueryProcedure<{
11464
+ input: void;
11465
+ output: {
11466
+ ca: {
11467
+ state: "ready";
11468
+ subject: string;
11469
+ fingerprintSha256: string;
11470
+ validTo: string;
11471
+ } | {
11472
+ state: "unavailable";
11473
+ reason: string;
11474
+ };
11475
+ revokedSerials: string[];
11476
+ registryAvailable: boolean;
11477
+ listener: {
11478
+ state: "open";
11479
+ } | {
11480
+ state: "closed";
11481
+ reason: string;
11482
+ since: number;
11483
+ } | {
11484
+ state: "not-started";
11485
+ };
11486
+ nodes: {
11487
+ nodeId: string;
11488
+ online: boolean;
11489
+ current: {
11490
+ serial: string;
11491
+ fingerprintSha256: string;
11492
+ notBefore: number;
11493
+ notAfter: number;
11494
+ issuedAt: number;
11495
+ issuedVia: "enroll" | "renewal" | "boot" | "observed";
11496
+ status: "valid" | "expiring" | "expired" | "revoked";
11497
+ revokedAt: number | null;
11498
+ revokedReason: string | null;
11499
+ } | null;
11500
+ presentingCurrent: boolean | null;
11501
+ history: {
11502
+ serial: string;
11503
+ fingerprintSha256: string;
11504
+ notBefore: number;
11505
+ notAfter: number;
11506
+ issuedAt: number;
11507
+ issuedVia: "enroll" | "renewal" | "boot" | "observed";
11508
+ status: "valid" | "expiring" | "expired" | "revoked";
11509
+ revokedAt: number | null;
11510
+ revokedReason: string | null;
11511
+ }[];
11512
+ }[];
11513
+ };
11514
+ meta: object;
11515
+ }>;
11516
+ renewMeshOnNode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11517
+ input: {
11518
+ nodeId: string;
11519
+ };
11520
+ output: {
11521
+ ok: true;
11522
+ nodeId: string;
11523
+ oldSerial: string | null;
11524
+ newSerial: string;
11525
+ newNotAfter: number;
11526
+ } | {
11527
+ ok: false;
11528
+ nodeId: string;
11529
+ stage: "prepare" | "issue" | "install" | "reconnect" | "confirm";
11530
+ reason: string;
11531
+ keptPreviousLeaf: boolean;
11532
+ };
11533
+ meta: object;
11534
+ }>;
11535
+ revokeMeshOnNode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11536
+ input: {
11537
+ nodeId: string;
11538
+ };
11539
+ output: {
11540
+ nodeId: string;
11541
+ revokedSerials: string[];
11542
+ disconnected: number;
11543
+ next: string;
11544
+ };
11545
+ meta: object;
11546
+ }>;
11547
+ }>> & import("@trpc/server/unstable-core-do-not-import").DecorateCreateRouterOptions<{
11548
+ listHttpsCertificates: import("@trpc/server/unstable-core-do-not-import").QueryProcedure<{
11549
+ input: void;
11550
+ output: {
11551
+ nodeId: string;
11552
+ isHub: boolean;
11553
+ online: boolean;
11554
+ https: {
11555
+ kind: "served";
11556
+ status: {
11557
+ mode: "generated" | "uploaded" | "disabled";
11558
+ leafFingerprintSha256: string | null;
11559
+ caFingerprintSha256: string | null;
11560
+ validTo: string | null;
11561
+ sans: string[];
11562
+ reissueError: string | null;
11563
+ restartRequired: boolean;
11564
+ };
11565
+ } | {
11566
+ kind: "not-served";
11567
+ reason: string;
11568
+ } | {
11569
+ kind: "unreadable";
11570
+ reason: string;
11571
+ };
11572
+ }[];
11573
+ meta: object;
11574
+ }>;
11575
+ renewHttpsOnNode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11576
+ input: {
11577
+ nodeId: string;
11578
+ reason?: string | undefined;
11579
+ };
11580
+ output: {
11581
+ mode: "generated" | "uploaded" | "disabled";
11582
+ leafFingerprintSha256: string | null;
11583
+ caFingerprintSha256: string | null;
11584
+ validTo: string | null;
11585
+ sans: string[];
11586
+ reissueError: string | null;
11587
+ restartRequired: boolean;
11588
+ };
11589
+ meta: object;
11590
+ }>;
11591
+ getMeshCertificates: import("@trpc/server/unstable-core-do-not-import").QueryProcedure<{
11592
+ input: void;
11593
+ output: {
11594
+ ca: {
11595
+ state: "ready";
11596
+ subject: string;
11597
+ fingerprintSha256: string;
11598
+ validTo: string;
11599
+ } | {
11600
+ state: "unavailable";
11601
+ reason: string;
11602
+ };
11603
+ revokedSerials: string[];
11604
+ registryAvailable: boolean;
11605
+ listener: {
11606
+ state: "open";
11607
+ } | {
11608
+ state: "closed";
11609
+ reason: string;
11610
+ since: number;
11611
+ } | {
11612
+ state: "not-started";
11613
+ };
11614
+ nodes: {
11615
+ nodeId: string;
11616
+ online: boolean;
11617
+ current: {
11618
+ serial: string;
11619
+ fingerprintSha256: string;
11620
+ notBefore: number;
11621
+ notAfter: number;
11622
+ issuedAt: number;
11623
+ issuedVia: "enroll" | "renewal" | "boot" | "observed";
11624
+ status: "valid" | "expiring" | "expired" | "revoked";
11625
+ revokedAt: number | null;
11626
+ revokedReason: string | null;
11627
+ } | null;
11628
+ presentingCurrent: boolean | null;
11629
+ history: {
11630
+ serial: string;
11631
+ fingerprintSha256: string;
11632
+ notBefore: number;
11633
+ notAfter: number;
11634
+ issuedAt: number;
11635
+ issuedVia: "enroll" | "renewal" | "boot" | "observed";
11636
+ status: "valid" | "expiring" | "expired" | "revoked";
11637
+ revokedAt: number | null;
11638
+ revokedReason: string | null;
11639
+ }[];
11640
+ }[];
11641
+ };
11642
+ meta: object;
11643
+ }>;
11644
+ renewMeshOnNode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11645
+ input: {
11646
+ nodeId: string;
11647
+ };
11648
+ output: {
11649
+ ok: true;
11650
+ nodeId: string;
11651
+ oldSerial: string | null;
11652
+ newSerial: string;
11653
+ newNotAfter: number;
11654
+ } | {
11655
+ ok: false;
11656
+ nodeId: string;
11657
+ stage: "prepare" | "issue" | "install" | "reconnect" | "confirm";
11658
+ reason: string;
11659
+ keptPreviousLeaf: boolean;
11660
+ };
11661
+ meta: object;
11662
+ }>;
11663
+ revokeMeshOnNode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11664
+ input: {
11665
+ nodeId: string;
11666
+ };
11667
+ output: {
11668
+ nodeId: string;
11669
+ revokedSerials: string[];
11670
+ disconnected: number;
11671
+ next: string;
11672
+ };
11673
+ meta: object;
11674
+ }>;
11675
+ }>;
11293
11676
  auth: import("@trpc/server/unstable-core-do-not-import").Router<{
11294
11677
  ctx: any;
11295
11678
  meta: object;
@@ -11320,7 +11703,7 @@ export type AppRouter = TrpcCoreRouter<{
11320
11703
  code: string;
11321
11704
  };
11322
11705
  output: {
11323
- outcome: "session" | "linked" | "conflict" | "expired";
11706
+ outcome: "session" | "expired" | "linked" | "conflict";
11324
11707
  provider?: string | undefined;
11325
11708
  };
11326
11709
  meta: object;
@@ -11384,6 +11767,19 @@ export type AppRouter = TrpcCoreRouter<{
11384
11767
  stage: "primary" | "second-factor";
11385
11768
  rpId: string;
11386
11769
  origin: string | null;
11770
+ } | {
11771
+ kind: "device-certificate";
11772
+ id: "device-certificate";
11773
+ label: string;
11774
+ stage: "primary";
11775
+ challengePath: "auth.getDeviceChallenge";
11776
+ revokePath: "auth.revokeOwnDeviceCertificate";
11777
+ enrollSelfPath: "auth.enrollSelf";
11778
+ loginPath: "auth.loginWithDeviceCertificate";
11779
+ renewPath: "auth.renewDeviceCertificate";
11780
+ signature: "ecdsa-p256-sha256";
11781
+ messageVersion: "camstack-device-cert-v1";
11782
+ clients: ("web" | "native")[];
11387
11783
  })[];
11388
11784
  meta: object;
11389
11785
  }>;
@@ -11481,6 +11877,193 @@ export type AppRouter = TrpcCoreRouter<{
11481
11877
  };
11482
11878
  meta: object;
11483
11879
  }>;
11880
+ completeEnrollment: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11881
+ input: {
11882
+ code: string;
11883
+ publicKeySpki: string;
11884
+ platform: "android" | "ios" | "other" | "web";
11885
+ deviceName?: string | undefined;
11886
+ };
11887
+ output: {
11888
+ credentialId: string;
11889
+ certPem: string;
11890
+ chainPem: string;
11891
+ notAfter: number;
11892
+ user: {
11893
+ id: string;
11894
+ username: string;
11895
+ };
11896
+ ok: true;
11897
+ } | {
11898
+ ok: false;
11899
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
11900
+ definitive: boolean;
11901
+ retryAfterSeconds?: number | undefined;
11902
+ };
11903
+ meta: object;
11904
+ }>;
11905
+ getDeviceChallenge: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11906
+ input: void;
11907
+ output: {
11908
+ nonce: string;
11909
+ origin: string;
11910
+ expiresAt: number;
11911
+ signature: "ecdsa-p256-sha256";
11912
+ ok: true;
11913
+ } | {
11914
+ ok: false;
11915
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
11916
+ definitive: boolean;
11917
+ retryAfterSeconds?: number | undefined;
11918
+ };
11919
+ meta: object;
11920
+ }>;
11921
+ loginWithDeviceCertificate: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11922
+ input: {
11923
+ certPem: string;
11924
+ nonce: string;
11925
+ signature: string;
11926
+ refreshable?: boolean | undefined;
11927
+ };
11928
+ output: {
11929
+ ok: false;
11930
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
11931
+ definitive: boolean;
11932
+ retryAfterSeconds?: number | undefined;
11933
+ } | {
11934
+ ok: true;
11935
+ token: string;
11936
+ user: {
11937
+ id: string;
11938
+ username: string;
11939
+ isAdmin: boolean;
11940
+ };
11941
+ credentialId: string;
11942
+ certNotAfter: number;
11943
+ expiresAt?: number | undefined;
11944
+ sessionId?: string | undefined;
11945
+ sessionExpiresAt?: number | undefined;
11946
+ refreshToken?: string | undefined;
11947
+ };
11948
+ meta: object;
11949
+ }>;
11950
+ renewDeviceCertificate: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11951
+ input: {
11952
+ certPem: string;
11953
+ nonce: string;
11954
+ signature: string;
11955
+ };
11956
+ output: {
11957
+ credentialId: string;
11958
+ certPem: string;
11959
+ chainPem: string;
11960
+ notAfter: number;
11961
+ ok: true;
11962
+ } | {
11963
+ ok: false;
11964
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
11965
+ definitive: boolean;
11966
+ retryAfterSeconds?: number | undefined;
11967
+ };
11968
+ meta: object;
11969
+ }>;
11970
+ revokeOwnDeviceCertificate: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11971
+ input: {
11972
+ certPem: string;
11973
+ nonce: string;
11974
+ signature: string;
11975
+ };
11976
+ output: {
11977
+ ok: true;
11978
+ credentialId: string;
11979
+ sessionsEnded: number;
11980
+ } | {
11981
+ ok: false;
11982
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
11983
+ definitive: boolean;
11984
+ retryAfterSeconds?: number | undefined;
11985
+ };
11986
+ meta: object;
11987
+ }>;
11988
+ listOwnDeviceCredentials: import("@trpc/server/unstable-core-do-not-import").QueryProcedure<{
11989
+ input: {
11990
+ includeRevoked?: boolean | undefined;
11991
+ } | undefined;
11992
+ output: {
11993
+ id: string;
11994
+ userId: string;
11995
+ username: string | null;
11996
+ deviceName: string;
11997
+ platform: "android" | "ios" | "other" | "web";
11998
+ enrolledVia: "self" | "qr";
11999
+ fingerprint: string;
12000
+ issuedAt: number;
12001
+ expiresAt: number;
12002
+ lastUsedAt: number | null;
12003
+ lastUsedFrom: string | null;
12004
+ revokedAt: number | null;
12005
+ revokedBy: string | null;
12006
+ status: "expired" | "revoked" | "active";
12007
+ }[];
12008
+ meta: object;
12009
+ }>;
12010
+ revokeOwnDeviceCredential: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12011
+ input: {
12012
+ id: string;
12013
+ };
12014
+ output: {
12015
+ revoked: boolean;
12016
+ sessionsEnded: number;
12017
+ };
12018
+ meta: object;
12019
+ }>;
12020
+ deviceEnrollProofFromReauth: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12021
+ input: {
12022
+ reauthToken: string;
12023
+ };
12024
+ output: {
12025
+ proof: string;
12026
+ expiresAt: number;
12027
+ };
12028
+ meta: object;
12029
+ }>;
12030
+ deviceEnrollProofFromHandoff: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12031
+ input: {
12032
+ code: string;
12033
+ codeVerifier?: string | undefined;
12034
+ state?: string | undefined;
12035
+ };
12036
+ output: {
12037
+ proof: string;
12038
+ expiresAt: number;
12039
+ };
12040
+ meta: object;
12041
+ }>;
12042
+ enrollSelf: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12043
+ input: {
12044
+ proof: string;
12045
+ publicKeySpki: string;
12046
+ deviceName: string;
12047
+ platform: "android" | "ios" | "other" | "web";
12048
+ };
12049
+ output: {
12050
+ credentialId: string;
12051
+ certPem: string;
12052
+ chainPem: string;
12053
+ notAfter: number;
12054
+ user: {
12055
+ id: string;
12056
+ username: string;
12057
+ };
12058
+ ok: true;
12059
+ } | {
12060
+ ok: false;
12061
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
12062
+ definitive: boolean;
12063
+ retryAfterSeconds?: number | undefined;
12064
+ };
12065
+ meta: object;
12066
+ }>;
11484
12067
  refreshSession: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11485
12068
  input: {
11486
12069
  refreshToken: string;
@@ -11688,7 +12271,10 @@ export type AppRouter = TrpcCoreRouter<{
11688
12271
  }>;
11689
12272
  createHandoffCode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
11690
12273
  input: {
11691
- purpose?: "renew" | "new-session" | undefined;
12274
+ purpose?: "renew" | "new-session" | "step-up" | undefined;
12275
+ codeChallenge?: string | undefined;
12276
+ state?: string | undefined;
12277
+ reauthToken?: string | undefined;
11692
12278
  } | undefined;
11693
12279
  output: {
11694
12280
  code: string;
@@ -11700,6 +12286,8 @@ export type AppRouter = TrpcCoreRouter<{
11700
12286
  input: {
11701
12287
  code: string;
11702
12288
  refreshable?: boolean | undefined;
12289
+ codeVerifier?: string | undefined;
12290
+ state?: string | undefined;
11703
12291
  };
11704
12292
  output: {
11705
12293
  token: string;
@@ -11975,7 +12563,7 @@ export type AppRouter = TrpcCoreRouter<{
11975
12563
  code: string;
11976
12564
  };
11977
12565
  output: {
11978
- outcome: "session" | "linked" | "conflict" | "expired";
12566
+ outcome: "session" | "expired" | "linked" | "conflict";
11979
12567
  provider?: string | undefined;
11980
12568
  };
11981
12569
  meta: object;
@@ -12039,6 +12627,19 @@ export type AppRouter = TrpcCoreRouter<{
12039
12627
  stage: "primary" | "second-factor";
12040
12628
  rpId: string;
12041
12629
  origin: string | null;
12630
+ } | {
12631
+ kind: "device-certificate";
12632
+ id: "device-certificate";
12633
+ label: string;
12634
+ stage: "primary";
12635
+ challengePath: "auth.getDeviceChallenge";
12636
+ revokePath: "auth.revokeOwnDeviceCertificate";
12637
+ enrollSelfPath: "auth.enrollSelf";
12638
+ loginPath: "auth.loginWithDeviceCertificate";
12639
+ renewPath: "auth.renewDeviceCertificate";
12640
+ signature: "ecdsa-p256-sha256";
12641
+ messageVersion: "camstack-device-cert-v1";
12642
+ clients: ("web" | "native")[];
12042
12643
  })[];
12043
12644
  meta: object;
12044
12645
  }>;
@@ -12136,6 +12737,193 @@ export type AppRouter = TrpcCoreRouter<{
12136
12737
  };
12137
12738
  meta: object;
12138
12739
  }>;
12740
+ completeEnrollment: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12741
+ input: {
12742
+ code: string;
12743
+ publicKeySpki: string;
12744
+ platform: "android" | "ios" | "other" | "web";
12745
+ deviceName?: string | undefined;
12746
+ };
12747
+ output: {
12748
+ credentialId: string;
12749
+ certPem: string;
12750
+ chainPem: string;
12751
+ notAfter: number;
12752
+ user: {
12753
+ id: string;
12754
+ username: string;
12755
+ };
12756
+ ok: true;
12757
+ } | {
12758
+ ok: false;
12759
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
12760
+ definitive: boolean;
12761
+ retryAfterSeconds?: number | undefined;
12762
+ };
12763
+ meta: object;
12764
+ }>;
12765
+ getDeviceChallenge: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12766
+ input: void;
12767
+ output: {
12768
+ nonce: string;
12769
+ origin: string;
12770
+ expiresAt: number;
12771
+ signature: "ecdsa-p256-sha256";
12772
+ ok: true;
12773
+ } | {
12774
+ ok: false;
12775
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
12776
+ definitive: boolean;
12777
+ retryAfterSeconds?: number | undefined;
12778
+ };
12779
+ meta: object;
12780
+ }>;
12781
+ loginWithDeviceCertificate: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12782
+ input: {
12783
+ certPem: string;
12784
+ nonce: string;
12785
+ signature: string;
12786
+ refreshable?: boolean | undefined;
12787
+ };
12788
+ output: {
12789
+ ok: false;
12790
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
12791
+ definitive: boolean;
12792
+ retryAfterSeconds?: number | undefined;
12793
+ } | {
12794
+ ok: true;
12795
+ token: string;
12796
+ user: {
12797
+ id: string;
12798
+ username: string;
12799
+ isAdmin: boolean;
12800
+ };
12801
+ credentialId: string;
12802
+ certNotAfter: number;
12803
+ expiresAt?: number | undefined;
12804
+ sessionId?: string | undefined;
12805
+ sessionExpiresAt?: number | undefined;
12806
+ refreshToken?: string | undefined;
12807
+ };
12808
+ meta: object;
12809
+ }>;
12810
+ renewDeviceCertificate: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12811
+ input: {
12812
+ certPem: string;
12813
+ nonce: string;
12814
+ signature: string;
12815
+ };
12816
+ output: {
12817
+ credentialId: string;
12818
+ certPem: string;
12819
+ chainPem: string;
12820
+ notAfter: number;
12821
+ ok: true;
12822
+ } | {
12823
+ ok: false;
12824
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
12825
+ definitive: boolean;
12826
+ retryAfterSeconds?: number | undefined;
12827
+ };
12828
+ meta: object;
12829
+ }>;
12830
+ revokeOwnDeviceCertificate: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12831
+ input: {
12832
+ certPem: string;
12833
+ nonce: string;
12834
+ signature: string;
12835
+ };
12836
+ output: {
12837
+ ok: true;
12838
+ credentialId: string;
12839
+ sessionsEnded: number;
12840
+ } | {
12841
+ ok: false;
12842
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
12843
+ definitive: boolean;
12844
+ retryAfterSeconds?: number | undefined;
12845
+ };
12846
+ meta: object;
12847
+ }>;
12848
+ listOwnDeviceCredentials: import("@trpc/server/unstable-core-do-not-import").QueryProcedure<{
12849
+ input: {
12850
+ includeRevoked?: boolean | undefined;
12851
+ } | undefined;
12852
+ output: {
12853
+ id: string;
12854
+ userId: string;
12855
+ username: string | null;
12856
+ deviceName: string;
12857
+ platform: "android" | "ios" | "other" | "web";
12858
+ enrolledVia: "self" | "qr";
12859
+ fingerprint: string;
12860
+ issuedAt: number;
12861
+ expiresAt: number;
12862
+ lastUsedAt: number | null;
12863
+ lastUsedFrom: string | null;
12864
+ revokedAt: number | null;
12865
+ revokedBy: string | null;
12866
+ status: "expired" | "revoked" | "active";
12867
+ }[];
12868
+ meta: object;
12869
+ }>;
12870
+ revokeOwnDeviceCredential: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12871
+ input: {
12872
+ id: string;
12873
+ };
12874
+ output: {
12875
+ revoked: boolean;
12876
+ sessionsEnded: number;
12877
+ };
12878
+ meta: object;
12879
+ }>;
12880
+ deviceEnrollProofFromReauth: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12881
+ input: {
12882
+ reauthToken: string;
12883
+ };
12884
+ output: {
12885
+ proof: string;
12886
+ expiresAt: number;
12887
+ };
12888
+ meta: object;
12889
+ }>;
12890
+ deviceEnrollProofFromHandoff: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12891
+ input: {
12892
+ code: string;
12893
+ codeVerifier?: string | undefined;
12894
+ state?: string | undefined;
12895
+ };
12896
+ output: {
12897
+ proof: string;
12898
+ expiresAt: number;
12899
+ };
12900
+ meta: object;
12901
+ }>;
12902
+ enrollSelf: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12903
+ input: {
12904
+ proof: string;
12905
+ publicKeySpki: string;
12906
+ deviceName: string;
12907
+ platform: "android" | "ios" | "other" | "web";
12908
+ };
12909
+ output: {
12910
+ credentialId: string;
12911
+ certPem: string;
12912
+ chainPem: string;
12913
+ notAfter: number;
12914
+ user: {
12915
+ id: string;
12916
+ username: string;
12917
+ };
12918
+ ok: true;
12919
+ } | {
12920
+ ok: false;
12921
+ reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
12922
+ definitive: boolean;
12923
+ retryAfterSeconds?: number | undefined;
12924
+ };
12925
+ meta: object;
12926
+ }>;
12139
12927
  refreshSession: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12140
12928
  input: {
12141
12929
  refreshToken: string;
@@ -12343,7 +13131,10 @@ export type AppRouter = TrpcCoreRouter<{
12343
13131
  }>;
12344
13132
  createHandoffCode: import("@trpc/server/unstable-core-do-not-import").MutationProcedure<{
12345
13133
  input: {
12346
- purpose?: "renew" | "new-session" | undefined;
13134
+ purpose?: "renew" | "new-session" | "step-up" | undefined;
13135
+ codeChallenge?: string | undefined;
13136
+ state?: string | undefined;
13137
+ reauthToken?: string | undefined;
12347
13138
  } | undefined;
12348
13139
  output: {
12349
13140
  code: string;
@@ -12355,6 +13146,8 @@ export type AppRouter = TrpcCoreRouter<{
12355
13146
  input: {
12356
13147
  code: string;
12357
13148
  refreshable?: boolean | undefined;
13149
+ codeVerifier?: string | undefined;
13150
+ state?: string | undefined;
12358
13151
  };
12359
13152
  output: {
12360
13153
  token: string;