@xemahq/platform-common 0.28.2 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/database/biome-database.d.ts +2 -11
  2. package/dist/database/biome-database.d.ts.map +1 -1
  3. package/dist/database/biome-database.js +4 -24
  4. package/dist/database/biome-database.js.map +1 -1
  5. package/dist/database/idempotency-record-schema.d.ts +6 -0
  6. package/dist/database/idempotency-record-schema.d.ts.map +1 -0
  7. package/dist/database/idempotency-record-schema.js +102 -0
  8. package/dist/database/idempotency-record-schema.js.map +1 -0
  9. package/dist/database/release-intent-schema.d.ts +6 -0
  10. package/dist/database/release-intent-schema.d.ts.map +1 -0
  11. package/dist/database/release-intent-schema.js +129 -0
  12. package/dist/database/release-intent-schema.js.map +1 -0
  13. package/dist/database/schema-source-reader.d.ts +7 -0
  14. package/dist/database/schema-source-reader.d.ts.map +1 -0
  15. package/dist/database/schema-source-reader.js +49 -0
  16. package/dist/database/schema-source-reader.js.map +1 -0
  17. package/dist/index.d.ts +4 -6
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +4 -29
  20. package/dist/index.js.map +1 -1
  21. package/dist/lib/agent-session.types.d.ts +0 -9
  22. package/dist/lib/agent-session.types.d.ts.map +1 -1
  23. package/dist/lib/agent-session.types.js +1 -11
  24. package/dist/lib/agent-session.types.js.map +1 -1
  25. package/dist/lib/auth/org-authority-observations.d.ts +2 -0
  26. package/dist/lib/auth/org-authority-observations.d.ts.map +1 -1
  27. package/dist/lib/auth/org-authority-observations.js +31 -12
  28. package/dist/lib/auth/org-authority-observations.js.map +1 -1
  29. package/dist/lib/auth/org-authority.d.ts +8 -11
  30. package/dist/lib/auth/org-authority.d.ts.map +1 -1
  31. package/dist/lib/auth/org-authority.js +12 -31
  32. package/dist/lib/auth/org-authority.js.map +1 -1
  33. package/dist/lib/auth/org-claim.d.ts.map +1 -1
  34. package/dist/lib/auth/org-claim.js.map +1 -1
  35. package/dist/lib/auth/org-role.d.ts +2 -6
  36. package/dist/lib/auth/org-role.d.ts.map +1 -1
  37. package/dist/lib/auth/org-role.js +10 -19
  38. package/dist/lib/auth/org-role.js.map +1 -1
  39. package/dist/lib/edge-stream/index.d.ts.map +1 -1
  40. package/dist/lib/edge-stream/index.js.map +1 -1
  41. package/dist/lib/errors/artifact-store-errors.d.ts +14 -0
  42. package/dist/lib/errors/artifact-store-errors.d.ts.map +1 -0
  43. package/dist/lib/errors/artifact-store-errors.js +41 -0
  44. package/dist/lib/errors/artifact-store-errors.js.map +1 -0
  45. package/dist/lib/errors/index.d.ts +3 -0
  46. package/dist/lib/errors/index.d.ts.map +1 -0
  47. package/dist/lib/{interaction-widgets → errors}/index.js +2 -3
  48. package/dist/lib/errors/index.js.map +1 -0
  49. package/dist/lib/errors/knowledge-graph-errors.d.ts +5 -0
  50. package/dist/lib/errors/knowledge-graph-errors.d.ts.map +1 -0
  51. package/dist/lib/errors/knowledge-graph-errors.js +17 -0
  52. package/dist/lib/errors/knowledge-graph-errors.js.map +1 -0
  53. package/dist/lib/manifest/manifest.enums.d.ts.map +1 -1
  54. package/dist/lib/manifest/manifest.enums.js.map +1 -1
  55. package/dist/lib/mcp-bridge-token.d.ts +0 -2
  56. package/dist/lib/mcp-bridge-token.d.ts.map +1 -1
  57. package/dist/lib/mcp-bridge-token.js +0 -8
  58. package/dist/lib/mcp-bridge-token.js.map +1 -1
  59. package/dist/lib/request-context.d.ts.map +1 -1
  60. package/dist/lib/request-context.js.map +1 -1
  61. package/dist/lib/to-json-column-value.d.ts +6 -0
  62. package/dist/lib/to-json-column-value.d.ts.map +1 -1
  63. package/dist/lib/to-json-column-value.js +19 -2
  64. package/dist/lib/to-json-column-value.js.map +1 -1
  65. package/dist/nestjs/auth/actor-classification.d.ts +4 -4
  66. package/dist/nestjs/auth/actor-classification.d.ts.map +1 -1
  67. package/dist/nestjs/auth/actor-classification.js +19 -11
  68. package/dist/nestjs/auth/actor-classification.js.map +1 -1
  69. package/dist/nestjs/auth/holds-org-authority.d.ts +12 -0
  70. package/dist/nestjs/auth/holds-org-authority.d.ts.map +1 -0
  71. package/dist/nestjs/auth/holds-org-authority.js +20 -0
  72. package/dist/nestjs/auth/holds-org-authority.js.map +1 -0
  73. package/dist/nestjs/auth/index.d.ts +4 -3
  74. package/dist/nestjs/auth/index.d.ts.map +1 -1
  75. package/dist/nestjs/auth/index.js +8 -6
  76. package/dist/nestjs/auth/index.js.map +1 -1
  77. package/dist/nestjs/auth/org-role.guard.d.ts.map +1 -1
  78. package/dist/nestjs/auth/org-role.guard.js +2 -2
  79. package/dist/nestjs/auth/org-role.guard.js.map +1 -1
  80. package/dist/nestjs/auth/service-or-org-role.guard.d.ts.map +1 -1
  81. package/dist/nestjs/auth/service-or-org-role.guard.js +2 -2
  82. package/dist/nestjs/auth/service-or-org-role.guard.js.map +1 -1
  83. package/dist/nestjs/capability-edge-tenancy.d.ts +16 -0
  84. package/dist/nestjs/capability-edge-tenancy.d.ts.map +1 -0
  85. package/dist/nestjs/capability-edge-tenancy.js +44 -0
  86. package/dist/nestjs/capability-edge-tenancy.js.map +1 -0
  87. package/dist/nestjs/global-exception.filter.d.ts +1 -4
  88. package/dist/nestjs/global-exception.filter.d.ts.map +1 -1
  89. package/dist/nestjs/global-exception.filter.js +53 -179
  90. package/dist/nestjs/global-exception.filter.js.map +1 -1
  91. package/dist/nestjs/idempotency/idempotency.service.d.ts.map +1 -1
  92. package/dist/nestjs/idempotency/idempotency.service.js +2 -1
  93. package/dist/nestjs/idempotency/idempotency.service.js.map +1 -1
  94. package/dist/nestjs/index.d.ts +11 -7
  95. package/dist/nestjs/index.d.ts.map +1 -1
  96. package/dist/nestjs/index.js +35 -10
  97. package/dist/nestjs/index.js.map +1 -1
  98. package/dist/nestjs/jwt-verification.guard.d.ts +4 -1
  99. package/dist/nestjs/jwt-verification.guard.d.ts.map +1 -1
  100. package/dist/nestjs/jwt-verification.guard.js +17 -4
  101. package/dist/nestjs/jwt-verification.guard.js.map +1 -1
  102. package/dist/nestjs/org-scope.d.ts +9 -0
  103. package/dist/nestjs/org-scope.d.ts.map +1 -0
  104. package/dist/nestjs/org-scope.js +26 -0
  105. package/dist/nestjs/org-scope.js.map +1 -0
  106. package/dist/nestjs/pagination.d.ts +26 -0
  107. package/dist/nestjs/pagination.d.ts.map +1 -1
  108. package/dist/nestjs/pagination.js +122 -7
  109. package/dist/nestjs/pagination.js.map +1 -1
  110. package/dist/nestjs/problem-details.dto.d.ts +15 -0
  111. package/dist/nestjs/problem-details.dto.d.ts.map +1 -0
  112. package/dist/nestjs/problem-details.dto.js +103 -0
  113. package/dist/nestjs/problem-details.dto.js.map +1 -0
  114. package/dist/nestjs/refusal.d.ts +27 -0
  115. package/dist/nestjs/refusal.d.ts.map +1 -0
  116. package/dist/nestjs/refusal.js +231 -0
  117. package/dist/nestjs/refusal.js.map +1 -0
  118. package/dist/nestjs/request-context.middleware.d.ts +1 -0
  119. package/dist/nestjs/request-context.middleware.d.ts.map +1 -1
  120. package/dist/nestjs/request-context.middleware.js +48 -19
  121. package/dist/nestjs/request-context.middleware.js.map +1 -1
  122. package/dist/nestjs/swagger.decorators.d.ts +1 -0
  123. package/dist/nestjs/swagger.decorators.d.ts.map +1 -1
  124. package/dist/nestjs/swagger.decorators.js +22 -2
  125. package/dist/nestjs/swagger.decorators.js.map +1 -1
  126. package/package.json +9 -3
  127. package/prisma-url.d.ts +38 -0
  128. package/prisma-url.js +84 -0
  129. package/dist/lib/briefcase/index.d.ts +0 -18
  130. package/dist/lib/briefcase/index.d.ts.map +0 -1
  131. package/dist/lib/briefcase/index.js +0 -72
  132. package/dist/lib/briefcase/index.js.map +0 -1
  133. package/dist/lib/errors/pipeline-errors.d.ts +0 -178
  134. package/dist/lib/errors/pipeline-errors.d.ts.map +0 -1
  135. package/dist/lib/errors/pipeline-errors.js +0 -316
  136. package/dist/lib/errors/pipeline-errors.js.map +0 -1
  137. package/dist/lib/interaction-widgets/factories.d.ts +0 -83
  138. package/dist/lib/interaction-widgets/factories.d.ts.map +0 -1
  139. package/dist/lib/interaction-widgets/factories.js +0 -173
  140. package/dist/lib/interaction-widgets/factories.js.map +0 -1
  141. package/dist/lib/interaction-widgets/index.d.ts +0 -4
  142. package/dist/lib/interaction-widgets/index.d.ts.map +0 -1
  143. package/dist/lib/interaction-widgets/index.js.map +0 -1
  144. package/dist/lib/interaction-widgets/validation.d.ts +0 -10
  145. package/dist/lib/interaction-widgets/validation.d.ts.map +0 -1
  146. package/dist/lib/interaction-widgets/validation.js +0 -214
  147. package/dist/lib/interaction-widgets/validation.js.map +0 -1
  148. package/dist/lib/interaction-widgets/widget-types.d.ts +0 -163
  149. package/dist/lib/interaction-widgets/widget-types.d.ts.map +0 -1
  150. package/dist/lib/interaction-widgets/widget-types.js +0 -22
  151. package/dist/lib/interaction-widgets/widget-types.js.map +0 -1
  152. package/dist/lib/run-events/action-types.d.ts +0 -40
  153. package/dist/lib/run-events/action-types.d.ts.map +0 -1
  154. package/dist/lib/run-events/action-types.js +0 -40
  155. package/dist/lib/run-events/action-types.js.map +0 -1
  156. package/dist/lib/run-events/event-families.d.ts +0 -95
  157. package/dist/lib/run-events/event-families.d.ts.map +0 -1
  158. package/dist/lib/run-events/event-families.js +0 -282
  159. package/dist/lib/run-events/event-families.js.map +0 -1
  160. package/dist/lib/run-events/index.d.ts +0 -7
  161. package/dist/lib/run-events/index.d.ts.map +0 -1
  162. package/dist/lib/run-events/index.js +0 -23
  163. package/dist/lib/run-events/index.js.map +0 -1
  164. package/dist/lib/run-events/run-event.types.d.ts +0 -60
  165. package/dist/lib/run-events/run-event.types.d.ts.map +0 -1
  166. package/dist/lib/run-events/run-event.types.js +0 -57
  167. package/dist/lib/run-events/run-event.types.js.map +0 -1
  168. package/dist/lib/run-events/run-live-snapshot.types.d.ts +0 -69
  169. package/dist/lib/run-events/run-live-snapshot.types.d.ts.map +0 -1
  170. package/dist/lib/run-events/run-live-snapshot.types.js +0 -17
  171. package/dist/lib/run-events/run-live-snapshot.types.js.map +0 -1
  172. package/dist/lib/run-events/snapshot-reducer.d.ts +0 -4
  173. package/dist/lib/run-events/snapshot-reducer.d.ts.map +0 -1
  174. package/dist/lib/run-events/snapshot-reducer.js +0 -313
  175. package/dist/lib/run-events/snapshot-reducer.js.map +0 -1
  176. package/dist/lib/run-events/stream-contracts.d.ts +0 -79
  177. package/dist/lib/run-events/stream-contracts.d.ts.map +0 -1
  178. package/dist/lib/run-events/stream-contracts.js +0 -27
  179. package/dist/lib/run-events/stream-contracts.js.map +0 -1
  180. package/dist/lib/tag-taxonomy/concern-tags.d.ts +0 -3
  181. package/dist/lib/tag-taxonomy/concern-tags.d.ts.map +0 -1
  182. package/dist/lib/tag-taxonomy/concern-tags.js +0 -26
  183. package/dist/lib/tag-taxonomy/concern-tags.js.map +0 -1
  184. package/dist/lib/tag-taxonomy/index.d.ts +0 -14
  185. package/dist/lib/tag-taxonomy/index.d.ts.map +0 -1
  186. package/dist/lib/tag-taxonomy/index.js +0 -59
  187. package/dist/lib/tag-taxonomy/index.js.map +0 -1
  188. package/dist/lib/tag-taxonomy/lifecycle-tags.d.ts +0 -3
  189. package/dist/lib/tag-taxonomy/lifecycle-tags.d.ts.map +0 -1
  190. package/dist/lib/tag-taxonomy/lifecycle-tags.js +0 -57
  191. package/dist/lib/tag-taxonomy/lifecycle-tags.js.map +0 -1
  192. package/dist/lib/tag-taxonomy/stack-tags.d.ts +0 -3
  193. package/dist/lib/tag-taxonomy/stack-tags.d.ts.map +0 -1
  194. package/dist/lib/tag-taxonomy/stack-tags.js +0 -26
  195. package/dist/lib/tag-taxonomy/stack-tags.js.map +0 -1
  196. package/dist/lib/tag-taxonomy/team-tags.d.ts +0 -3
  197. package/dist/lib/tag-taxonomy/team-tags.d.ts.map +0 -1
  198. package/dist/lib/tag-taxonomy/team-tags.js +0 -84
  199. package/dist/lib/tag-taxonomy/team-tags.js.map +0 -1
  200. package/dist/lib/tag-taxonomy/types.d.ts +0 -14
  201. package/dist/lib/tag-taxonomy/types.d.ts.map +0 -1
  202. package/dist/lib/tag-taxonomy/types.js +0 -3
  203. package/dist/lib/tag-taxonomy/types.js.map +0 -1
  204. package/dist/nestjs/error-response.dto.d.ts +0 -10
  205. package/dist/nestjs/error-response.dto.d.ts.map +0 -1
  206. package/dist/nestjs/error-response.dto.js +0 -46
  207. package/dist/nestjs/error-response.dto.js.map +0 -1
  208. package/dist/schemas/xema/analysis.json +0 -51
  209. package/dist/schemas/xema/clarification-contract.json +0 -49
  210. package/dist/schemas/xema/context.json +0 -79
  211. package/dist/schemas/xema/index.d.ts +0 -8
  212. package/dist/schemas/xema/index.d.ts.map +0 -1
  213. package/dist/schemas/xema/index.js +0 -28
  214. package/dist/schemas/xema/index.js.map +0 -1
  215. package/dist/schemas/xema/review-history.json +0 -42
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.titleForCode = titleForCode;
4
+ exports.isZodError = isZodError;
5
+ exports.problemFieldIssuesFromZod = problemFieldIssuesFromZod;
6
+ exports.refusalFrom = refusalFrom;
7
+ exports.problemDetailsFor = problemDetailsFor;
8
+ const common_1 = require("@nestjs/common");
9
+ const oidc_guard_1 = require("@xemahq/oidc-guard");
10
+ const http_1 = require("@xemahq/kernel-contracts/http");
11
+ const data_store_error_1 = require("../database/data-store-error");
12
+ const unique_constraint_target_1 = require("../database/unique-constraint-target");
13
+ const NEST_BODY_RESERVED_KEYS = new Set([
14
+ 'statusCode',
15
+ 'timestamp',
16
+ 'path',
17
+ 'method',
18
+ 'message',
19
+ 'error',
20
+ ]);
21
+ const CODE_BY_STATUS = new Map([
22
+ [common_1.HttpStatus.BAD_REQUEST, 'BAD_REQUEST'],
23
+ [common_1.HttpStatus.UNAUTHORIZED, 'UNAUTHORIZED'],
24
+ [common_1.HttpStatus.PAYMENT_REQUIRED, 'PAYMENT_REQUIRED'],
25
+ [common_1.HttpStatus.FORBIDDEN, 'FORBIDDEN'],
26
+ [common_1.HttpStatus.NOT_FOUND, 'NOT_FOUND'],
27
+ [common_1.HttpStatus.METHOD_NOT_ALLOWED, 'METHOD_NOT_ALLOWED'],
28
+ [common_1.HttpStatus.NOT_ACCEPTABLE, 'NOT_ACCEPTABLE'],
29
+ [common_1.HttpStatus.REQUEST_TIMEOUT, 'REQUEST_TIMEOUT'],
30
+ [common_1.HttpStatus.CONFLICT, 'CONFLICT'],
31
+ [common_1.HttpStatus.GONE, 'GONE'],
32
+ [common_1.HttpStatus.PRECONDITION_FAILED, 'PRECONDITION_FAILED'],
33
+ [common_1.HttpStatus.PAYLOAD_TOO_LARGE, 'PAYLOAD_TOO_LARGE'],
34
+ [common_1.HttpStatus.UNSUPPORTED_MEDIA_TYPE, 'UNSUPPORTED_MEDIA_TYPE'],
35
+ [common_1.HttpStatus.UNPROCESSABLE_ENTITY, 'UNPROCESSABLE_ENTITY'],
36
+ [common_1.HttpStatus.TOO_MANY_REQUESTS, 'TOO_MANY_REQUESTS'],
37
+ [common_1.HttpStatus.INTERNAL_SERVER_ERROR, 'INTERNAL_ERROR'],
38
+ [common_1.HttpStatus.NOT_IMPLEMENTED, 'NOT_IMPLEMENTED'],
39
+ [common_1.HttpStatus.BAD_GATEWAY, 'BAD_GATEWAY'],
40
+ [common_1.HttpStatus.SERVICE_UNAVAILABLE, 'SERVICE_UNAVAILABLE'],
41
+ [common_1.HttpStatus.GATEWAY_TIMEOUT, 'GATEWAY_TIMEOUT'],
42
+ ]);
43
+ const CODE_SHAPE = /^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$/;
44
+ function codeForStatus(status) {
45
+ return CODE_BY_STATUS.get(status) ?? `HTTP_${status}`;
46
+ }
47
+ function titleForCode(code) {
48
+ const words = code.toLowerCase().replaceAll('_', ' ');
49
+ return words.charAt(0).toUpperCase() + words.slice(1);
50
+ }
51
+ function isZodError(exception) {
52
+ return (exception instanceof Error &&
53
+ exception.name === 'ZodError' &&
54
+ Array.isArray(exception.issues));
55
+ }
56
+ function problemFieldIssuesFromZod(issues) {
57
+ return issues.map((issue) => ({
58
+ pointer: Array.isArray(issue.path) && issue.path.length > 0
59
+ ? `/${issue.path.map((segment) => String(segment)).join('/')}`
60
+ : '/',
61
+ detail: strippedIssueMessage(issue),
62
+ }));
63
+ }
64
+ function strippedIssueMessage(issue) {
65
+ const pattern = typeof issue.pattern === 'string' ? issue.pattern : '';
66
+ return pattern.length > 0
67
+ ? issue.message.split(pattern).join('<pattern>')
68
+ : issue.message;
69
+ }
70
+ function extractStructuredExtensions(responseObj) {
71
+ const details = {};
72
+ for (const [key, value] of Object.entries(responseObj)) {
73
+ if (NEST_BODY_RESERVED_KEYS.has(key))
74
+ continue;
75
+ details[key] = value;
76
+ }
77
+ return Object.keys(details).length > 0 ? details : undefined;
78
+ }
79
+ function firstSentence(message) {
80
+ return Array.isArray(message) ? message.join('; ') : message;
81
+ }
82
+ function refusalFrom(exception) {
83
+ if ((0, http_1.isXemaError)(exception)) {
84
+ return {
85
+ status: exception.status,
86
+ code: exception.code,
87
+ title: exception.title,
88
+ detail: exception.detail,
89
+ ...(exception.errors === undefined ? {} : { errors: exception.errors }),
90
+ ...(exception.extensions === undefined
91
+ ? {}
92
+ : { extensions: exception.extensions }),
93
+ };
94
+ }
95
+ if (exception instanceof common_1.HttpException) {
96
+ return refusalFromHttpException(exception);
97
+ }
98
+ if ((0, data_store_error_1.isDataStoreClientError)(exception)) {
99
+ return refusalFromDataStoreError(exception);
100
+ }
101
+ if (isZodError(exception)) {
102
+ return refusalFromZodError(exception);
103
+ }
104
+ if (exception instanceof oidc_guard_1.TenantAccessError ||
105
+ exception instanceof oidc_guard_1.TenantClaimError) {
106
+ return refusalFromTenancyError(exception);
107
+ }
108
+ const errorMessage = exception instanceof Error
109
+ ? exception.message
110
+ : 'An unexpected error occurred';
111
+ return {
112
+ status: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
113
+ code: 'INTERNAL_ERROR',
114
+ title: titleForCode('INTERNAL_ERROR'),
115
+ detail: errorMessage,
116
+ };
117
+ }
118
+ function refusalFromHttpException(exception) {
119
+ const status = exception.getStatus();
120
+ const response = exception.getResponse();
121
+ if (typeof response === 'string') {
122
+ const code = codeForStatus(status);
123
+ return {
124
+ status,
125
+ code,
126
+ title: titleForCode(code),
127
+ detail: response,
128
+ };
129
+ }
130
+ const responseObj = response;
131
+ const extensions = extractStructuredExtensions(responseObj);
132
+ const message = responseObj.message || exception.message;
133
+ const declared = responseObj.code;
134
+ const code = typeof declared === 'string' && CODE_SHAPE.test(declared)
135
+ ? declared
136
+ : codeForStatus(status);
137
+ return {
138
+ status,
139
+ code,
140
+ title: titleForCode(code),
141
+ detail: firstSentence(message),
142
+ ...(extensions === undefined ? {} : { extensions }),
143
+ };
144
+ }
145
+ function refusalFromZodError(exception) {
146
+ const issues = problemFieldIssuesFromZod(exception.issues);
147
+ return {
148
+ status: common_1.HttpStatus.BAD_REQUEST,
149
+ code: 'REQUEST_VALIDATION_FAILED',
150
+ title: titleForCode('REQUEST_VALIDATION_FAILED'),
151
+ detail: issues.length > 0
152
+ ? issues.map((issue) => `${issue.pointer}: ${issue.detail}`).join('; ')
153
+ : 'Request validation failed.',
154
+ errors: issues,
155
+ };
156
+ }
157
+ function refusalFromTenancyError(exception) {
158
+ if (exception instanceof oidc_guard_1.TenantClaimError) {
159
+ return {
160
+ status: common_1.HttpStatus.UNAUTHORIZED,
161
+ code: exception.code.toUpperCase(),
162
+ title: titleForCode(exception.code.toUpperCase()),
163
+ detail: exception.message,
164
+ };
165
+ }
166
+ const supplied = exception.code === oidc_guard_1.TenantAccessErrorCode.SuppliedTenantMismatch;
167
+ return {
168
+ status: supplied ? common_1.HttpStatus.BAD_REQUEST : common_1.HttpStatus.NOT_FOUND,
169
+ code: exception.code.toUpperCase(),
170
+ title: titleForCode(exception.code.toUpperCase()),
171
+ detail: exception.message,
172
+ extensions: {
173
+ dimension: exception.dimension,
174
+ resourceKind: exception.resourceKind,
175
+ },
176
+ };
177
+ }
178
+ function refusalFromDataStoreError(exception) {
179
+ if (exception.code === 'P2025') {
180
+ return {
181
+ status: common_1.HttpStatus.NOT_FOUND,
182
+ code: 'RECORD_NOT_FOUND',
183
+ title: titleForCode('RECORD_NOT_FOUND'),
184
+ detail: 'Record not found',
185
+ };
186
+ }
187
+ if (exception.code === 'P2002') {
188
+ const target = (0, unique_constraint_target_1.readUniqueConstraintTarget)(exception.meta);
189
+ const message = `Unique constraint violation on ${(0, unique_constraint_target_1.describeUniqueConstraintTarget)(target)}`;
190
+ return {
191
+ status: common_1.HttpStatus.CONFLICT,
192
+ code: 'UNIQUE_CONSTRAINT_VIOLATION',
193
+ title: titleForCode('UNIQUE_CONSTRAINT_VIOLATION'),
194
+ detail: message,
195
+ extensions: {
196
+ constraintFields: target.fields,
197
+ constraintName: target.constraintName,
198
+ model: target.modelName,
199
+ },
200
+ };
201
+ }
202
+ if (exception.code === 'P2003') {
203
+ return {
204
+ status: common_1.HttpStatus.BAD_REQUEST,
205
+ code: 'FOREIGN_KEY_CONSTRAINT_VIOLATION',
206
+ title: titleForCode('FOREIGN_KEY_CONSTRAINT_VIOLATION'),
207
+ detail: 'Foreign key constraint violation',
208
+ };
209
+ }
210
+ return {
211
+ status: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
212
+ code: 'DATABASE_ERROR',
213
+ title: titleForCode('DATABASE_ERROR'),
214
+ detail: 'Database error',
215
+ };
216
+ }
217
+ function problemDetailsFor(refusal, context) {
218
+ return (0, http_1.buildProblemDetails)({
219
+ code: refusal.code,
220
+ title: refusal.title,
221
+ status: refusal.status,
222
+ detail: refusal.detail,
223
+ ...(context?.instance === undefined ? {} : { instance: context.instance }),
224
+ ...(context?.traceId === undefined ? {} : { traceId: context.traceId }),
225
+ ...(refusal.errors === undefined ? {} : { errors: refusal.errors }),
226
+ ...(refusal.extensions === undefined
227
+ ? {}
228
+ : { extensions: refusal.extensions }),
229
+ });
230
+ }
231
+ //# sourceMappingURL=refusal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusal.js","sourceRoot":"","sources":["../../src/nestjs/refusal.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export declare class RequestContextMiddleware implements NestMiddleware {
18
18
  private extractBearerToken;
