@breadstone/archipel-mcp 0.0.41 → 0.0.43

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.
Files changed (73) hide show
  1. package/data/guides/implementing-ports.md +2 -0
  2. package/data/guides/payments-and-feature-gating.md +76 -45
  3. package/data/packages/platform-bootstrap/api/Function.useExpressServer.md +1 -1
  4. package/data/packages/platform-bootstrap/api/Interface.IExpressServerStepOptions.md +4 -4
  5. package/data/packages/platform-core/api/Class.ProblemDetailResponse.md +8 -8
  6. package/data/packages/platform-database/api/Class.DatabaseHealthIndicator.md +4 -4
  7. package/data/packages/platform-database/api/Class.DatabaseModule.md +3 -3
  8. package/data/packages/platform-database/api/Class.DatabaseService.md +12 -11
  9. package/data/packages/platform-database/api/Class.PrismaService.md +6 -5
  10. package/data/packages/platform-database/api/Class.RepositoryBase.md +23 -23
  11. package/data/packages/platform-database/api/Class.RepositoryBase2.md +7 -7
  12. package/data/packages/platform-database/api/Class.RepositoryExceptionFilter.md +2 -2
  13. package/data/packages/platform-database/api/Function.aggregate.md +1 -1
  14. package/data/packages/platform-database/api/Function.aggregateRaw.md +1 -1
  15. package/data/packages/platform-database/api/Function.count.md +1 -1
  16. package/data/packages/platform-database/api/Function.create.md +1 -1
  17. package/data/packages/platform-database/api/Function.createMany.md +1 -1
  18. package/data/packages/platform-database/api/Function.createManyAndReturn.md +1 -1
  19. package/data/packages/platform-database/api/Function.cursorPaginator.md +1 -1
  20. package/data/packages/platform-database/api/Function.findFirst.md +1 -1
  21. package/data/packages/platform-database/api/Function.findFirstOrThrow.md +1 -1
  22. package/data/packages/platform-database/api/Function.findMany.md +1 -1
  23. package/data/packages/platform-database/api/Function.findManyPaged.md +1 -1
  24. package/data/packages/platform-database/api/Function.findRaw.md +1 -1
  25. package/data/packages/platform-database/api/Function.findUnique.md +1 -1
  26. package/data/packages/platform-database/api/Function.findUniqueOrThrow.md +1 -1
  27. package/data/packages/platform-database/api/Function.groupBy.md +1 -1
  28. package/data/packages/platform-database/api/Function.pageable.md +1 -1
  29. package/data/packages/platform-database/api/Function.paginator.md +1 -1
  30. package/data/packages/platform-database/api/Function.pipe.md +1 -1
  31. package/data/packages/platform-database/api/Function.pipeAll.md +1 -1
  32. package/data/packages/platform-database/api/Function.query.md +1 -1
  33. package/data/packages/platform-database/api/Function.query2.md +1 -1
  34. package/data/packages/platform-database/api/Function.remove.md +1 -1
  35. package/data/packages/platform-database/api/Function.removeMany.md +1 -1
  36. package/data/packages/platform-database/api/Function.skip.md +1 -1
  37. package/data/packages/platform-database/api/Function.transactionalQuery.md +1 -1
  38. package/data/packages/platform-database/api/Function.update.md +1 -1
  39. package/data/packages/platform-database/api/Function.updateMany.md +1 -1
  40. package/data/packages/platform-database/api/Function.updateManyAndReturn.md +1 -1
  41. package/data/packages/platform-database/api/Function.upsert.md +1 -1
  42. package/data/packages/platform-database/api/Interface.ICursorPaginateOptions.md +4 -4
  43. package/data/packages/platform-database/api/Interface.ICursorPaginatedResult.md +3 -3
  44. package/data/packages/platform-database/api/Interface.IDatabaseModuleConfig.md +3 -3
  45. package/data/packages/platform-database/api/Interface.IPaginateOptions.md +3 -3
  46. package/data/packages/platform-database/api/Interface.IPaginatedResult.md +3 -3
  47. package/data/packages/platform-database/api/Interface.IPrismaServiceOptions.md +2 -2
  48. package/data/packages/platform-database/api/Interface.IRepositoryQuery.md +3 -3
  49. package/data/packages/platform-database/api/Interface.IRepositoryQuery2.md +3 -3
  50. package/data/packages/platform-database/api/Interface.ITransactionalRepositoryQuery.md +4 -4
  51. package/data/packages/platform-database/api/TypeAlias.CursorPaginateFunction.md +1 -1
  52. package/data/packages/platform-database/api/TypeAlias.DelegateArgs.md +1 -1
  53. package/data/packages/platform-database/api/TypeAlias.DelegateOperations.md +1 -1
  54. package/data/packages/platform-database/api/TypeAlias.DelegateReturnTypes.md +1 -1
  55. package/data/packages/platform-database/api/TypeAlias.PaginateFunction.md +1 -1
  56. package/data/packages/platform-database/api/TypeAlias.QueryResultType.md +1 -1
  57. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsAll.md +1 -1
  58. package/data/packages/platform-database/api/TypeAlias.RepositoryOperationsBase.md +1 -1
  59. package/data/packages/platform-database/api/TypeAlias.TransactionalQueryResultType.md +1 -1
  60. package/data/packages/platform-database/api/Variable.DATABASE_MODULE_CONFIG.md +1 -1
  61. package/data/packages/platform-database/api/Variable.DB_AUTO_CONNECTION.md +1 -1
  62. package/data/packages/platform-database/api/Variable.PLATFORM_DATABASE_CONFIG_ENTRIES.md +1 -1
  63. package/data/packages/platform-payments/api/Class.FeatureAccessPort.md +13 -5
  64. package/data/packages/platform-payments/api/Class.FeatureGuard.md +3 -3
  65. package/data/packages/platform-payments/api/Class.FeatureUsageInterceptor.md +3 -3
  66. package/data/packages/platform-payments/api/Function.RequiresFeature.md +1 -1
  67. package/data/packages/platform-payments/api/Interface.IFeatureAccessContext.md +46 -0
  68. package/data/packages/platform-payments/api/Variable.FEATURE_KEY_METADATA.md +1 -1
  69. package/data/packages/platform-payments/api/index.md +1 -0
  70. package/data/packages/platform-payments/index.md +33 -12
  71. package/data/patterns/guard-pattern.md +27 -6
  72. package/data/patterns/module-pattern.md +6 -2
  73. package/package.json +1 -1
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: ICursorPaginateOptions
7
7
 
