@env-hopper/backend-core 2.0.1-alpha.5 → 2.0.1-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,13 +1,14 @@
1
- import * as _trpc_server0 from "@trpc/server";
2
- import { TRPCRootObject } from "@trpc/server";
3
1
  import * as _prisma_client0 from "@prisma/client";
4
2
  import { Prisma, PrismaClient } from "@prisma/client";
3
+ import * as _trpc_server0 from "@trpc/server";
4
+ import { TRPCRootObject } from "@trpc/server";
5
5
  import * as better_auth0 from "better-auth";
6
6
  import { BetterAuthOptions, BetterAuthPlugin } from "better-auth";
7
7
  import { LanguageModel, Tool, tool } from "ai";
8
8
  import { Express, Request, Response, Router } from "express";
9
- import * as _prisma_client_runtime_library0 from "@prisma/client/runtime/library";
10
9
  import { DefaultWithOverridesAndTemplate } from "@env-hopper/shared-core";
10
+ import { User as User$1 } from "better-auth/types";
11
+ import * as _prisma_client_runtime_library0 from "@prisma/client/runtime/library";
11
12
 
12
13
  //#region src/types/common/sharedTypes.d.ts
13
14
  interface EhMetaDictionary {
@@ -223,35 +224,139 @@ interface User {
223
224
  displayName: string;
224
225
  }
225
226
  //#endregion
226
- //#region src/types/common/appCatalogTypes.d.ts
227
+ //#region src/types/common/approvalMethodTypes.d.ts
227
228
  /**
228
- * App Catalog Types - Universal Software Access Request Catalog
229
+ * Approval Method Types
229
230
  *
230
- * These types define a standardized catalog of software applications and their
231
- * access methods. The typing system is designed to be universal across companies,
232
- * abstracting away specific tools (Jira, Slack, etc.) into generic categories.
231
+ * Global approval method templates that apps can link to.
232
+ * Each method has a type (service, personTeam, custom) with type-specific config.
233
233
  */
234
+ type ApprovalMethodType = 'service' | 'personTeam' | 'custom';
234
235
  /**
235
- * Bot provider configuration - for chat/AI bots that handle access requests
236
+ * Contact for reaching out (not necessarily the approver)
236
237
  */
237
- interface BotProvider {
238
- id: string;
239
- name: string;
240
- platform?: 'slack' | 'teams' | 'web' | 'other';
238
+ interface ReachOutContact {
239
+ displayName: string;
240
+ contact: string;
241
+ }
242
+ /**
243
+ * Service type config - for bots, ticketing systems, self-service portals
244
+ */
245
+ interface ServiceConfig {
241
246
  url?: string;
242
247
  icon?: string;
243
- instructions?: string;
244
248
  }
245
249
  /**
246
- * Ticketing system provider configuration
250
+ * Person/Team type config - for human approvers
247
251
  */
248
- interface TicketingProvider {
252
+ interface PersonTeamConfig {
253
+ reachOutContacts?: Array<ReachOutContact>;
254
+ }
255
+ /**
256
+ * Custom type config - generic, no additional fields
257
+ */
258
+ interface CustomConfig {}
259
+ /**
260
+ * Union of all config types
261
+ */
262
+ type ApprovalMethodConfig = ServiceConfig | PersonTeamConfig | CustomConfig;
263
+ /**
264
+ * Approval Method - stored in DbApprovalMethod
265
+ */
266
+ interface ApprovalMethod {
249
267
  id: string;
268
+ type: ApprovalMethodType;
269
+ displayName: string;
270
+ config?: ApprovalMethodConfig;
271
+ createdAt?: Date;
272
+ updatedAt?: Date;
273
+ }
274
+ /**
275
+ * Role that can be requested for an app
276
+ */
277
+ interface AppRole {
250
278
  name: string;
251
- system: 'jira' | 'servicenow' | 'zendesk' | 'freshdesk' | 'other';
252
- baseUrl: string;
253
- icon?: string;
279
+ description?: string;
254
280
  }
281
+ /**
282
+ * Approver contact (person who approves, may differ from reach-out contact)
283
+ */
284
+ interface ApproverContact {
285
+ displayName: string;
286
+ contact?: string;
287
+ }
288
+ /**
289
+ * URL link with optional label
290
+ */
291
+ interface ApprovalUrl {
292
+ label?: string;
293
+ url: string;
294
+ }
295
+ /**
296
+ * Per-app approval details - stored as JSON in DbAppForCatalog
297
+ */
298
+ interface AppApprovalDetails {
299
+ approvalMethodId: string;
300
+ comments?: string;
301
+ requestPrompt?: string;
302
+ postApprovalInstructions?: string;
303
+ roles?: Array<AppRole>;
304
+ approvers?: Array<ApproverContact>;
305
+ urls?: Array<ApprovalUrl>;
306
+ whoToReachOut?: string;
307
+ }
308
+ interface CreateApprovalMethodInput {
309
+ type: ApprovalMethodType;
310
+ displayName: string;
311
+ config?: ApprovalMethodConfig;
312
+ }
313
+ interface UpdateApprovalMethodInput {
314
+ id: string;
315
+ type?: ApprovalMethodType;
316
+ displayName?: string;
317
+ config?: ApprovalMethodConfig;
318
+ }
319
+ //#endregion
320
+ //#region src/types/common/appCatalogTypes.d.ts
321
+ /**
322
+ * Common fields for all approver types
323
+ */
324
+ interface BaseApprover {
325
+ comment?: string;
326
+ roles?: Array<AppRole>;
327
+ approvalPolicy?: string;
328
+ postApprovalInstructions?: string;
329
+ seeMoreUrls?: Array<string>;
330
+ }
331
+ /**
332
+ * Bot approver configuration for an app
333
+ */
334
+ interface BotApprover extends BaseApprover {
335
+ type: 'bot';
336
+ url?: string;
337
+ prompt?: string;
338
+ }
339
+ /**
340
+ * Ticket approver configuration for an app
341
+ */
342
+ interface TicketApprover extends BaseApprover {
343
+ type: 'ticket';
344
+ url?: string;
345
+ requestFormTemplate?: string;
346
+ }
347
+ /**
348
+ * Person/Group approver configuration for an app
349
+ */
350
+ interface PersonApprover extends BaseApprover {
351
+ type: 'person';
352
+ email?: string;
353
+ url?: string;
354
+ description?: string;
355
+ }
356
+ /**
357
+ * Union of all approver types
358
+ */
359
+ type Approver = BotApprover | TicketApprover | PersonApprover;
255
360
  /**
256
361
  * Bot-based access - request access through a chat bot
257
362
  */
@@ -311,21 +416,6 @@ interface ManualAccess {
311
416
  * Union type for all access methods
312
417
  */
313
418
  type AccessMethod = BotAccess | TicketingAccess | EmailAccess | SelfServiceAccess | DocumentationAccess | ManualAccess;
314
- /**
315
- * Approver information for apps that require specific approval
316
- */
317
- interface Approver {
318
- name: string;
319
- email: string;
320
- }
321
- /**
322
- * Available roles for an application
323
- */
324
- interface AppRole {
325
- id: string;
326
- name: string;
327
- description?: string;
328
- }
329
419
  /**
330
420
  * Application entry in the catalog
331
421
  */
@@ -336,8 +426,7 @@ interface AppForCatalog {
336
426
  description?: string;
337
427
  access?: AccessMethod;
338
428
  teams?: Array<string>;
339
- roles?: Array<AppRole>;
340
- approver?: Approver;
429
+ approvalDetails?: AppApprovalDetails;
341
430
  notes?: string;
342
431
  tags?: Array<string>;
343
432
  appUrl?: string;
@@ -418,6 +507,20 @@ interface EhBackendDeployment {
418
507
  version: EhBackendDataVersion;
419
508
  }
420
509
  //#endregion
510
+ //#region src/server/ehTrpcContext.d.ts
511
+ interface EhTrpcContext {
512
+ companySpecificBackend: EhBackendCompanySpecificBackend;
513
+ user: User$1 | null;
514
+ }
515
+ interface EhTrpcContextOptions {
516
+ companySpecificBackend: EhBackendCompanySpecificBackend;
517
+ user?: User$1 | null;
518
+ }
519
+ declare function createEhTrpcContext({
520
+ companySpecificBackend,
521
+ user
522
+ }: EhTrpcContextOptions): EhTrpcContext;
523
+ //#endregion
421
524
  //#region src/modules/auth/auth.d.ts
422
525
  interface AuthConfig {
423
526
  appName?: string;
@@ -455,17 +558,6 @@ declare function createAuth(config: AuthConfig): better_auth0.Auth<{
455
558
  }>;
456
559
  type BetterAuth = ReturnType<typeof createAuth>;
457
560
  //#endregion
458
- //#region src/server/ehTrpcContext.d.ts
459
- interface EhTrpcContext {
460
- companySpecificBackend: EhBackendCompanySpecificBackend;
461
- }
462
- interface EhTrpcContextOptions {
463
- companySpecificBackend: EhBackendCompanySpecificBackend;
464
- }
465
- declare function createEhTrpcContext({
466
- companySpecificBackend
467
- }: EhTrpcContextOptions): EhTrpcContext;
468
- //#endregion
469
561
  //#region src/server/controller.d.ts
470
562
  /**
471
563
  * Create the main tRPC router with optional auth instance
@@ -473,19 +565,19 @@ declare function createEhTrpcContext({
473
565
  */
474
566
  declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRouter<{
475
567
  ctx: EhTrpcContext;
476
- meta: {};
568
+ meta: object;
477
569
  errorShape: _trpc_server0.TRPCDefaultErrorShape;
478
570
  transformer: false;
479
571
  }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
480
572
  bootstrap: _trpc_server0.TRPCQueryProcedure<{
481
573
  input: void;
482
574
  output: BootstrapConfigData;
483
- meta: {};
575
+ meta: object;
484
576
  }>;
485
577
  availabilityMatrix: _trpc_server0.TRPCQueryProcedure<{
486
578
  input: void;
487
579
  output: AvailabilityMatrixData;
488
- meta: {};
580
+ meta: object;
489
581
  }>;
490
582
  tryFindRenameRule: _trpc_server0.TRPCQueryProcedure<{
491
583
  input: {
@@ -493,17 +585,17 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
493
585
  resourceSlug?: string | undefined;
494
586
  };
495
587
  output: false | RenameRule;
496
- meta: {};
588
+ meta: object;
497
589
  }>;
498
590
  resourceJumps: _trpc_server0.TRPCQueryProcedure<{
499
591
  input: void;
500
592
  output: ResourceJumpsData;
501
- meta: {};
593
+ meta: object;
502
594
  }>;
503
595
  resourceJumpsExtended: _trpc_server0.TRPCQueryProcedure<{
504
596
  input: void;
505
597
  output: ResourceJumpsExtendedData;
506
- meta: {};
598
+ meta: object;
507
599
  }>;
508
600
  resourceJumpBySlugAndEnv: _trpc_server0.TRPCQueryProcedure<{
509
601
  input: {
@@ -511,16 +603,16 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
511
603
  envSlug: string;
512
604
  };
513
605
  output: ResourceJumpsData;
514
- meta: {};
606
+ meta: object;
515
607
  }>;
516
608
  appCatalog: _trpc_server0.TRPCQueryProcedure<{
517
609
  input: void;
518
610
  output: AppCatalogData;
519
- meta: {};
611
+ meta: object;
520
612
  }>;
521
613
  icon: _trpc_server0.TRPCBuiltRouter<{
522
614
  ctx: EhTrpcContext;
523
- meta: {};
615
+ meta: object;
524
616
  errorShape: _trpc_server0.TRPCDefaultErrorShape;
525
617
  transformer: false;
526
618
  }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
@@ -528,13 +620,13 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
528
620
  input: void;
529
621
  output: {
530
622
  id: string;
623
+ createdAt: Date;
624
+ updatedAt: Date;
531
625
  name: string;
532
626
  mimeType: string;
533
627
  fileSize: number;
534
- createdAt: Date;
535
- updatedAt: Date;
536
628
  }[];
537
- meta: {};
629
+ meta: object;
538
630
  }>;
539
631
  getOne: _trpc_server0.TRPCQueryProcedure<{
540
632
  input: {
@@ -542,18 +634,13 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
542
634
  };
543
635
  output: {
544
636
  id: string;
637
+ createdAt: Date;
638
+ updatedAt: Date;
545
639
  name: string;
546
- content: _prisma_client_runtime_library0.Bytes;
547
640
  mimeType: string;
548
641
  fileSize: number;
549
- assetType: _prisma_client0.$Enums.AssetType;
550
- checksum: string;
551
- width: number | null;
552
- height: number | null;
553
- createdAt: Date;
554
- updatedAt: Date;
555
642
  } | null;
556
- meta: {};
643
+ meta: object;
557
644
  }>;
558
645
  create: _trpc_server0.TRPCMutationProcedure<{
559
646
  input: {
@@ -564,6 +651,8 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
564
651
  };
565
652
  output: {
566
653
  id: string;
654
+ createdAt: Date;
655
+ updatedAt: Date;
567
656
  name: string;
568
657
  content: _prisma_client_runtime_library0.Bytes;
569
658
  mimeType: string;
@@ -572,10 +661,8 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
572
661
  checksum: string;
573
662
  width: number | null;
574
663
  height: number | null;
575
- createdAt: Date;
576
- updatedAt: Date;
577
664
  };
578
- meta: {};
665
+ meta: object;
579
666
  }>;
580
667
  update: _trpc_server0.TRPCMutationProcedure<{
581
668
  input: {
@@ -587,6 +674,8 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
587
674
  };
588
675
  output: {
589
676
  id: string;
677
+ createdAt: Date;
678
+ updatedAt: Date;
590
679
  name: string;
591
680
  content: _prisma_client_runtime_library0.Bytes;
592
681
  mimeType: string;
@@ -595,10 +684,8 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
595
684
  checksum: string;
596
685
  width: number | null;
597
686
  height: number | null;
598
- createdAt: Date;
599
- updatedAt: Date;
600
687
  };
601
- meta: {};
688
+ meta: object;
602
689
  }>;
603
690
  delete: _trpc_server0.TRPCMutationProcedure<{
604
691
  input: {
@@ -606,6 +693,8 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
606
693
  };
607
694
  output: {
608
695
  id: string;
696
+ createdAt: Date;
697
+ updatedAt: Date;
609
698
  name: string;
610
699
  content: _prisma_client_runtime_library0.Bytes;
611
700
  mimeType: string;
@@ -614,17 +703,15 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
614
703
  checksum: string;
615
704
  width: number | null;
616
705
  height: number | null;
617
- createdAt: Date;
618
- updatedAt: Date;
619
706
  };
620
- meta: {};
707
+ meta: object;
621
708
  }>;
622
709
  deleteMany: _trpc_server0.TRPCMutationProcedure<{
623
710
  input: {
624
711
  ids: string[];
625
712
  };
626
713
  output: _prisma_client0.Prisma.BatchPayload;
627
- meta: {};
714
+ meta: object;
628
715
  }>;
629
716
  getContent: _trpc_server0.TRPCQueryProcedure<{
630
717
  input: {
@@ -633,13 +720,14 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
633
720
  output: {
634
721
  content: string;
635
722
  mimeType: string;
723
+ name: string;
636
724
  };
637
- meta: {};
725
+ meta: object;
638
726
  }>;
639
727
  }>>;
640
728
  screenshot: _trpc_server0.TRPCBuiltRouter<{
641
729
  ctx: EhTrpcContext;
642
- meta: {};
730
+ meta: object;
643
731
  errorShape: _trpc_server0.TRPCDefaultErrorShape;
644
732
  transformer: false;
645
733
  }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
@@ -647,15 +735,15 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
647
735
  input: void;
648
736
  output: {
649
737
  id: string;
738
+ createdAt: Date;
739
+ updatedAt: Date;
650
740
  name: string;
651
741
  mimeType: string;
652
742
  fileSize: number;
653
743
  width: number | null;
654
744
  height: number | null;
655
- createdAt: Date;
656
- updatedAt: Date;
657
745
  }[];
658
- meta: {};
746
+ meta: object;
659
747
  }>;
660
748
  getOne: _trpc_server0.TRPCQueryProcedure<{
661
749
  input: {
@@ -663,15 +751,15 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
663
751
  };
664
752
  output: {
665
753
  id: string;
754
+ createdAt: Date;
755
+ updatedAt: Date;
666
756
  name: string;
667
757
  mimeType: string;
668
758
  fileSize: number;
669
759
  width: number | null;
670
760
  height: number | null;
671
- createdAt: Date;
672
- updatedAt: Date;
673
761
  } | null;
674
- meta: {};
762
+ meta: object;
675
763
  }>;
676
764
  getByAppSlug: _trpc_server0.TRPCQueryProcedure<{
677
765
  input: {
@@ -679,15 +767,15 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
679
767
  };
680
768
  output: {
681
769
  id: string;
770
+ createdAt: Date;
771
+ updatedAt: Date;
682
772
  name: string;
683
773
  mimeType: string;
684
774
  fileSize: number;
685
775
  width: number | null;
686
776
  height: number | null;
687
- createdAt: Date;
688
- updatedAt: Date;
689
777
  }[];
690
- meta: {};
778
+ meta: object;
691
779
  }>;
692
780
  getFirstByAppSlug: _trpc_server0.TRPCQueryProcedure<{
693
781
  input: {
@@ -695,20 +783,20 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
695
783
  };
696
784
  output: {
697
785
  id: string;
786
+ createdAt: Date;
787
+ updatedAt: Date;
698
788
  name: string;
699
789
  mimeType: string;
700
790
  fileSize: number;
701
791
  width: number | null;
702
792
  height: number | null;
703
- createdAt: Date;
704
- updatedAt: Date;
705
793
  } | null;
706
- meta: {};
794
+ meta: object;
707
795
  }>;
708
796
  }>>;
709
797
  appCatalogAdmin: _trpc_server0.TRPCBuiltRouter<{
710
798
  ctx: EhTrpcContext;
711
- meta: {};
799
+ meta: object;
712
800
  errorShape: _trpc_server0.TRPCDefaultErrorShape;
713
801
  transformer: false;
714
802
  }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
@@ -721,11 +809,9 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
721
809
  description: string;
722
810
  slug: string;
723
811
  displayName: string;
724
- access: PrismaJson.AccessMethod;
812
+ access: PrismaJson.AccessMethod | null;
725
813
  teams: string[];
726
- roles: PrismaJson.AppRole | null;
727
- approverName: string | null;
728
- approverEmail: string | null;
814
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
729
815
  notes: string | null;
730
816
  tags: string[];
731
817
  appUrl: string | null;
@@ -733,7 +819,7 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
733
819
  iconName: string | null;
734
820
  screenshotIds: string[];
735
821
  }[];
736
- meta: {};
822
+ meta: object;
737
823
  }>;
738
824
  getById: _trpc_server0.TRPCQueryProcedure<{
739
825
  input: {
@@ -746,11 +832,9 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
746
832
  description: string;
747
833
  slug: string;
748
834
  displayName: string;
749
- access: PrismaJson.AccessMethod;
835
+ access: PrismaJson.AccessMethod | null;
750
836
  teams: string[];
751
- roles: PrismaJson.AppRole | null;
752
- approverName: string | null;
753
- approverEmail: string | null;
837
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
754
838
  notes: string | null;
755
839
  tags: string[];
756
840
  appUrl: string | null;
@@ -758,26 +842,59 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
758
842
  iconName: string | null;
759
843
  screenshotIds: string[];
760
844
  } | null;
761
- meta: {};
845
+ meta: object;
846
+ }>;
847
+ getBySlug: _trpc_server0.TRPCQueryProcedure<{
848
+ input: {
849
+ slug: string;
850
+ };
851
+ output: {
852
+ id: string;
853
+ createdAt: Date;
854
+ updatedAt: Date;
855
+ description: string;
856
+ slug: string;
857
+ displayName: string;
858
+ access: PrismaJson.AccessMethod | null;
859
+ teams: string[];
860
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
861
+ notes: string | null;
862
+ tags: string[];
863
+ appUrl: string | null;
864
+ links: PrismaJson.AppLink[] | null;
865
+ iconName: string | null;
866
+ screenshotIds: string[];
867
+ } | null;
868
+ meta: object;
762
869
  }>;
763
870
  create: _trpc_server0.TRPCMutationProcedure<{
764
871
  input: {
765
872
  slug: string;
766
873
  displayName: string;
767
874
  description: string;
768
- access: {
875
+ access?: {
769
876
  [x: string]: unknown;
770
- type: "bot" | "ticketing" | "email" | "self-service" | "documentation" | "manual";
771
- };
877
+ type: "email" | "bot" | "ticketing" | "self-service" | "documentation" | "manual";
878
+ } | undefined;
772
879
  teams?: string[] | undefined;
773
- roles?: {
774
- id: string;
775
- name: string;
776
- description?: string | undefined;
777
- }[] | undefined;
778
- approver?: {
779
- name: string;
780
- email: string;
880
+ approvalDetails?: {
881
+ approvalMethodId: string;
882
+ comments?: string | undefined;
883
+ requestPrompt?: string | undefined;
884
+ postApprovalInstructions?: string | undefined;
885
+ roles?: {
886
+ name: string;
887
+ description?: string | undefined;
888
+ }[] | undefined;
889
+ approvers?: {
890
+ displayName: string;
891
+ contact?: string | undefined;
892
+ }[] | undefined;
893
+ urls?: {
894
+ url: string;
895
+ label?: string | undefined;
896
+ }[] | undefined;
897
+ whoToReachOut?: string | undefined;
781
898
  } | undefined;
782
899
  notes?: string | undefined;
783
900
  tags?: string[] | undefined;
@@ -796,11 +913,9 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
796
913
  description: string;
797
914
  slug: string;
798
915
  displayName: string;
799
- access: PrismaJson.AccessMethod;
916
+ access: PrismaJson.AccessMethod | null;
800
917
  teams: string[];
801
- roles: PrismaJson.AppRole | null;
802
- approverName: string | null;
803
- approverEmail: string | null;
918
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
804
919
  notes: string | null;
805
920
  tags: string[];
806
921
  appUrl: string | null;
@@ -808,7 +923,7 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
808
923
  iconName: string | null;
809
924
  screenshotIds: string[];
810
925
  };
811
- meta: {};
926
+ meta: object;
812
927
  }>;
813
928
  update: _trpc_server0.TRPCMutationProcedure<{
814
929
  input: {
@@ -818,17 +933,27 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
818
933
  description?: string | undefined;
819
934
  access?: {
820
935
  [x: string]: unknown;
821
- type: "bot" | "ticketing" | "email" | "self-service" | "documentation" | "manual";
936
+ type: "email" | "bot" | "ticketing" | "self-service" | "documentation" | "manual";
822
937
  } | undefined;
823
938
  teams?: string[] | undefined;
824
- roles?: {
825
- id: string;
826
- name: string;
827
- description?: string | undefined;
828
- }[] | undefined;
829
- approver?: {
830
- name: string;
831
- email: string;
939
+ approvalDetails?: {
940
+ approvalMethodId: string;
941
+ comments?: string | undefined;
942
+ requestPrompt?: string | undefined;
943
+ postApprovalInstructions?: string | undefined;
944
+ roles?: {
945
+ name: string;
946
+ description?: string | undefined;
947
+ }[] | undefined;
948
+ approvers?: {
949
+ displayName: string;
950
+ contact?: string | undefined;
951
+ }[] | undefined;
952
+ urls?: {
953
+ url: string;
954
+ label?: string | undefined;
955
+ }[] | undefined;
956
+ whoToReachOut?: string | undefined;
832
957
  } | undefined;
833
958
  notes?: string | undefined;
834
959
  tags?: string[] | undefined;
@@ -847,11 +972,9 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
847
972
  description: string;
848
973
  slug: string;
849
974
  displayName: string;
850
- access: PrismaJson.AccessMethod;
975
+ access: PrismaJson.AccessMethod | null;
851
976
  teams: string[];
852
- roles: PrismaJson.AppRole | null;
853
- approverName: string | null;
854
- approverEmail: string | null;
977
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
855
978
  notes: string | null;
856
979
  tags: string[];
857
980
  appUrl: string | null;
@@ -859,7 +982,31 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
859
982
  iconName: string | null;
860
983
  screenshotIds: string[];
861
984
  };
862
- meta: {};
985
+ meta: object;
986
+ }>;
987
+ updateScreenshots: _trpc_server0.TRPCMutationProcedure<{
988
+ input: {
989
+ id: string;
990
+ screenshotIds: string[];
991
+ };
992
+ output: {
993
+ id: string;
994
+ createdAt: Date;
995
+ updatedAt: Date;
996
+ description: string;
997
+ slug: string;
998
+ displayName: string;
999
+ access: PrismaJson.AccessMethod | null;
1000
+ teams: string[];
1001
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1002
+ notes: string | null;
1003
+ tags: string[];
1004
+ appUrl: string | null;
1005
+ links: PrismaJson.AppLink[] | null;
1006
+ iconName: string | null;
1007
+ screenshotIds: string[];
1008
+ };
1009
+ meta: object;
863
1010
  }>;
864
1011
  delete: _trpc_server0.TRPCMutationProcedure<{
865
1012
  input: {
@@ -872,11 +1019,9 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
872
1019
  description: string;
873
1020
  slug: string;
874
1021
  displayName: string;
875
- access: PrismaJson.AccessMethod;
1022
+ access: PrismaJson.AccessMethod | null;
876
1023
  teams: string[];
877
- roles: PrismaJson.AppRole | null;
878
- approverName: string | null;
879
- approverEmail: string | null;
1024
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
880
1025
  notes: string | null;
881
1026
  tags: string[];
882
1027
  appUrl: string | null;
@@ -884,7 +1029,75 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
884
1029
  iconName: string | null;
885
1030
  screenshotIds: string[];
886
1031
  };
887
- meta: {};
1032
+ meta: object;
1033
+ }>;
1034
+ }>>;
1035
+ approvalMethod: _trpc_server0.TRPCBuiltRouter<{
1036
+ ctx: EhTrpcContext;
1037
+ meta: object;
1038
+ errorShape: _trpc_server0.TRPCDefaultErrorShape;
1039
+ transformer: false;
1040
+ }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
1041
+ list: _trpc_server0.TRPCQueryProcedure<{
1042
+ input: void;
1043
+ output: ApprovalMethod[];
1044
+ meta: object;
1045
+ }>;
1046
+ getById: _trpc_server0.TRPCQueryProcedure<{
1047
+ input: {
1048
+ id: string;
1049
+ };
1050
+ output: ApprovalMethod | null;
1051
+ meta: object;
1052
+ }>;
1053
+ create: _trpc_server0.TRPCMutationProcedure<{
1054
+ input: {
1055
+ type: "custom" | "service" | "personTeam";
1056
+ displayName: string;
1057
+ config?: Record<string, never> | {
1058
+ url?: string | undefined;
1059
+ icon?: string | undefined;
1060
+ } | {
1061
+ reachOutContacts?: {
1062
+ displayName: string;
1063
+ contact: string;
1064
+ }[] | undefined;
1065
+ } | undefined;
1066
+ };
1067
+ output: ApprovalMethod;
1068
+ meta: object;
1069
+ }>;
1070
+ update: _trpc_server0.TRPCMutationProcedure<{
1071
+ input: {
1072
+ id: string;
1073
+ type?: "custom" | "service" | "personTeam" | undefined;
1074
+ displayName?: string | undefined;
1075
+ config?: Record<string, never> | {
1076
+ url?: string | undefined;
1077
+ icon?: string | undefined;
1078
+ } | {
1079
+ reachOutContacts?: {
1080
+ displayName: string;
1081
+ contact: string;
1082
+ }[] | undefined;
1083
+ } | undefined;
1084
+ };
1085
+ output: ApprovalMethod;
1086
+ meta: object;
1087
+ }>;
1088
+ delete: _trpc_server0.TRPCMutationProcedure<{
1089
+ input: {
1090
+ id: string;
1091
+ };
1092
+ output: ApprovalMethod;
1093
+ meta: object;
1094
+ }>;
1095
+ listByType: _trpc_server0.TRPCQueryProcedure<{
1096
+ input: {
1097
+ type: "custom" | "service" | "personTeam";
1098
+ };
1099
+ output: ApprovalMethod[];
1100
+ meta: object;
888
1101
  }>;
889
1102
  }>>;
890
1103
  auth: _trpc_server0.TRPCBuiltRouter<{
@@ -896,7 +1109,15 @@ declare function createTrpcRouter(auth?: BetterAuth): _trpc_server0.TRPCBuiltRou
896
1109
  getSession: _trpc_server0.TRPCQueryProcedure<{
897
1110
  input: void;
898
1111
  output: {
899
- user: {} | null;
1112
+ user: {
1113
+ id: string;
1114
+ createdAt: Date;
1115
+ updatedAt: Date;
1116
+ email: string;
1117
+ emailVerified: boolean;
1118
+ name: string;
1119
+ image?: string | null | undefined;
1120
+ } | null;
900
1121
  isAuthenticated: boolean;
901
1122
  };
902
1123
  meta: {};
@@ -951,7 +1172,15 @@ declare function createAuthRouter(t: TRPCRootObject<EhTrpcContext, {}, {}>, auth
951
1172
  getSession: _trpc_server0.TRPCQueryProcedure<{
952
1173
  input: void;
953
1174
  output: {
954
- user: {} | null;
1175
+ user: {
1176
+ id: string;
1177
+ createdAt: Date;
1178
+ updatedAt: Date;
1179
+ email: string;
1180
+ emailVerified: boolean;
1181
+ name: string;
1182
+ image?: string | null | undefined;
1183
+ } | null;
955
1184
  isAuthenticated: boolean;
956
1185
  };
957
1186
  meta: {};
@@ -1164,6 +1393,8 @@ interface UpsertIconInput {
1164
1393
  */
1165
1394
  declare function upsertIcon(input: UpsertIconInput): Promise<{
1166
1395
  id: string;
1396
+ createdAt: Date;
1397
+ updatedAt: Date;
1167
1398
  name: string;
1168
1399
  content: _prisma_client_runtime_library0.Bytes;
1169
1400
  mimeType: string;
@@ -1172,8 +1403,6 @@ declare function upsertIcon(input: UpsertIconInput): Promise<{
1172
1403
  checksum: string;
1173
1404
  width: number | null;
1174
1405
  height: number | null;
1175
- createdAt: Date;
1176
- updatedAt: Date;
1177
1406
  }>;
1178
1407
  /**
1179
1408
  * Upsert multiple icons to the database.
@@ -1181,6 +1410,8 @@ declare function upsertIcon(input: UpsertIconInput): Promise<{
1181
1410
  */
1182
1411
  declare function upsertIcons(icons: Array<UpsertIconInput>): Promise<{
1183
1412
  id: string;
1413
+ createdAt: Date;
1414
+ updatedAt: Date;
1184
1415
  name: string;
1185
1416
  content: _prisma_client_runtime_library0.Bytes;
1186
1417
  mimeType: string;
@@ -1189,8 +1420,6 @@ declare function upsertIcons(icons: Array<UpsertIconInput>): Promise<{
1189
1420
  checksum: string;
1190
1421
  width: number | null;
1191
1422
  height: number | null;
1192
- createdAt: Date;
1193
- updatedAt: Date;
1194
1423
  }[]>;
1195
1424
  /**
1196
1425
  * Get an asset (icon or screenshot) by name from the database.
@@ -1238,9 +1467,9 @@ interface ScreenshotRestControllerConfig {
1238
1467
  declare function registerScreenshotRestController(router: Router, config: ScreenshotRestControllerConfig): void;
1239
1468
  //#endregion
1240
1469
  //#region src/modules/assets/screenshotRouter.d.ts
1241
- declare function createScreenshotRouter(t: TRPCRootObject<EhTrpcContext, {}, {}>): _trpc_server0.TRPCBuiltRouter<{
1470
+ declare function createScreenshotRouter(): _trpc_server0.TRPCBuiltRouter<{
1242
1471
  ctx: EhTrpcContext;
1243
- meta: {};
1472
+ meta: object;
1244
1473
  errorShape: _trpc_server0.TRPCDefaultErrorShape;
1245
1474
  transformer: false;
1246
1475
  }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
@@ -1248,15 +1477,15 @@ declare function createScreenshotRouter(t: TRPCRootObject<EhTrpcContext, {}, {}>
1248
1477
  input: void;
1249
1478
  output: {
1250
1479
  id: string;
1480
+ createdAt: Date;
1481
+ updatedAt: Date;
1251
1482
  name: string;
1252
1483
  mimeType: string;
1253
1484
  fileSize: number;
1254
1485
  width: number | null;
1255
1486
  height: number | null;
1256
- createdAt: Date;
1257
- updatedAt: Date;
1258
1487
  }[];
1259
- meta: {};
1488
+ meta: object;
1260
1489
  }>;
1261
1490
  getOne: _trpc_server0.TRPCQueryProcedure<{
1262
1491
  input: {
@@ -1264,15 +1493,15 @@ declare function createScreenshotRouter(t: TRPCRootObject<EhTrpcContext, {}, {}>
1264
1493
  };
1265
1494
  output: {
1266
1495
  id: string;
1496
+ createdAt: Date;
1497
+ updatedAt: Date;
1267
1498
  name: string;
1268
1499
  mimeType: string;
1269
1500
  fileSize: number;
1270
1501
  width: number | null;
1271
1502
  height: number | null;
1272
- createdAt: Date;
1273
- updatedAt: Date;
1274
1503
  } | null;
1275
- meta: {};
1504
+ meta: object;
1276
1505
  }>;
1277
1506
  getByAppSlug: _trpc_server0.TRPCQueryProcedure<{
1278
1507
  input: {
@@ -1280,15 +1509,15 @@ declare function createScreenshotRouter(t: TRPCRootObject<EhTrpcContext, {}, {}>
1280
1509
  };
1281
1510
  output: {
1282
1511
  id: string;
1512
+ createdAt: Date;
1513
+ updatedAt: Date;
1283
1514
  name: string;
1284
1515
  mimeType: string;
1285
1516
  fileSize: number;
1286
1517
  width: number | null;
1287
1518
  height: number | null;
1288
- createdAt: Date;
1289
- updatedAt: Date;
1290
1519
  }[];
1291
- meta: {};
1520
+ meta: object;
1292
1521
  }>;
1293
1522
  getFirstByAppSlug: _trpc_server0.TRPCQueryProcedure<{
1294
1523
  input: {
@@ -1296,15 +1525,15 @@ declare function createScreenshotRouter(t: TRPCRootObject<EhTrpcContext, {}, {}>
1296
1525
  };
1297
1526
  output: {
1298
1527
  id: string;
1528
+ createdAt: Date;
1529
+ updatedAt: Date;
1299
1530
  name: string;
1300
1531
  mimeType: string;
1301
1532
  fileSize: number;
1302
1533
  width: number | null;
1303
1534
  height: number | null;
1304
- createdAt: Date;
1305
- updatedAt: Date;
1306
1535
  } | null;
1307
- meta: {};
1536
+ meta: object;
1308
1537
  }>;
1309
1538
  }>>;
1310
1539
  //#endregion
@@ -1335,9 +1564,9 @@ declare function syncAssets(config: SyncAssetsConfig): Promise<{
1335
1564
  }>;
1336
1565
  //#endregion
1337
1566
  //#region src/modules/appCatalogAdmin/appCatalogAdminRouter.d.ts
1338
- declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}, {}>): _trpc_server0.TRPCBuiltRouter<{
1567
+ declare function createAppCatalogAdminRouter(): _trpc_server0.TRPCBuiltRouter<{
1339
1568
  ctx: EhTrpcContext;
1340
- meta: {};
1569
+ meta: object;
1341
1570
  errorShape: _trpc_server0.TRPCDefaultErrorShape;
1342
1571
  transformer: false;
1343
1572
  }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
@@ -1350,11 +1579,9 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1350
1579
  description: string;
1351
1580
  slug: string;
1352
1581
  displayName: string;
1353
- access: PrismaJson.AccessMethod;
1582
+ access: PrismaJson.AccessMethod | null;
1354
1583
  teams: string[];
1355
- roles: PrismaJson.AppRole | null;
1356
- approverName: string | null;
1357
- approverEmail: string | null;
1584
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1358
1585
  notes: string | null;
1359
1586
  tags: string[];
1360
1587
  appUrl: string | null;
@@ -1362,7 +1589,7 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1362
1589
  iconName: string | null;
1363
1590
  screenshotIds: string[];
1364
1591
  }[];
1365
- meta: {};
1592
+ meta: object;
1366
1593
  }>;
1367
1594
  getById: _trpc_server0.TRPCQueryProcedure<{
1368
1595
  input: {
@@ -1375,11 +1602,9 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1375
1602
  description: string;
1376
1603
  slug: string;
1377
1604
  displayName: string;
1378
- access: PrismaJson.AccessMethod;
1605
+ access: PrismaJson.AccessMethod | null;
1379
1606
  teams: string[];
1380
- roles: PrismaJson.AppRole | null;
1381
- approverName: string | null;
1382
- approverEmail: string | null;
1607
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1383
1608
  notes: string | null;
1384
1609
  tags: string[];
1385
1610
  appUrl: string | null;
@@ -1387,26 +1612,59 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1387
1612
  iconName: string | null;
1388
1613
  screenshotIds: string[];
1389
1614
  } | null;
1390
- meta: {};
1615
+ meta: object;
1616
+ }>;
1617
+ getBySlug: _trpc_server0.TRPCQueryProcedure<{
1618
+ input: {
1619
+ slug: string;
1620
+ };
1621
+ output: {
1622
+ id: string;
1623
+ createdAt: Date;
1624
+ updatedAt: Date;
1625
+ description: string;
1626
+ slug: string;
1627
+ displayName: string;
1628
+ access: PrismaJson.AccessMethod | null;
1629
+ teams: string[];
1630
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1631
+ notes: string | null;
1632
+ tags: string[];
1633
+ appUrl: string | null;
1634
+ links: PrismaJson.AppLink[] | null;
1635
+ iconName: string | null;
1636
+ screenshotIds: string[];
1637
+ } | null;
1638
+ meta: object;
1391
1639
  }>;
1392
1640
  create: _trpc_server0.TRPCMutationProcedure<{
1393
1641
  input: {
1394
1642
  slug: string;
1395
1643
  displayName: string;
1396
1644
  description: string;
1397
- access: {
1645
+ access?: {
1398
1646
  [x: string]: unknown;
1399
- type: "bot" | "ticketing" | "email" | "self-service" | "documentation" | "manual";
1400
- };
1647
+ type: "email" | "bot" | "ticketing" | "self-service" | "documentation" | "manual";
1648
+ } | undefined;
1401
1649
  teams?: string[] | undefined;
1402
- roles?: {
1403
- id: string;
1404
- name: string;
1405
- description?: string | undefined;
1406
- }[] | undefined;
1407
- approver?: {
1408
- name: string;
1409
- email: string;
1650
+ approvalDetails?: {
1651
+ approvalMethodId: string;
1652
+ comments?: string | undefined;
1653
+ requestPrompt?: string | undefined;
1654
+ postApprovalInstructions?: string | undefined;
1655
+ roles?: {
1656
+ name: string;
1657
+ description?: string | undefined;
1658
+ }[] | undefined;
1659
+ approvers?: {
1660
+ displayName: string;
1661
+ contact?: string | undefined;
1662
+ }[] | undefined;
1663
+ urls?: {
1664
+ url: string;
1665
+ label?: string | undefined;
1666
+ }[] | undefined;
1667
+ whoToReachOut?: string | undefined;
1410
1668
  } | undefined;
1411
1669
  notes?: string | undefined;
1412
1670
  tags?: string[] | undefined;
@@ -1425,11 +1683,9 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1425
1683
  description: string;
1426
1684
  slug: string;
1427
1685
  displayName: string;
1428
- access: PrismaJson.AccessMethod;
1686
+ access: PrismaJson.AccessMethod | null;
1429
1687
  teams: string[];
1430
- roles: PrismaJson.AppRole | null;
1431
- approverName: string | null;
1432
- approverEmail: string | null;
1688
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1433
1689
  notes: string | null;
1434
1690
  tags: string[];
1435
1691
  appUrl: string | null;
@@ -1437,7 +1693,7 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1437
1693
  iconName: string | null;
1438
1694
  screenshotIds: string[];
1439
1695
  };
1440
- meta: {};
1696
+ meta: object;
1441
1697
  }>;
1442
1698
  update: _trpc_server0.TRPCMutationProcedure<{
1443
1699
  input: {
@@ -1447,17 +1703,27 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1447
1703
  description?: string | undefined;
1448
1704
  access?: {
1449
1705
  [x: string]: unknown;
1450
- type: "bot" | "ticketing" | "email" | "self-service" | "documentation" | "manual";
1706
+ type: "email" | "bot" | "ticketing" | "self-service" | "documentation" | "manual";
1451
1707
  } | undefined;
1452
1708
  teams?: string[] | undefined;
1453
- roles?: {
1454
- id: string;
1455
- name: string;
1456
- description?: string | undefined;
1457
- }[] | undefined;
1458
- approver?: {
1459
- name: string;
1460
- email: string;
1709
+ approvalDetails?: {
1710
+ approvalMethodId: string;
1711
+ comments?: string | undefined;
1712
+ requestPrompt?: string | undefined;
1713
+ postApprovalInstructions?: string | undefined;
1714
+ roles?: {
1715
+ name: string;
1716
+ description?: string | undefined;
1717
+ }[] | undefined;
1718
+ approvers?: {
1719
+ displayName: string;
1720
+ contact?: string | undefined;
1721
+ }[] | undefined;
1722
+ urls?: {
1723
+ url: string;
1724
+ label?: string | undefined;
1725
+ }[] | undefined;
1726
+ whoToReachOut?: string | undefined;
1461
1727
  } | undefined;
1462
1728
  notes?: string | undefined;
1463
1729
  tags?: string[] | undefined;
@@ -1476,11 +1742,9 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1476
1742
  description: string;
1477
1743
  slug: string;
1478
1744
  displayName: string;
1479
- access: PrismaJson.AccessMethod;
1745
+ access: PrismaJson.AccessMethod | null;
1480
1746
  teams: string[];
1481
- roles: PrismaJson.AppRole | null;
1482
- approverName: string | null;
1483
- approverEmail: string | null;
1747
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1484
1748
  notes: string | null;
1485
1749
  tags: string[];
1486
1750
  appUrl: string | null;
@@ -1488,7 +1752,31 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1488
1752
  iconName: string | null;
1489
1753
  screenshotIds: string[];
1490
1754
  };
1491
- meta: {};
1755
+ meta: object;
1756
+ }>;
1757
+ updateScreenshots: _trpc_server0.TRPCMutationProcedure<{
1758
+ input: {
1759
+ id: string;
1760
+ screenshotIds: string[];
1761
+ };
1762
+ output: {
1763
+ id: string;
1764
+ createdAt: Date;
1765
+ updatedAt: Date;
1766
+ description: string;
1767
+ slug: string;
1768
+ displayName: string;
1769
+ access: PrismaJson.AccessMethod | null;
1770
+ teams: string[];
1771
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1772
+ notes: string | null;
1773
+ tags: string[];
1774
+ appUrl: string | null;
1775
+ links: PrismaJson.AppLink[] | null;
1776
+ iconName: string | null;
1777
+ screenshotIds: string[];
1778
+ };
1779
+ meta: object;
1492
1780
  }>;
1493
1781
  delete: _trpc_server0.TRPCMutationProcedure<{
1494
1782
  input: {
@@ -1501,11 +1789,9 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1501
1789
  description: string;
1502
1790
  slug: string;
1503
1791
  displayName: string;
1504
- access: PrismaJson.AccessMethod;
1792
+ access: PrismaJson.AccessMethod | null;
1505
1793
  teams: string[];
1506
- roles: PrismaJson.AppRole | null;
1507
- approverName: string | null;
1508
- approverEmail: string | null;
1794
+ approvalDetails: PrismaJson.AppApprovalDetails | null;
1509
1795
  notes: string | null;
1510
1796
  tags: string[];
1511
1797
  appUrl: string | null;
@@ -1513,10 +1799,94 @@ declare function createAppCatalogAdminRouter(t: TRPCRootObject<EhTrpcContext, {}
1513
1799
  iconName: string | null;
1514
1800
  screenshotIds: string[];
1515
1801
  };
1516
- meta: {};
1802
+ meta: object;
1803
+ }>;
1804
+ }>>;
1805
+ //#endregion
1806
+ //#region src/modules/approvalMethod/approvalMethodRouter.d.ts
1807
+ declare function createApprovalMethodRouter(): _trpc_server0.TRPCBuiltRouter<{
1808
+ ctx: EhTrpcContext;
1809
+ meta: object;
1810
+ errorShape: _trpc_server0.TRPCDefaultErrorShape;
1811
+ transformer: false;
1812
+ }, _trpc_server0.TRPCDecorateCreateRouterOptions<{
1813
+ list: _trpc_server0.TRPCQueryProcedure<{
1814
+ input: void;
1815
+ output: ApprovalMethod[];
1816
+ meta: object;
1817
+ }>;
1818
+ getById: _trpc_server0.TRPCQueryProcedure<{
1819
+ input: {
1820
+ id: string;
1821
+ };
1822
+ output: ApprovalMethod | null;
1823
+ meta: object;
1824
+ }>;
1825
+ create: _trpc_server0.TRPCMutationProcedure<{
1826
+ input: {
1827
+ type: "custom" | "service" | "personTeam";
1828
+ displayName: string;
1829
+ config?: Record<string, never> | {
1830
+ url?: string | undefined;
1831
+ icon?: string | undefined;
1832
+ } | {
1833
+ reachOutContacts?: {
1834
+ displayName: string;
1835
+ contact: string;
1836
+ }[] | undefined;
1837
+ } | undefined;
1838
+ };
1839
+ output: ApprovalMethod;
1840
+ meta: object;
1841
+ }>;
1842
+ update: _trpc_server0.TRPCMutationProcedure<{
1843
+ input: {
1844
+ id: string;
1845
+ type?: "custom" | "service" | "personTeam" | undefined;
1846
+ displayName?: string | undefined;
1847
+ config?: Record<string, never> | {
1848
+ url?: string | undefined;
1849
+ icon?: string | undefined;
1850
+ } | {
1851
+ reachOutContacts?: {
1852
+ displayName: string;
1853
+ contact: string;
1854
+ }[] | undefined;
1855
+ } | undefined;
1856
+ };
1857
+ output: ApprovalMethod;
1858
+ meta: object;
1859
+ }>;
1860
+ delete: _trpc_server0.TRPCMutationProcedure<{
1861
+ input: {
1862
+ id: string;
1863
+ };
1864
+ output: ApprovalMethod;
1865
+ meta: object;
1866
+ }>;
1867
+ listByType: _trpc_server0.TRPCQueryProcedure<{
1868
+ input: {
1869
+ type: "custom" | "service" | "personTeam";
1870
+ };
1871
+ output: ApprovalMethod[];
1872
+ meta: object;
1517
1873
  }>;
1518
1874
  }>>;
1519
1875
  //#endregion
1876
+ //#region src/modules/approvalMethod/syncApprovalMethods.d.ts
1877
+ interface ApprovalMethodSyncInput {
1878
+ type: 'service' | 'personTeam' | 'custom';
1879
+ displayName: string;
1880
+ config?: Record<string, unknown>;
1881
+ }
1882
+ /**
1883
+ * Syncs approval methods to the database using upsert logic based on type + displayName.
1884
+ *
1885
+ * @param prisma - The PrismaClient instance from the backend-core database
1886
+ * @param methods - Array of approval methods to sync
1887
+ */
1888
+ declare function syncApprovalMethods(prisma: PrismaClient, methods: Array<ApprovalMethodSyncInput>): Promise<void>;
1889
+ //#endregion
1520
1890
  //#region src/db/client.d.ts
1521
1891
  /**
1522
1892
  * Gets the internal Prisma client instance.
@@ -1600,6 +1970,20 @@ type EhDatabaseConfig = {
1600
1970
  password: string;
1601
1971
  schema?: string;
1602
1972
  };
1973
+ /**
1974
+ * Mock user configuration for development/testing.
1975
+ * When provided, bypasses authentication and injects this user into all requests.
1976
+ */
1977
+ interface EhDevMockUser {
1978
+ /** User ID */
1979
+ id: string;
1980
+ /** User email */
1981
+ email: string;
1982
+ /** User display name */
1983
+ name: string;
1984
+ /** User groups (for authorization) */
1985
+ groups: Array<string>;
1986
+ }
1603
1987
  /**
1604
1988
  * Auth configuration for Better Auth integration.
1605
1989
  */
@@ -1618,6 +2002,8 @@ interface EhAuthConfig {
1618
2002
  sessionUpdateAge?: number;
1619
2003
  /** Application name shown in auth UI */
1620
2004
  appName?: string;
2005
+ /** Development mock user - bypasses auth when provided */
2006
+ devMockUser?: EhDevMockUser;
1621
2007
  }
1622
2008
  /**
1623
2009
  * Admin chat (AI) configuration.
@@ -1743,6 +2129,7 @@ interface MiddlewareContext {
1743
2129
  createContext: () => Promise<{
1744
2130
  companySpecificBackend: EhBackendCompanySpecificBackend;
1745
2131
  }>;
2132
+ authConfig: EhAuthConfig;
1746
2133
  }
1747
2134
  //#endregion
1748
2135
  //#region src/middleware/createEhMiddleware.d.ts
@@ -1766,5 +2153,5 @@ declare class EhDatabaseManager {
1766
2153
  disconnect(): Promise<void>;
1767
2154
  }
1768
2155
  //#endregion
1769
- export { AccessMethod, type AdminChatHandlerOptions, AppCatalogData, AppCategory, type AppForCatalog, AppRole, Approver, type AssetRestControllerConfig, type AuthConfig, type AuthRouter, AvailabilityMatrixData, AvailabilityVariant, type BetterAuth, BootstrapConfigData, BotAccess, BotProvider, DEFAULT_ADMIN_SYSTEM_PROMPT, type DatabaseClient, DisplayNamable, DocumentationAccess, type EhAdminChatConfig, EhAppCatalogData, EhAppCatalogDto, EhAppCatalogGroupDto, EhAppCatalogPageDto, EhAppIndexed, EhAppPageIndexed, EhAppUiIndexed, EhAppsMeta, type EhAuthConfig, EhBackendAppDto, EhBackendAppInput, EhBackendAppUIBaseInput, EhBackendAppUIInput, EhBackendCompanySpecificBackend, EhBackendCredentialInput, EhBackendDataFreshness, EhBackendDataSourceInput, EhBackendDataSourceInputCommon, EhBackendDataSourceInputDb, EhBackendDataSourceInputKafka, EhBackendDataVersion, EhBackendDeployableInput, EhBackendDeployment, EhBackendDeploymentInput, EhBackendEnvironmentInput, EhBackendPageInput, type EhBackendProvider, EhBackendTagDescriptionDataIndexed, EhBackendTagFixedTagValue, EhBackendTagsDescriptionDataIndexed, EhBackendUiDefaultsInput, EhBackendVersionsRequestParams, EhBackendVersionsReturn, EhContextIndexed, type EhDatabaseConfig, EhDatabaseManager, EhEnvIndexed, type EhFeatureToggles, type EhLifecycleHooks, EhMetaDictionary, type EhMiddlewareOptions, type EhMiddlewareResult, EhResourceIndexed, type EhStaticControllerContract, type EhTrpcContext, type EhTrpcContextOptions, EmailAccess, EnvBaseInfo, EnvInfoExtended, EnvSlug, type IconRestControllerConfig, JumpResourceSlug, LateResolvableParam, type MakeTFromPrismaModel, ManualAccess, type MiddlewareContext, type ObjectKeys, RenameRule, RenameRuleParams, ResourceJump, ResourceJumpGroup, ResourceJumpMetaInfo, ResourceJumpsData, ResourceJumpsExtendedData, type ScalarFilter, type ScalarKeys, type ScreenshotRestControllerConfig, SelfServiceAccess, SlugAndDisplayable, Sluggable, type SyncAppCatalogResult, type SyncAssetsConfig, TABLE_SYNC_MAGAZINE, type TRPCRouter, type TableSyncMagazine, type TableSyncMagazineModelNameKey, type TableSyncParamsPrisma, Tag, TicketingAccess, TicketingProvider, type UpsertIconInput, User, type UserWithGroups, connectDb, createAdminChatHandler, createAppCatalogAdminRouter, createAuth, createAuthRouter, createDatabaseTools, createEhMiddleware, createEhTrpcContext, createPrismaDatabaseClient, createScreenshotRouter, createTrpcRouter, disconnectDb, getAdminGroupsFromEnv, getAssetByName, getAuthPluginsFromEnv, getAuthProvidersFromEnv, getDbClient, getUserGroups, isAdmin, isMemberOfAllGroups, isMemberOfAnyGroup, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, requireAdmin, requireGroups, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, tool, upsertIcon, upsertIcons, validateAuthConfig };
2156
+ export { AccessMethod, type AdminChatHandlerOptions, AppApprovalDetails, AppCatalogData, AppCategory, type AppForCatalog, AppRole, ApprovalMethod, ApprovalMethodConfig, type ApprovalMethodSyncInput, ApprovalMethodType, ApprovalUrl, Approver, ApproverContact, type AssetRestControllerConfig, type AuthConfig, type AuthRouter, AvailabilityMatrixData, AvailabilityVariant, BaseApprover, type BetterAuth, BootstrapConfigData, BotAccess, BotApprover, CreateApprovalMethodInput, CustomConfig, DEFAULT_ADMIN_SYSTEM_PROMPT, type DatabaseClient, DisplayNamable, DocumentationAccess, type EhAdminChatConfig, EhAppCatalogData, EhAppCatalogDto, EhAppCatalogGroupDto, EhAppCatalogPageDto, EhAppIndexed, EhAppPageIndexed, EhAppUiIndexed, EhAppsMeta, type EhAuthConfig, EhBackendAppDto, EhBackendAppInput, EhBackendAppUIBaseInput, EhBackendAppUIInput, EhBackendCompanySpecificBackend, EhBackendCredentialInput, EhBackendDataFreshness, EhBackendDataSourceInput, EhBackendDataSourceInputCommon, EhBackendDataSourceInputDb, EhBackendDataSourceInputKafka, EhBackendDataVersion, EhBackendDeployableInput, EhBackendDeployment, EhBackendDeploymentInput, EhBackendEnvironmentInput, EhBackendPageInput, type EhBackendProvider, EhBackendTagDescriptionDataIndexed, EhBackendTagFixedTagValue, EhBackendTagsDescriptionDataIndexed, EhBackendUiDefaultsInput, EhBackendVersionsRequestParams, EhBackendVersionsReturn, EhContextIndexed, type EhDatabaseConfig, EhDatabaseManager, EhEnvIndexed, type EhFeatureToggles, type EhLifecycleHooks, EhMetaDictionary, type EhMiddlewareOptions, type EhMiddlewareResult, EhResourceIndexed, type EhStaticControllerContract, type EhTrpcContext, type EhTrpcContextOptions, EmailAccess, EnvBaseInfo, EnvInfoExtended, EnvSlug, type IconRestControllerConfig, JumpResourceSlug, LateResolvableParam, type MakeTFromPrismaModel, ManualAccess, type MiddlewareContext, type ObjectKeys, PersonApprover, PersonTeamConfig, ReachOutContact, RenameRule, RenameRuleParams, ResourceJump, ResourceJumpGroup, ResourceJumpMetaInfo, ResourceJumpsData, ResourceJumpsExtendedData, type ScalarFilter, type ScalarKeys, type ScreenshotRestControllerConfig, SelfServiceAccess, ServiceConfig, SlugAndDisplayable, Sluggable, type SyncAppCatalogResult, type SyncAssetsConfig, TABLE_SYNC_MAGAZINE, type TRPCRouter, type TableSyncMagazine, type TableSyncMagazineModelNameKey, type TableSyncParamsPrisma, Tag, TicketApprover, TicketingAccess, UpdateApprovalMethodInput, type UpsertIconInput, User, type UserWithGroups, connectDb, createAdminChatHandler, createAppCatalogAdminRouter, createApprovalMethodRouter, createAuth, createAuthRouter, createDatabaseTools, createEhMiddleware, createEhTrpcContext, createPrismaDatabaseClient, createScreenshotRouter, createTrpcRouter, disconnectDb, getAdminGroupsFromEnv, getAssetByName, getAuthPluginsFromEnv, getAuthProvidersFromEnv, getDbClient, getUserGroups, isAdmin, isMemberOfAllGroups, isMemberOfAnyGroup, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, requireAdmin, requireGroups, setDbClient, staticControllerContract, syncAppCatalog, syncApprovalMethods, syncAssets, tableSyncPrisma, tool, upsertIcon, upsertIcons, validateAuthConfig };
1770
2157
  //# sourceMappingURL=index.d.ts.map