19
19
  private decodeJwtPayload;
20
20
  private assertOrgHeaderGrammar;
21
+ private assertProjectGrammar;
21
22
  private assertOrgClaimMatchesHeader;
22
23
  private resolveAndRecordOrgAuthority;
23
24
  private resolveActorId;
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.middleware.d.ts","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA0CzD,UAAU,wBAAwB;IAChC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,kBAAmB,SAAQ,wBAAwB;IAC3D,CAAC,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC;CACpC;AAED,qBACa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IAEpE,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IA4JnE,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,gBAAgB;IA6ExB,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,4BAA4B;IAkDpC,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,sBAAsB;CAK/B"}
1
+ {"version":3,"file":"request-context.middleware.d.ts","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA0CzD,UAAU,wBAAwB;IAChC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,UAAU,kBAAmB,SAAQ,wBAAwB;IAC3D,CAAC,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC;CACpC;AAED,qBACa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;IAEpE,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;IAoLnE,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,gBAAgB;IA+ExB,OAAO,CAAC,sBAAsB;IA+D9B,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,2BAA2B;IAsDnC,OAAO,CAAC,4BAA4B;IA8DpC,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,sBAAsB;CAK/B"}
@@ -26,8 +26,8 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
26
26
  const orgHeaderName = org_claim_1.OrgHeaderName.Canonical;