8
- Defined in: [features/CursorPagination.ts:21](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L21)
8
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:21](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L21)
9
9
 
10
10
  Options for cursor-based pagination.
11
11
 
@@ -17,7 +17,7 @@ Options for cursor-based pagination.
17
17
  optional cursor?: string;
18
18
  ```
19
19
 
20
- Defined in: [features/CursorPagination.ts:22](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L22)
20
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:22](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L22)
21
21
 
22
22
  ***
23
23
 
@@ -27,7 +27,7 @@ Defined in: [features/CursorPagination.ts:22](https://github.com/RueDeRennes/arc
27
27
  optional direction?: "forward" | "backward";
28
28
  ```
29
29
 
30
- Defined in: [features/CursorPagination.ts:24](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L24)
30
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:24](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L24)
31
31
 
32
32
  ***
33
33
 
@@ -37,4 +37,4 @@ Defined in: [features/CursorPagination.ts:24](https://github.com/RueDeRennes/arc
37
37
  optional take?: number;
38
38
  ```
39
39
 
40
- Defined in: [features/CursorPagination.ts:23](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L23)
40
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:23](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L23)
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: ICursorPaginatedResult\<T\>
7
7
 
8
- Defined in: [features/CursorPagination.ts:6](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L6)
8
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:6](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L6)
9
9
 
10
10
  Represents the result of a cursor-paginated query.
11
11
 
@@ -23,7 +23,7 @@ Represents the result of a cursor-paginated query.
23
23
  data: T[];
24
24
  ```
25
25
 
26
- Defined in: [features/CursorPagination.ts:7](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L7)
26
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:7](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L7)
27
27
 