27
27
  const requestUrl = req.originalUrl ?? req.url ?? '';
28
28
  const requestMethod = req.method ?? '';
29
- const projectId = this.readHeader(req, 'X-Project-Id') ??
30
- this.extractProjectIdFromPath(requestUrl);
29
+ const projectHeaderValue = this.readHeader(req, 'X-Project-Id');
30
+ const projectId = projectHeaderValue ?? this.extractProjectIdFromPath(requestUrl);
31
31
  const pipelineRunId = this.readHeader(req, 'X-Pipeline-Run-Id') ?? undefined;
32
32
  const pipelinePhaseKey = this.readHeader(req, 'X-Pipeline-Phase-Key') ?? undefined;
33
33
  const approvalModeOverride = this.parseApprovalMode(this.readHeader(req, 'X-Approval-Mode-Override'));
@@ -45,6 +45,7 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
45
45
  throw new common_1.BadRequestException(`Missing required header: ${org_claim_1.OrgHeaderName.Canonical}`);
46
46
  }
47
47
  this.assertOrgHeaderGrammar(orgId);
48
+ this.assertProjectGrammar(projectId, projectHeaderValue === undefined ? 'url' : 'header');
48
49
  const resolvedOrgId = orgId ?? '';
49
50
  this.assertOrgClaimMatchesHeader(claims, resolvedOrgId, orgHeaderName);
50
51
  const orgAuthority = this.resolveAndRecordOrgAuthority(claims, resolvedOrgId, { tokenClass, subjectKind, clientId, delegated: actorChain.length > 0 }, `${requestMethod} ${requestUrl}`, correlationId);
@@ -140,6 +141,22 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
140
141
  `start alphanumeric, then alphanumerics plus "_", "." or "-". No "/", ` +
141
142
  `no whitespace, no "@".`);
142
143
  }
144
+ assertProjectGrammar(projectId, source) {
145
+ if (projectId === undefined || projectId.length === 0) {
146
+ return;
147
+ }
148
+ if (space_1.SPACE_SEGMENT_ID_PATTERN.test(projectId)) {
149
+ return;
150
+ }
151
+ const shown = projectId.length > 64 ? `${projectId.slice(0, 64)}…` : projectId;
152
+ const origin = source === 'header'
153
+ ? 'the X-Project-Id header'
154
+ : 'the /projects/<id> URL path segment';
155
+ throw new common_1.BadRequestException(`Invalid project id from ${origin}: "${shown}" is not a legal Space ` +
156
+ `path segment. It must match ${space_1.SPACE_SEGMENT_ID_PATTERN} — start ` +
157
+ `alphanumeric, then alphanumerics plus "_", "." or "-". No "/", no ` +
158
+ `whitespace, no "@".`);
159
+ }
143
160
  assertOrgClaimMatchesHeader(claims, headerValue, headerName) {
144
161
  const resolved = (0, org_claim_1.resolveOrgClaim)(claims);
145
162
  if (!resolved) {
@@ -158,21 +175,35 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
158
175
  }
159
176
  }