28
28
  ***
29
29
 
@@ -38,7 +38,7 @@ meta: {
38
38
  };
39
39
  ```
40
40
 
41
- Defined in: [features/CursorPagination.ts:8](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L8)
41
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:8](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L8)
42
42
 
43
43
  #### endCursor
44
44
 
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: IDatabaseModuleConfig
7
7
 
8
- Defined in: [DatabaseModule.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L15)
8
+ Defined in: [libs/platform-database/src/DatabaseModule.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L15)
9
9
 
10
10
  Represents the database module configuration.
11
11
 
@@ -17,7 +17,7 @@ Represents the database module configuration.
17
17
  optional adapter?: unknown;
18
18
  ```
19
19
 
20
- Defined in: [DatabaseModule.ts:20](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L20)
20
+ Defined in: [libs/platform-database/src/DatabaseModule.ts:20](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L20)
21
21
 
22
22
  A Prisma driver adapter instance (e.g. `PrismaPg`, `PrismaLibSQL`).
23
23
  Required for Prisma 7+ with the new `prisma-client` generator.
@@ -30,6 +30,6 @@ Required for Prisma 7+ with the new `prisma-client` generator.
30
30
  optional middlewares?: unknown[];
31
31
  ```
32
32
 
33
- Defined in: [DatabaseModule.ts:22](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L22)
33
+ Defined in: [libs/platform-database/src/DatabaseModule.ts:22](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L22)
34
34
 
35
35
  Future extension point for Prisma middlewares
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: IPaginateOptions
7
7
 
8
- Defined in: [features/Pagination.ts:13](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L13)
8
+ Defined in: [libs/platform-database/src/features/Pagination.ts:13](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L13)
9
9
 
10
10
  ## Properties
11
11
 
@@ -15,7 +15,7 @@ Defined in: [features/Pagination.ts:13](https://github.com/RueDeRennes/archipel/
15
15
  optional page?: string | number;
16
16
  ```
17
17
 
18
- Defined in: [features/Pagination.ts:14](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L14)
18
+ Defined in: [libs/platform-database/src/features/Pagination.ts:14](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L14)
19
19
 
20
20
  ***
21
21
 