160
177
  resolveAndRecordOrgAuthority(claims, resolvedOrgId, facts, route, correlationId) {
161
- const verdict = (0, org_authority_1.resolveOrgAuthority)(claims, resolvedOrgId);
162
- if (!(0, org_authority_1.orgAuthorityRequiresProof)(verdict)) {
163
- return verdict;
164
- }
165
- const mode = (0, org_authority_1.resolveOrgAuthorityMode)();
178
+ const verdict = (0, org_authority_1.resolveOrgAuthority)(claims, resolvedOrgId, {
179
+ subjectKind: facts.subjectKind,
180
+ delegated: facts.delegated,
181
+ });
166
182
  const callerFacts = {
167
183
  clientId: facts.clientId ?? org_authority_observations_1.UNKNOWN_CLIENT_ID,
168
184
  tokenClass: facts.tokenClass,
169
185
  subjectKind: facts.subjectKind,
170
186
  delegated: facts.delegated,
171
187
  };
188
+ if (verdict.source === org_authority_1.OrgAuthoritySource.ServiceRelayedContext) {
189
+ if ((0, org_authority_observations_1.recordServiceRelayedOrgAuthority)(callerFacts)) {
190
+ this.logger.log({
191
+ message: 'ORG_AUTHORITY_SERVICE_RELAY',
192
+ source: verdict.source,
193
+ orgId: verdict.assertedOrgId,
194
+ ...callerFacts,
195
+ route,
196
+ correlationId,
197
+ });
198
+ }
199
+ return verdict;
200
+ }
201
+ if (!(0, org_authority_1.orgAuthorityRequiresProof)(verdict)) {
202
+ return verdict;
203
+ }
172
204
  if ((0, org_authority_observations_1.recordUnprovenOrgAuthority)(callerFacts)) {
173
205
  this.logger.warn({
174
206
  message: 'ORG_AUTHORITY_UNPROVEN',
175
- mode,
176
207
  source: verdict.source,
177
208
  orgId: verdict.assertedOrgId,
178
209
  ...callerFacts,
@@ -180,16 +211,13 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
180
211
  correlationId,
181
212
  });
182
213
  }
183
- if (mode === org_authority_1.OrgAuthorityMode.Enforce) {
184
- throw new common_1.ForbiddenException({
185
- code: 'ORG_AUTHORITY_UNPROVEN',
186
- message: `The caller asserted ${org_claim_1.OrgHeaderName.Canonical}=` +
187
- `"${verdict.assertedOrgId}" but the access token carries neither an ` +
188
- `${org_claim_1.OrgClaimKey.Canonical} claim for that org nor an org_roles ` +
189
- `membership in it. A tenant cannot be named by header alone.`,
190
- });
191
- }
192
- return verdict;
214
+ throw new common_1.ForbiddenException({
215
+ code: 'ORG_AUTHORITY_UNPROVEN',
216
+ message: `The caller asserted ${org_claim_1.OrgHeaderName.Canonical}=` +
217
+ `"${verdict.assertedOrgId}" but the access token carries neither an ` +
218
+ `${org_claim_1.OrgClaimKey.Canonical} claim for that org nor an org_roles ` +
219
+ `membership in it. A tenant cannot be named by header alone.`,
220
+ });
193
221
  }
194
222
  resolveActorId(claims) {
195
223
  const actorId = (0, actor_classification_1.asNonEmptyString)(claims.sub);
@@ -199,7 +227,8 @@ let RequestContextMiddleware = RequestContextMiddleware_1 = class RequestContext
199
227
  return actorId;
200
228
  }
201
229
  extractProjectIdFromPath(path) {
202
- const match = path.match(/^\/projects\/([^/]+)/);
230
+ const pathOnly = path.split('?')[0]?.split('#')[0] ?? '';
231
+ const match = pathOnly.match(/^\/projects\/([^/]+)/);
203
232
  return match?.[1];
204
233
  }
205
234
  parseApprovalMode(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.middleware.js","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-context.middleware.js","sourceRoot":"","sources":["../../src/nestjs/request-context.middleware.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export declare function ApiDataArrayResponse<TModel extends Type<unknown>>(model
5
5
  export declare function ApiCreatedDataResponse<TModel extends Type<unknown>>(model: TModel): MethodDecorator;
6
6
  export declare function ApiAcceptedDataResponse<TModel extends Type<unknown>>(model: TModel): MethodDecorator;
7
7
  export declare function ApiPaginatedResponse<TModel extends Type<unknown>>(model: TModel): MethodDecorator;
8
+ export declare function ApiProblemResponse(status: number, description: string): MethodDecorator;
8
9
  export declare function ApiStandardErrors(): MethodDecorator;
9
10
  //# sourceMappingURL=swagger.decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.decorators.d.ts","sourceRoot":"","sources":["../../src/nestjs/swagger.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAkBvD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAErE;AAuGD,wBAAgB,eAAe,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAC1D,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAC/D,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EACjE,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAaD,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAClE,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAC/D,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAED,wBAAgB,iBAAiB,IAAI,eAAe,CASnD"}
1
+ {"version":3,"file":"swagger.decorators.d.ts","sourceRoot":"","sources":["../../src/nestjs/swagger.decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAsBvD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAErE;AAuGD,wBAAgB,eAAe,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAC1D,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAC/D,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EACjE,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAaD,wBAAgB,uBAAuB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAClE,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,EAC/D,KAAK,EAAE,MAAM,GACZ,eAAe,CAMjB;AAiBD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,eAAe,CAajB;AAiBD,wBAAgB,iBAAiB,IAAI,eAAe,CAiBnD"}
@@ -15,10 +15,12 @@ exports.ApiDataArrayResponse = ApiDataArrayResponse;
15
15
  exports.ApiCreatedDataResponse = ApiCreatedDataResponse;
16
16
  exports.ApiAcceptedDataResponse = ApiAcceptedDataResponse;
17
17
  exports.ApiPaginatedResponse = ApiPaginatedResponse;
18
+ exports.ApiProblemResponse = ApiProblemResponse;
18
19
  exports.ApiStandardErrors = ApiStandardErrors;
19
20
  const common_1 = require("@nestjs/common");
20
21
  const swagger_1 = require("@nestjs/swagger");
21
- const error_response_dto_1 = require("./error-response.dto");
22
+ const http_1 = require("@xemahq/kernel-contracts/http");
23
+ const problem_details_dto_1 = require("./problem-details.dto");
22
24
  function ApiStandardOperation(summary) {
23
25
  return (0, common_1.applyDecorators)((0, swagger_1.ApiOperation)({ summary }));
24
26
  }
@@ -130,7 +132,25 @@ function ApiPaginatedResponse(model) {
130
132
  const envelope = getPaginatedEnvelope(model);
131
133
  return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)(model, PaginationMeta, envelope), (0, swagger_1.ApiOkResponse)({ type: envelope }));
132
134
  }
135
+ function ApiProblemResponse(status, description) {
136
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)(problem_details_dto_1.ProblemDetailsDto, problem_details_dto_1.ProblemFieldIssueDto), (0, swagger_1.ApiResponse)({
137
+ status,
138
+ description,
139
+ content: {
140
+ [http_1.PROBLEM_DETAILS_CONTENT_TYPE]: {
141
+ schema: { $ref: (0, swagger_1.getSchemaPath)(problem_details_dto_1.ProblemDetailsDto) },
142
+ },
143
+ },
144
+ }));
145
+ }
133
146
  function ApiStandardErrors() {
134
- return (0, common_1.applyDecorators)((0, swagger_1.ApiBadRequestResponse)({ type: error_response_dto_1.ErrorResponseDto }), (0, swagger_1.ApiUnauthorizedResponse)({ type: error_response_dto_1.ErrorResponseDto }), (0, swagger_1.ApiForbiddenResponse)({ type: error_response_dto_1.ErrorResponseDto }), (0, swagger_1.ApiNotFoundResponse)({ type: error_response_dto_1.ErrorResponseDto }), (0, swagger_1.ApiConflictResponse)({ type: error_response_dto_1.ErrorResponseDto }), (0, swagger_1.ApiInternalServerErrorResponse)({ type: error_response_dto_1.ErrorResponseDto }));
147
+ const problem = {
148
+ content: {
149
+ [http_1.PROBLEM_DETAILS_CONTENT_TYPE]: {
150
+ schema: { $ref: (0, swagger_1.getSchemaPath)(problem_details_dto_1.ProblemDetailsDto) },
151
+ },
152
+ },
153
+ };
154
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)(problem_details_dto_1.ProblemDetailsDto, problem_details_dto_1.ProblemFieldIssueDto), (0, swagger_1.ApiBadRequestResponse)(problem), (0, swagger_1.ApiUnauthorizedResponse)(problem), (0, swagger_1.ApiForbiddenResponse)(problem), (0, swagger_1.ApiNotFoundResponse)(problem), (0, swagger_1.ApiConflictResponse)(problem), (0, swagger_1.ApiInternalServerErrorResponse)(problem));
135
155
  }