@@ -25,4 +25,4 @@ Defined in: [features/Pagination.ts:14](https://github.com/RueDeRennes/archipel/
25
25
  optional perPage?: string | number;
26
26
  ```
27
27
 
28
- Defined in: [features/Pagination.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L15)
28
+ Defined in: [libs/platform-database/src/features/Pagination.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L15)
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: IPaginatedResult\<T\>
7
7
 
8
- Defined in: [features/Pagination.ts:1](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L1)
8
+ Defined in: [libs/platform-database/src/features/Pagination.ts:1](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L1)
9
9
 
10
10
  ## Type Parameters
11
11
 
@@ -21,7 +21,7 @@ Defined in: [features/Pagination.ts:1](https://github.com/RueDeRennes/archipel/b
21
21
  data: T[];
22
22
  ```
23
23
 
24
- Defined in: [features/Pagination.ts:2](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L2)
24
+ Defined in: [libs/platform-database/src/features/Pagination.ts:2](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L2)
25
25
 
26
26
  ***
27
27
 
@@ -38,7 +38,7 @@ meta: {
38
38
  };
39
39
  ```
40
40
 
41
- Defined in: [features/Pagination.ts:3](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L3)
41
+ Defined in: [libs/platform-database/src/features/Pagination.ts:3](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L3)
42
42
 
43
43
  #### currentPage
44
44
 
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: IPrismaServiceOptions
7
7
 
8
- Defined in: [services/PrismaService.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/services/PrismaService.ts#L15)
8
+ Defined in: [libs/platform-database/src/services/PrismaService.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/services/PrismaService.ts#L15)
9
9
 
10
10
  Represents the options for the PrismaService.
11
11
 
@@ -17,7 +17,7 @@ Represents the options for the PrismaService.
17
17
  optional adapter?: unknown;
18
18
  ```
19
19
 
20
- Defined in: [services/PrismaService.ts:20](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/services/PrismaService.ts#L20)
20
+ Defined in: [libs/platform-database/src/services/PrismaService.ts:20](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/services/PrismaService.ts#L20)
21
21
 
22
22
  A Prisma driver adapter instance (e.g. `PrismaPg`, `PrismaLibSQL`).
23
23
  Required for Prisma 7+ with the new `prisma-client` generator.
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: IRepositoryQuery\<TDelegate, TResult\>
7
7
 
8
- Defined in: [repositories/queries/IRepositoryQuery.ts:9](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L9)
8
+ Defined in: [libs/platform-database/src/repositories/queries/IRepositoryQuery.ts:9](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L9)
9
9
 
10
10
  Represents a reusable query definition for repositories.
11
11
 
@@ -24,7 +24,7 @@ Represents a reusable query definition for repositories.
24
24
  readonly name: string;
25
25
  ```
26
26
 
27
- Defined in: [repositories/queries/IRepositoryQuery.ts:16](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L16)
27
+ Defined in: [libs/platform-database/src/repositories/queries/IRepositoryQuery.ts:16](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L16)
28
28
 
29
29
  The identifier used for logging.
30
30
 
@@ -36,7 +36,7 @@ The identifier used for logging.
36
36
  run(model): Promise<TResult>;
37
37
  ```
38
38
 
39
- Defined in: [repositories/queries/IRepositoryQuery.ts:27](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L27)
39
+ Defined in: [libs/platform-database/src/repositories/queries/IRepositoryQuery.ts:27](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L27)
40
40
 
41
41
  Executes the query against the provided model.
42
42
 
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: IRepositoryQuery2\<TDelegate, TRun\>
7
7
 
8
- Defined in: [repositories2/queries/IRepositoryQuery2.ts:8](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts#L8)
8
+ Defined in: [libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts:8](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts#L8)
9
9
 
10
10
  Represents a reusable query definition for repositories.
11
11
 
@@ -28,7 +28,7 @@ The query result type.
28
28
  readonly name: string;
29
29
  ```
30
30
 
31
- Defined in: [repositories2/queries/IRepositoryQuery2.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts#L17)
31
+ Defined in: [libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts#L17)
32
32
 
33
33
  The identifier used for logging.
34
34
 
@@ -40,6 +40,6 @@ The identifier used for logging.
40
40
  run: TRun;
41
41
  ```
42
42
 
43
- Defined in: [repositories2/queries/IRepositoryQuery2.ts:26](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts#L26)
43
+ Defined in: [libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts:26](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories2/queries/IRepositoryQuery2.ts#L26)
44
44
 
45
45
  Executes the query against the provided model.
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Interface: ITransactionalRepositoryQuery\<TResult\>
7
7
 
8
- Defined in: [repositories/queries/ITransactionalRepositoryQuery.ts:12](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L12)
8
+ Defined in: [libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts:12](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L12)
9
9
 
10
10
  Represents a repository query that requires a Prisma TransactionClient to access multiple delegates.
11
11
 
@@ -23,7 +23,7 @@ Represents a repository query that requires a Prisma TransactionClient to access
23
23
  readonly name: string;
24
24
  ```
25
25
 
26
- Defined in: [repositories/queries/ITransactionalRepositoryQuery.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L17)
26
+ Defined in: [libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L17)
27
27
 
28
28
  Identifier used for logging.
29
29
 
@@ -35,7 +35,7 @@ Identifier used for logging.
35
35
  run(tx): Promise<TResult>;
36
36
  ```
37
37
 
38
- Defined in: [repositories/queries/ITransactionalRepositoryQuery.ts:28](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L28)
38
+ Defined in: [libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts:28](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L28)
39
39
 
40
40
  Executes the query with an active transaction client.
41
41
 
@@ -43,7 +43,7 @@ Executes the query with an active transaction client.
43
43
 
44
44
  | Parameter | Type | Description |
45
45
  | ------ | ------ | ------ |
46
- | `tx` | `any` | Prisma transaction client. |
46
+ | `tx` | `Prisma.TransactionClient` | Prisma transaction client. |
47
47
 
48
48
  #### Returns
49
49
 
@@ -9,7 +9,7 @@ editUrl: false
9
9
  type CursorPaginateFunction = <T, K>(model, args?, options?) => Promise<ICursorPaginatedResult<T>>;
10
10
  ```
11
11
 
12
- Defined in: [features/CursorPagination.ts:32](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L32)
12
+ Defined in: [libs/platform-database/src/features/CursorPagination.ts:32](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/CursorPagination.ts#L32)
13
13
 
14
14
  The type of a cursor paginate function.
15
15
 
@@ -9,7 +9,7 @@ editUrl: false
9
9
  type DelegateArgs<T> = { [K in keyof T]: T[K] extends (args: infer A) => Promise<unknown> ? A : never };
10
10
  ```
11
11
 
12
- Defined in: [repositories/abstracts/RepositoryBase.ts:423](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L423)
12
+ Defined in: [libs/platform-database/src/repositories/abstracts/RepositoryBase.ts:423](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L423)
13
13
 
14
14
  ## Type Parameters
15
15
 
@@ -9,7 +9,7 @@ editUrl: false
9
9
  type DelegateOperations<TDelegate> = Extract<RepositoryOperationsAll, keyof TDelegate>;
10
10
  ```
11
11
 
12
- Defined in: [repositories/abstracts/RepositoryBase.ts:66](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L66)
12
+ Defined in: [libs/platform-database/src/repositories/abstracts/RepositoryBase.ts:66](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L66)
13
13
 
14
14
  Extracts the subset of known Prisma operations that a concrete delegate actually implements.
15
15
  Useful for type-level checks without requiring the consumer to state the provider explicitly.
@@ -9,7 +9,7 @@ editUrl: false
9
9
  type DelegateReturnTypes<T> = { [K in keyof T]: T[K] extends (args: infer A) => Promise<infer R> ? R : never };
10
10
  ```
11
11
 
12
- Defined in: [repositories/abstracts/RepositoryBase.ts:430](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L430)
12
+ Defined in: [libs/platform-database/src/repositories/abstracts/RepositoryBase.ts:430](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L430)
13
13
 
14
14
  ## Type Parameters
15
15
 
@@ -9,7 +9,7 @@ editUrl: false
9
9
  type PaginateFunction = <T, K>(model, args?, options?) => Promise<IPaginatedResult<T>>;
10
10
  ```
11
11
 
12
- Defined in: [features/Pagination.ts:18](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L18)
12
+ Defined in: [libs/platform-database/src/features/Pagination.ts:18](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/features/Pagination.ts#L18)
13
13
 
14
14
  ## Type Parameters
15
15
 
@@ -9,7 +9,7 @@ editUrl: false
9
9
  type QueryResultType<T> = T extends IRepositoryQuery<unknown, infer R> ? R : never;
10
10
  ```
11
11
 
12
- Defined in: [repositories/queries/IRepositoryQuery.ts:45](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L45)
12
+ Defined in: [libs/platform-database/src/repositories/queries/IRepositoryQuery.ts:45](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/IRepositoryQuery.ts#L45)
13
13
 
14
14
  Extracts the result type from a repository query.
15
15
  Useful for type-safe mapping without duplicating query result types.
@@ -14,6 +14,6 @@ type RepositoryOperationsAll =
14
14
  | "aggregateRaw";
15
15
  ```
16
16
 
17
- Defined in: [repositories/abstracts/RepositoryBase.ts:20](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L20)
17
+ Defined in: [libs/platform-database/src/repositories/abstracts/RepositoryBase.ts:20](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L20)
18
18
 
19
19
  Superset of all known Prisma model delegate operations across every supported database provider.
@@ -24,7 +24,7 @@ type RepositoryOperationsBase =
24
24
  | "upsert";
25
25
  ```
26
26
 
27
- Defined in: [repositories/abstracts/RepositoryBase.ts:37](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L37)
27
+ Defined in: [libs/platform-database/src/repositories/abstracts/RepositoryBase.ts:37](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/abstracts/RepositoryBase.ts#L37)
28
28
 
29
29
  The baseline set of operations available on **every** Prisma provider
30
30
  (PostgreSQL, CockroachDB, SQLite, MySQL, MariaDB, SQL Server, MongoDB).
@@ -9,7 +9,7 @@ editUrl: false
9
9
  type TransactionalQueryResultType<T> = T extends ITransactionalRepositoryQuery<infer R> ? R : never;
10
10
  ```
11
11
 
12
- Defined in: [repositories/queries/ITransactionalRepositoryQuery.ts:44](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L44)
12
+ Defined in: [libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts:44](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/repositories/queries/ITransactionalRepositoryQuery.ts#L44)
13
13
 
14
14
  Extracts the result type from a transactional repository query.
15
15
 
@@ -9,6 +9,6 @@ editUrl: false
9
9
  const DATABASE_MODULE_CONFIG: "DATABASE_MODULE_CONFIG" = 'DATABASE_MODULE_CONFIG';
10
10
  ```
11
11
 
12
- Defined in: [DatabaseModule.ts:30](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L30)
12
+ Defined in: [libs/platform-database/src/DatabaseModule.ts:30](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/DatabaseModule.ts#L30)
13
13
 
14
14
  Represents the database module.
@@ -9,6 +9,6 @@ editUrl: false
9
9
  const DB_AUTO_CONNECTION: IConfigKey<boolean>;
10
10
  ```
11
11
 
12
- Defined in: [configKeys.ts:8](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/configKeys.ts#L8)
12
+ Defined in: [libs/platform-database/src/configKeys.ts:8](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/configKeys.ts#L8)
13
13
 
14
14
  Whether to skip the automatic database connection on module init.
@@ -9,6 +9,6 @@ editUrl: false
9
9
  const PLATFORM_DATABASE_CONFIG_ENTRIES: ReadonlyArray<Omit<IConfigRegistryEntry, "module">>;
10
10
  ```
11
11
 
12
- Defined in: [configKeys.ts:11](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/configKeys.ts#L11)
12
+ Defined in: [libs/platform-database/src/configKeys.ts:11](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-database/src/configKeys.ts#L11)
13
13
 
14
14
  Core configuration entries required by `platform-database`.
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Abstract Class: FeatureAccessPort
7
7
 
8
- Defined in: [contracts/FeatureAccessPort.ts:14](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/FeatureAccessPort.ts#L14)
8
+ Defined in: [contracts/FeatureAccessPort.ts:15](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/FeatureAccessPort.ts#L15)
9
9
 
10
10
  Abstract port for checking and recording feature usage.
11
11
  Consuming projects must provide a concrete implementation (e.g. backed by Prisma
@@ -28,10 +28,13 @@ new FeatureAccessPort(): FeatureAccessPort;
28
28
  ### checkAccess()
29
29
 
30
30
  ```ts
31
- abstract checkAccess(userId, featureKey): Promise<IFeatureAccessResult>;
31
+ abstract checkAccess(
32
+ userId,
33
+ featureKey,
34
+ context?): Promise<IFeatureAccessResult>;
32
35
  ```
33
36
 
34
- Defined in: [contracts/FeatureAccessPort.ts:26](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/FeatureAccessPort.ts#L26)
37
+ Defined in: [contracts/FeatureAccessPort.ts:28](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/FeatureAccessPort.ts#L28)
35
38
 
36
39
  Checks whether a user is allowed to use the specified feature
37
40
  without incrementing usage.
@@ -42,6 +45,7 @@ without incrementing usage.
42
45
  | ------ | ------ | ------ |
43
46
  | `userId` | `string` | The user identifier. |
44
47
  | `featureKey` | `string` | The feature key to check. |
48
+ | `context?` | [`IFeatureAccessContext`](Interface.IFeatureAccessContext) | Request-scoped access context resolved by the guard. |
45
49
 
46
50
  #### Returns
47
51
 
@@ -54,10 +58,13 @@ The access check result including quota information.
54
58
  ### recordUsage()
55
59
 
56
60
  ```ts
57
- abstract recordUsage(userId, featureKey): Promise<void>;
61
+ abstract recordUsage(
62
+ userId,
63
+ featureKey,
64
+ context?): Promise<void>;
58
65
  ```
59
66
 
60
- Defined in: [contracts/FeatureAccessPort.ts:36](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/FeatureAccessPort.ts#L36)
67
+ Defined in: [contracts/FeatureAccessPort.ts:43](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/FeatureAccessPort.ts#L43)
61
68
 
62
69
  Records one unit of feature usage. Implementations should
63
70
  throw if the quota has been exceeded.
@@ -68,6 +75,7 @@ throw if the quota has been exceeded.
68
75
  | ------ | ------ | ------ |
69
76
  | `userId` | `string` | The user identifier. |
70
77
  | `featureKey` | `string` | The feature key to record usage for. |
78
+ | `context?` | [`IFeatureAccessContext`](Interface.IFeatureAccessContext) | Request-scoped access context resolved by the interceptor. |
71
79
 
72
80
  #### Returns
73
81
 
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: FeatureGuard
7
7
 
8
- Defined in: [guards/FeatureGuard.ts:26](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L26)
8
+ Defined in: [guards/FeatureGuard.ts:29](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L29)
9
9
 
10
10
  Guard that checks if the user has access to a specific feature
11
11
  by delegating to the registered [FeatureAccessPort](Class.FeatureAccessPort).
@@ -22,7 +22,7 @@ by delegating to the registered [FeatureAccessPort](Class.FeatureAccessPort).
22
22
  new FeatureGuard(featureAccessPort, reflector): FeatureGuard;
23
23
  ```
24
24
 
25
- Defined in: [guards/FeatureGuard.ts:43](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L43)
25
+ Defined in: [guards/FeatureGuard.ts:46](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L46)
26
26
 
27
27
  Constructs a new instance of the `FeatureGuard` class.
28
28
 
@@ -45,7 +45,7 @@ Constructs a new instance of the `FeatureGuard` class.
45
45
  canActivate(context): Promise<boolean>;
46
46
  ```
47
47
 
48
- Defined in: [guards/FeatureGuard.ts:59](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L59)
48
+ Defined in: [guards/FeatureGuard.ts:62](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L62)
49
49
 
50
50
  Determines whether the current user has access to the guarded feature.
51
51
 
@@ -5,7 +5,7 @@ editUrl: false
5
5
  ---
6
6
  # Class: FeatureUsageInterceptor
7
7
 
8
- Defined in: [interceptors/FeatureUsageInterceptor.ts:19](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/interceptors/FeatureUsageInterceptor.ts#L19)
8
+ Defined in: [interceptors/FeatureUsageInterceptor.ts:20](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/interceptors/FeatureUsageInterceptor.ts#L20)
9
9
 
10
10
  Interceptor that records feature usage after successful request handling.
11
11
  Delegates recording to the registered [FeatureAccessPort](Class.FeatureAccessPort).
@@ -22,7 +22,7 @@ Delegates recording to the registered [FeatureAccessPort](Class.FeatureAccessPor
22
22
  new FeatureUsageInterceptor(featureAccessPort, reflector): FeatureUsageInterceptor;
23
23
  ```
24
24
 
25
- Defined in: [interceptors/FeatureUsageInterceptor.ts:36](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/interceptors/FeatureUsageInterceptor.ts#L36)
25
+ Defined in: [interceptors/FeatureUsageInterceptor.ts:37](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/interceptors/FeatureUsageInterceptor.ts#L37)
26
26
 
27
27
  Constructs a new instance of the `FeatureUsageInterceptor` class.
28
28
 
@@ -45,7 +45,7 @@ Constructs a new instance of the `FeatureUsageInterceptor` class.
45
45
  intercept(context, next): Observable<unknown>;
46
46
  ```
47
47
 
48
- Defined in: [interceptors/FeatureUsageInterceptor.ts:53](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/interceptors/FeatureUsageInterceptor.ts#L53)
48
+ Defined in: [interceptors/FeatureUsageInterceptor.ts:54](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/interceptors/FeatureUsageInterceptor.ts#L54)
49
49
 
50
50
  Records feature usage after the request handler completes successfully.
51
51
 
@@ -9,7 +9,7 @@ editUrl: false
9
9
  function RequiresFeature(featureKey): CustomDecorator<string>;
10
10
  ```
11
11
 
12
- Defined in: [guards/FeatureGuard.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L17)
12
+ Defined in: [guards/FeatureGuard.ts:19](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L19)
13
13
 
14
14
  Decorator to mark endpoints that require feature access check.
15
15
  The `featureKey` is a free-form string defined by the consuming project.
@@ -0,0 +1,46 @@
1
+ ---
2
+ title: 'Interface: IFeatureAccessContext'
3
+ generated: true
4
+ editUrl: false
5
+ ---
6
+ # Interface: IFeatureAccessContext
7
+
8
+ Defined in: [contracts/IFeatureAccessContext.ts:6](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/IFeatureAccessContext.ts#L6)
9
+
10
+ Request-scoped context for feature access checks and usage recording.
11
+
12
+ ## Properties
13
+
14
+ ### subject?
15
+
16
+ ```ts
17
+ readonly optional subject?: unknown;
18
+ ```
19
+
20
+ Defined in: [contracts/IFeatureAccessContext.ts:22](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/IFeatureAccessContext.ts#L22)
21
+
22
+ Original authenticated subject from the request.
23
+
24
+ ***
25
+
26
+ ### tenantId?
27
+
28
+ ```ts
29
+ readonly optional tenantId?: string | number;
30
+ ```
31
+
32
+ Defined in: [contracts/IFeatureAccessContext.ts:17](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/IFeatureAccessContext.ts#L17)
33
+
34
+ Optional tenant identifier when the authenticated subject carries tenancy context.
35
+
36
+ ***
37
+
38
+ ### userId
39
+
40
+ ```ts
41
+ readonly userId: string;
42
+ ```
43
+
44
+ Defined in: [contracts/IFeatureAccessContext.ts:12](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/contracts/IFeatureAccessContext.ts#L12)
45
+
46
+ Authenticated user identifier resolved by the guard.
@@ -9,4 +9,4 @@ editUrl: false
9
9
  const FEATURE_KEY_METADATA: "feature_key" = 'feature_key';
10
10
  ```
11
11
 
12
- Defined in: [guards/FeatureGuard.ts:9](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L9)
12
+ Defined in: [guards/FeatureGuard.ts:11](https://github.com/RueDeRennes/archipel/blob/main/libs/platform-payments/src/guards/FeatureGuard.ts#L11)
@@ -25,6 +25,7 @@ editUrl: false
25
25
 
26
26
  | Interface | Description |
27
27
  | ------ | ------ |
28
+ | [IFeatureAccessContext](Interface.IFeatureAccessContext) | Request-scoped context for feature access checks and usage recording. |
28
29
  | [IFeatureAccessResult](Interface.IFeatureAccessResult) | Result of a feature access check. |
29
30
  | [INormalizedCheckoutSession](Interface.INormalizedCheckoutSession) | Normalized checkout session. |
30
31
  | [INormalizedPrice](Interface.INormalizedPrice) | Normalized price information. |