136
156
  //# sourceMappingURL=swagger.decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.decorators.js","sourceRoot":"","sources":["../../src/nestjs/swagger.decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swagger.decorators.js","sourceRoot":"","sources":["../../src/nestjs/swagger.decorators.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/platform-common",
3
- "version": "0.28.2",
3
+ "version": "0.30.0",
4
4
  "description": "Shared NestJS building blocks for Xema services — auth guards, response redaction, CORS configuration, and crypto helpers.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
@@ -18,7 +18,9 @@
18
18
  "main": "dist/index.js",
19
19
  "types": "dist/index.d.ts",
20
20
  "files": [
21
- "dist"
21
+ "dist",
22
+ "prisma-url.js",
23
+ "prisma-url.d.ts"
22
24
  ],
23
25
  "peerDependencies": {
24
26
  "@nestjs/common": ">=10",
@@ -63,7 +65,7 @@
63
65
  "rxjs": "7.8.2",
64
66
  "ts-jest": "^29.4.9",
65
67
  "typescript": "5.9.3",
66
- "@xemahq/kernel-contracts": "^33.3.0"
68
+ "@xemahq/kernel-contracts": "^37.0.0"
67
69
  },
68
70
  "exports": {
69
71
  ".": {
@@ -71,6 +73,10 @@
71
73
  "xema-source": "./src/index.ts",
72
74
  "default": "./dist/index.js"
73
75
  },
76
+ "./prisma-url": {
77
+ "types": "./prisma-url.d.ts",
78
+ "default": "./prisma-url.js"
79
+ },
74
80
  "./dist/*": {
75
81
  "types": "./dist/*.d.ts",
76
82
  "default": "./dist/*.js"
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Types for the build-free database-URL composition in `./prisma-url.js`.
3
+ *
4
+ * Hand-written rather than emitted, because the module it describes is
5
+ * committed rather than built — see that file's header for why it must be
6
+ * resolvable with no `dist/` present.
7
+ */
8
+
9
+ /** Discrete connection parts, mirroring the standard `DB_*` env contract. */
10
+ export interface BiomeDatabaseUrlParts {
11
+ readonly user?: string | undefined;
12
+ readonly password?: string | undefined;
13
+ readonly host?: string | undefined;
14
+ readonly port?: string | undefined;
15
+ readonly database?: string | undefined;
16
+ /** Per-biome schema for the shared `xema_biomes` DB; omit for dedicated DBs. */
17
+ readonly schema?: string | undefined;
18
+ /** Pre-formed SSL query params (e.g. `sslmode=require&sslrootcert=...`). */
19
+ readonly sslParams?: string | undefined;
20
+ }
21
+
22
+ /**
23
+ * Compose a Postgres connection URL from discrete parts, adding `?schema=` when
24
+ * a per-biome schema is supplied. Returns `null` when any required part is
25
+ * missing — the caller decides whether that is fatal (it is at runtime; it is
26
+ * not for `prisma generate`, which never reads the URL).
27
+ */
28
+ export declare function composeBiomeDatabaseUrl(
29
+ parts: BiomeDatabaseUrlParts,
30
+ ): string | null;
31
+
32
+ /**
33
+ * Convenience over {@link composeBiomeDatabaseUrl} reading the standard `DB_*`
34
+ * env contract. Pass a custom bag for tests; defaults to `process.env`.
35
+ */
36
+ export declare function composeBiomeDatabaseUrlFromEnv(
37
+ env?: NodeJS.ProcessEnv,
38
+ ): string | null;