@ya-accelerators/web-backend-framework 0.0.99 → 0.0.101
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/@types/express.d.ts +0 -4
- package/dist/connector/google-auth/index.js +0 -30
- package/dist/connector/google-auth/index.js.map +1 -1
- package/dist/constants.d.ts +7 -0
- package/dist/constants.js +71 -4
- package/dist/constants.js.map +1 -1
- package/dist/context/audit/index.js.map +1 -1
- package/dist/context/request/index.js +0 -15
- package/dist/context/request/index.js.map +1 -1
- package/dist/coordination/lock/index.d.ts +0 -8
- package/dist/coordination/lock/index.js +0 -29
- package/dist/coordination/lock/index.js.map +1 -1
- package/dist/coordination/rate-limit/index.d.ts +0 -5
- package/dist/coordination/rate-limit/index.js +0 -23
- package/dist/coordination/rate-limit/index.js.map +1 -1
- package/dist/coordination/throttle/index.d.ts +0 -13
- package/dist/coordination/throttle/index.js +0 -13
- package/dist/coordination/throttle/index.js.map +1 -1
- package/dist/env.d.ts +1 -1
- package/dist/env.js +5 -15
- package/dist/env.js.map +1 -1
- package/dist/internal/federation/index.d.ts +1 -1
- package/dist/internal/federation/index.js +0 -20
- package/dist/internal/federation/index.js.map +1 -1
- package/dist/logger/index.js +0 -18
- package/dist/logger/index.js.map +1 -1
- package/dist/repository/prisma/index.js +5 -7
- package/dist/repository/prisma/index.js.map +1 -1
- package/dist/repository/prisma/lifecycle.js +2 -26
- package/dist/repository/prisma/lifecycle.js.map +1 -1
- package/dist/repository/prisma/rds-log-record.d.ts +10 -0
- package/dist/repository/prisma/rds-log-record.js +20 -0
- package/dist/repository/prisma/rds-log-record.js.map +1 -0
- package/dist/repository/redis/index.js +10 -9
- package/dist/repository/redis/index.js.map +1 -1
- package/dist/repository/s3/index.js +16 -28
- package/dist/repository/s3/index.js.map +1 -1
- package/dist/server/express/index.js +18 -53
- package/dist/server/express/index.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/trpc/declaration/index.d.ts +38 -0
- package/dist/server/trpc/declaration/index.js +2 -0
- package/dist/server/trpc/declaration/index.js.map +1 -0
- package/dist/server/trpc/index.d.ts +18 -17
- package/dist/server/trpc/index.js +36 -44
- package/dist/server/trpc/index.js.map +1 -1
- package/dist/server/trpc/schema/index.js +0 -10
- package/dist/server/trpc/schema/index.js.map +1 -1
- package/dist/server/uploads/index.js +8 -9
- package/dist/server/uploads/index.js.map +1 -1
- package/dist/util/index.js +88 -74
- package/dist/util/index.js.map +1 -1
- package/package.json +13 -9
|
@@ -1,31 +1,17 @@
|
|
|
1
1
|
import cors from 'cors';
|
|
2
2
|
import express from 'express';
|
|
3
3
|
import { createProxyMiddleware } from 'http-proxy-middleware';
|
|
4
|
+
import { constants } from '../../constants.js';
|
|
4
5
|
import { requestContextStorage, resolveOutboundHeaders } from '../../context/request/index.js';
|
|
5
6
|
import { defaultEnv } from '../../env.js';
|
|
6
7
|
import { logger } from '../../logger/index.js';
|
|
7
8
|
import { Util } from '../../util/index.js';
|
|
8
9
|
import { claimUploadToken, storeUpload } from '../uploads/index.js';
|
|
9
10
|
let processErrorHandlersRegistered = false;
|
|
10
|
-
// Auto-forwarded outbound `fetch` headers are an ALLOW-list of tracing/correlation headers only — never
|
|
11
|
-
// credentials (`authorization` / `cookie` / `x-api-key` …), client-context quasi-identifiers
|
|
12
|
-
// (`x-forwarded-for` / `user-agent` / `referer` — GDPR Art. 5(1)(c) data minimisation / Art. 44 transfer),
|
|
13
|
-
// content negotiation (`content-type` / `accept*` / `if-*` / `range`), or `host` / `origin`. Forwarding
|
|
14
|
-
// any of those in-mesh is opt-in per call via `runWithRequestHeaders`. An allow-list, not a deny-list, so
|
|
15
|
-
// a not-yet-enumerated header — a new fork `x-*-key`, a CSRF token, `x-hub-signature` — is withheld by
|
|
16
|
-
// default rather than leaked to whatever host the outbound `fetch` targets. `traceparent` / `tracestate`
|
|
17
|
-
// are the W3C Trace Context pair; `x-request-id` is the framework's own correlation id.
|
|
18
11
|
const AUTO_FORWARD_ALLOW_LIST = new Set(['x-request-id', 'traceparent', 'tracestate']);
|
|
19
|
-
// Hard ceiling on the raw `/_uploads` body. The token is validated (single-use `getdel`) BEFORE this raw
|
|
20
|
-
// parser runs, so a request with no valid token is rejected without buffering; this bounds only a
|
|
21
|
-
// token-holder's single request. NOT the per-procedure size limit — that is `FileSchema`'s `maxSize`,
|
|
22
|
-
// enforced when the mutation validates its input.
|
|
23
12
|
const UPLOAD_MAX_BYTES = 512 * 1024 * 1024;
|
|
24
13
|
export const createApp = (params) => {
|
|
25
14
|
const { customRoutes, uploadsEnabled = false, middlewares = [], proxyTarget, nonForwardableHeaders: nonForwardableHeadersParam = [], } = params;
|
|
26
|
-
// Route process-level failures through `logger` (structured log first) while preserving the default
|
|
27
|
-
// crash behavior — exit non-zero so the orchestrator restarts a clean container. Guarded so repeated
|
|
28
|
-
// createApp calls register the handlers once.
|
|
29
15
|
if (!processErrorHandlersRegistered) {
|
|
30
16
|
processErrorHandlersRegistered = true;
|
|
31
17
|
process.on('uncaughtException', (error) => {
|
|
@@ -40,15 +26,9 @@ export const createApp = (params) => {
|
|
|
40
26
|
process.exit(1);
|
|
41
27
|
});
|
|
42
28
|
}
|
|
43
|
-
// Per-app additional deny-set subtracted from the auto-forward allow-list (lowercased so it matches
|
|
44
|
-
// Node's lowercased inbound header keys). Carried into the request store below — NOT a module-level
|
|
45
|
-
// `let` — so a second `createApp` in the same process cannot clobber the first app's config.
|
|
46
29
|
const appNonForwardableHeaders = new Set(nonForwardableHeadersParam.map((h) => h.toLowerCase()));
|
|
47
30
|
const app = express();
|
|
48
31
|
app.use(cors({
|
|
49
|
-
// A single configured origin is passed as a bare string, keeping the response headers byte-identical
|
|
50
|
-
// to the pre-multi-origin behaviour: `cors` then always emits that origin, whereas the array form
|
|
51
|
-
// emits `Access-Control-Allow-Origin` only when the request's Origin matches.
|
|
52
32
|
origin: defaultEnv.CORS_ORIGIN.length === 1 ? defaultEnv.CORS_ORIGIN[0] : defaultEnv.CORS_ORIGIN,
|
|
53
33
|
optionsSuccessStatus: 204,
|
|
54
34
|
}));
|
|
@@ -62,9 +42,6 @@ export const createApp = (params) => {
|
|
|
62
42
|
}
|
|
63
43
|
next();
|
|
64
44
|
});
|
|
65
|
-
// Request-id generation + AsyncLocalStorage context FIRST — before /health, customRoutes, and the
|
|
66
|
-
// proxied routes below — so every downstream route runs inside the scope and its log records carry the
|
|
67
|
-
// `x-request-id` and the auto-injected request `path`.
|
|
68
45
|
app.use('', (req, res, next) => {
|
|
69
46
|
const requestId = Util.getHeaderValue(req.headers, 'x-request-id') ?? Util.createULID();
|
|
70
47
|
req.headers['x-request-id'] = requestId;
|
|
@@ -117,15 +94,9 @@ export const createApp = (params) => {
|
|
|
117
94
|
res.json(healthChecks);
|
|
118
95
|
});
|
|
119
96
|
}
|
|
120
|
-
// Mounted before the body-parsers so a file sent as `application/json` isn't consumed by `express.json`.
|
|
121
97
|
if (uploadsEnabled) {
|
|
122
|
-
app.post('/_uploads',
|
|
123
|
-
// Validate the single-use token BEFORE `express.raw` buffers the body, so a request with no valid
|
|
124
|
-
// token is rejected without buffering up to UPLOAD_MAX_BYTES into memory.
|
|
125
|
-
async (req, res, next) => {
|
|
98
|
+
app.post('/_uploads', async (req, res, next) => {
|
|
126
99
|
try {
|
|
127
|
-
// Token arrives as `Authorization: Bearer <token>`, not a query param — a query string is logged
|
|
128
|
-
// verbatim by proxies / CDNs / access logs, which would leak the single-use replayable token.
|
|
129
100
|
const authorization = Util.getHeaderValue(req.headers, 'authorization');
|
|
130
101
|
const token = authorization?.startsWith('Bearer ') ? authorization.slice('Bearer '.length) : undefined;
|
|
131
102
|
if (token === undefined) {
|
|
@@ -149,8 +120,6 @@ export const createApp = (params) => {
|
|
|
149
120
|
res.status(400).json({ error: 'invalid upload' });
|
|
150
121
|
return;
|
|
151
122
|
}
|
|
152
|
-
// Filename arrives percent-encoded in `x-upload-filename` (headers are ASCII-only, and it stays out
|
|
153
|
-
// of the query string / request-line logs since a filename can be a direct identifier). Decode it.
|
|
154
123
|
const encodedName = Util.getHeaderValue(req.headers, 'x-upload-filename');
|
|
155
124
|
let name = 'file';
|
|
156
125
|
if (encodedName !== undefined) {
|
|
@@ -158,7 +127,17 @@ export const createApp = (params) => {
|
|
|
158
127
|
name = decodeURIComponent(encodedName);
|
|
159
128
|
}
|
|
160
129
|
catch {
|
|
161
|
-
|
|
130
|
+
res.status(400).json({ error: 'invalid upload' });
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// A filename can be a direct identifier, so the rejection says only that the upload is invalid
|
|
134
|
+
// and never names the value it refused — an error body is read by whatever logs it.
|
|
135
|
+
if (name.length > constants.UPLOAD_FILENAME_MAX_LENGTH ||
|
|
136
|
+
/[/\\]/.test(name) ||
|
|
137
|
+
name === '.' ||
|
|
138
|
+
name === '..') {
|
|
139
|
+
res.status(400).json({ error: 'invalid upload' });
|
|
140
|
+
return;
|
|
162
141
|
}
|
|
163
142
|
}
|
|
164
143
|
const contentType = Util.getHeaderValue(req.headers, 'content-type') ?? 'application/octet-stream';
|
|
@@ -175,10 +154,6 @@ export const createApp = (params) => {
|
|
|
175
154
|
res.status(403).json({ error: 'file upload is not configured for this service' });
|
|
176
155
|
});
|
|
177
156
|
}
|
|
178
|
-
// Body parsing is applied before customRoutes so handlers can use `req.body`
|
|
179
|
-
// directly. The `verify` callback stashes the original bytes on `req.rawBody`
|
|
180
|
-
// for handlers that need to verify a signature against the unparsed payload
|
|
181
|
-
// (e.g. Stripe webhooks).
|
|
182
157
|
app.use(express.json({
|
|
183
158
|
limit: '10mb',
|
|
184
159
|
verify: (req, _res, buf) => {
|
|
@@ -193,16 +168,12 @@ export const createApp = (params) => {
|
|
|
193
168
|
middlewares.forEach((middleware) => app.use('', middleware));
|
|
194
169
|
proxyTarget?.targets.forEach((x) => {
|
|
195
170
|
const onHandlers = {
|
|
196
|
-
proxyRes: (proxyRes
|
|
171
|
+
proxyRes: (proxyRes) => {
|
|
197
172
|
const body = [];
|
|
198
173
|
proxyRes.on('data', (chunk) => body.push(chunk));
|
|
199
174
|
proxyRes.on('end', () => {
|
|
200
175
|
if ((proxyRes.statusCode ?? 500) >= 400) {
|
|
201
176
|
const message = Buffer.concat(body).toString();
|
|
202
|
-
// Suppress the benign, expected downstream responses (an unauthenticated "who am I" 401,
|
|
203
|
-
// an empty-update poll). `.me"` matches a tRPC procedure PATH ending in `.me` in the JSON
|
|
204
|
-
// error body (e.g. `"path":"authentication.me"`) — not the bare `.me` substring, which also
|
|
205
|
-
// matched `.metrics` / `.member` / any host in a URL and silently dropped real warnings.
|
|
206
177
|
if (!message.includes('UNAUTHORIZED') &&
|
|
207
178
|
!message.includes('NO_UPDATES_FOUND') &&
|
|
208
179
|
!message.includes('.me"') &&
|
|
@@ -223,7 +194,7 @@ export const createApp = (params) => {
|
|
|
223
194
|
catch {
|
|
224
195
|
error = undefined;
|
|
225
196
|
}
|
|
226
|
-
logger.warn('proxy', {
|
|
197
|
+
logger.warn('proxy', { status: proxyRes.statusCode, error });
|
|
227
198
|
}
|
|
228
199
|
}
|
|
229
200
|
proxyTarget.onEnd?.(proxyRes);
|
|
@@ -231,8 +202,8 @@ export const createApp = (params) => {
|
|
|
231
202
|
},
|
|
232
203
|
// Fired when the downstream is unreachable (connection refused, timeout, DNS, etc.),
|
|
233
204
|
// so proxyRes never fires. Log it and return a clean 502 instead of leaking the raw error.
|
|
234
|
-
error: (error,
|
|
235
|
-
logger.error('proxy', {
|
|
205
|
+
error: (error, _req, res) => {
|
|
206
|
+
logger.error('proxy', { message: error.message, stack: error.stack });
|
|
236
207
|
if ('headersSent' in res && !res.headersSent) {
|
|
237
208
|
res.status(502).json({ error: 'Bad Gateway' });
|
|
238
209
|
}
|
|
@@ -246,11 +217,8 @@ export const createApp = (params) => {
|
|
|
246
217
|
on: onHandlers,
|
|
247
218
|
}));
|
|
248
219
|
});
|
|
249
|
-
// Express error-handling middleware (4-arg signature). Catches errors from customRoutes
|
|
250
|
-
// and other non-tRPC paths, logs them, then delegates to Express's default handler for
|
|
251
|
-
// the response. tRPC errors are already handled by its own onError before reaching here.
|
|
252
220
|
app.use((err, req, _res, next) => {
|
|
253
|
-
logger.error('express', {
|
|
221
|
+
logger.error('express', { method: req.method, message: err.message, stack: err.stack });
|
|
254
222
|
next(err);
|
|
255
223
|
});
|
|
256
224
|
const server = app.listen(defaultEnv.PORT, () => logger.banner(`[${defaultEnv.SERVICE}] Listening on port ${defaultEnv.PORT} on ${defaultEnv.NODE_ENV}`));
|
|
@@ -290,9 +258,6 @@ const patchFetchWithRequestHeaders = () => {
|
|
|
290
258
|
allowList: AUTO_FORWARD_ALLOW_LIST,
|
|
291
259
|
targetHost: requestHost(input),
|
|
292
260
|
init,
|
|
293
|
-
// When `input` is a `Request`, passing a rebuilt `headers` in init drops its own headers — carry
|
|
294
|
-
// them so they survive (init.headers still win over them). `globalThis.Request` (the fetch Request)
|
|
295
|
-
// because `Request` is a type-only import from express here.
|
|
296
261
|
...(input instanceof globalThis.Request ? { inputHeaders: input.headers } : {}),
|
|
297
262
|
});
|
|
298
263
|
return originalFetch(input, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/express/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/express/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as express from './express/index.ts';
|
|
2
2
|
import * as trpc from './trpc/index.ts';
|
|
3
3
|
import { consume } from './uploads/index.ts';
|
|
4
|
+
export * from './trpc/declaration/index.ts';
|
|
4
5
|
export * from './trpc/error/index.ts';
|
|
5
6
|
export * from './trpc/schema/index.ts';
|
|
6
7
|
export declare const server: {
|
package/dist/server/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as express from './express/index.js';
|
|
2
2
|
import * as trpc from './trpc/index.js';
|
|
3
3
|
import { consume } from './uploads/index.js';
|
|
4
|
+
export * from './trpc/declaration/index.js';
|
|
4
5
|
export * from './trpc/error/index.js';
|
|
5
6
|
export * from './trpc/schema/index.js';
|
|
6
7
|
export const server = {
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AAEtC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO;IACP,IAAI;IACJ,OAAO,EAAE,EAAE,OAAO,EAAE;CACrB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AAEtC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO;IACP,IAAI;IACJ,OAAO,EAAE,EAAE,OAAO,EAAE;CACrB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare namespace Auth {
|
|
2
|
+
type Tier<Name extends string> = {
|
|
3
|
+
readonly kind: 'tier';
|
|
4
|
+
readonly name: Name;
|
|
5
|
+
};
|
|
6
|
+
type Upstream<Reason extends string> = {
|
|
7
|
+
readonly kind: 'upstream';
|
|
8
|
+
readonly reason: Reason;
|
|
9
|
+
};
|
|
10
|
+
type None<Reason extends string> = {
|
|
11
|
+
readonly kind: 'auth-none';
|
|
12
|
+
readonly reason: Reason;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare namespace Ropa {
|
|
16
|
+
type Activity<Key extends string> = {
|
|
17
|
+
readonly kind: 'activity';
|
|
18
|
+
readonly key: Key;
|
|
19
|
+
};
|
|
20
|
+
type None<Reason extends string> = {
|
|
21
|
+
readonly kind: 'ropa-none';
|
|
22
|
+
readonly reason: Reason;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export type AuthDeclaration = Auth.Tier<string> | Auth.Upstream<string> | Auth.None<string>;
|
|
26
|
+
export type RopaDeclaration<Key extends string> = Ropa.Activity<Key> | Ropa.None<string>;
|
|
27
|
+
export type DeclarationRequired = {
|
|
28
|
+
readonly __declarationRequired: never;
|
|
29
|
+
};
|
|
30
|
+
type ParameterOf<Declaration> = Declaration extends Auth.Tier<infer Name> ? Name : Declaration extends Ropa.Activity<infer Key> ? Key : Declaration extends {
|
|
31
|
+
readonly reason: infer Reason;
|
|
32
|
+
} ? Reason : never;
|
|
33
|
+
type IsDeclared<Declaration> = [Declaration] extends [never] ? false : [ParameterOf<Declaration>] extends [never] ? false : string extends ParameterOf<Declaration> ? false : true;
|
|
34
|
+
export type DeclarationArgs<A, R> = IsDeclared<A> extends true ? (IsDeclared<R> extends true ? [] : [DeclarationRequired]) : [DeclarationRequired];
|
|
35
|
+
export type DeclarableProcedure<TProcedure, TRopaKey extends string> = {
|
|
36
|
+
declare<A extends AuthDeclaration = never, R extends RopaDeclaration<TRopaKey> = never>(...undeclared: DeclarationArgs<A, R>): TProcedure;
|
|
37
|
+
};
|
|
38
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/trpc/declaration/index.ts"],"names":[],"mappings":""}
|
|
@@ -2,6 +2,7 @@ import { type AnyTRPCProcedure, type AnyTRPCRouter } from '@trpc/server';
|
|
|
2
2
|
import * as trpcExpress from '@trpc/server/adapters/express';
|
|
3
3
|
import type express from 'express';
|
|
4
4
|
import superjson from 'superjson';
|
|
5
|
+
import type { DeclarableProcedure } from './declaration/index.ts';
|
|
5
6
|
declare const createRequestContext: (opts: trpcExpress.CreateExpressContextOptions) => {
|
|
6
7
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
7
8
|
ip: string | undefined;
|
|
@@ -13,14 +14,14 @@ type UploadProcedure = {
|
|
|
13
14
|
url: string;
|
|
14
15
|
}>) => AnyTRPCProcedure;
|
|
15
16
|
};
|
|
16
|
-
export declare function generator<TContext extends object = EmptyObject>(options?: {
|
|
17
|
+
export declare function generator<TContext extends object = EmptyObject, TRopaKey extends string = never>(options?: {
|
|
17
18
|
customRoutes?: (app: express.Express) => void;
|
|
18
19
|
resolveAuditActor?: (ctx: RequestContext & TContext) => Promise<{
|
|
19
20
|
actorUserId?: string;
|
|
20
21
|
}> | {
|
|
21
22
|
actorUserId?: string;
|
|
22
23
|
};
|
|
23
|
-
}): Generator<import("@trpc/server").TRPCRootObject<{
|
|
24
|
+
}): Generator<Omit<import("@trpc/server").TRPCRootObject<{
|
|
24
25
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
25
26
|
ip: string | undefined;
|
|
26
27
|
} & TContext extends infer T ? T extends {
|
|
@@ -48,7 +49,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
48
49
|
name: string;
|
|
49
50
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
50
51
|
path: string | undefined;
|
|
51
|
-
|
|
52
|
+
inputKeys: string[] | undefined;
|
|
52
53
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
53
54
|
message: string;
|
|
54
55
|
source?: {
|
|
@@ -74,7 +75,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
74
75
|
name: string;
|
|
75
76
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
76
77
|
path: string | undefined;
|
|
77
|
-
|
|
78
|
+
inputKeys: string[] | undefined;
|
|
78
79
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
79
80
|
message: string;
|
|
80
81
|
source?: {
|
|
@@ -85,14 +86,14 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
85
86
|
};
|
|
86
87
|
};
|
|
87
88
|
transformer: true;
|
|
88
|
-
}> & {
|
|
89
|
-
procedure: import("@trpc/server").TRPCProcedureBuilder<{
|
|
89
|
+
}>, "procedure"> & {
|
|
90
|
+
procedure: DeclarableProcedure<import("@trpc/server").TRPCProcedureBuilder<{
|
|
90
91
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
91
92
|
ip: string | undefined;
|
|
92
93
|
} & TContext extends infer T_1 ? T_1 extends {
|
|
93
94
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
94
95
|
ip: string | undefined;
|
|
95
|
-
} & TContext ? T_1 extends (...args: any[]) => object | Promise<object> ? import("@trpc/server/unstable-core-do-not-import").Unwrap<T_1> : T_1 : never : never, object, {}, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>;
|
|
96
|
+
} & TContext ? T_1 extends (...args: any[]) => object | Promise<object> ? import("@trpc/server/unstable-core-do-not-import").Unwrap<T_1> : T_1 : never : never, object, {}, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>, TRopaKey>;
|
|
96
97
|
router: <T_1 extends Parameters<import("@trpc/server").TRPCRouterBuilder<{
|
|
97
98
|
ctx: {
|
|
98
99
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
@@ -109,7 +110,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
109
110
|
name: string;
|
|
110
111
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
111
112
|
path: string | undefined;
|
|
112
|
-
|
|
113
|
+
inputKeys: string[] | undefined;
|
|
113
114
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
114
115
|
message: string;
|
|
115
116
|
source?: {
|
|
@@ -136,7 +137,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
136
137
|
name: string;
|
|
137
138
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
138
139
|
path: string | undefined;
|
|
139
|
-
|
|
140
|
+
inputKeys: string[] | undefined;
|
|
140
141
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
141
142
|
message: string;
|
|
142
143
|
source?: {
|
|
@@ -153,7 +154,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
153
154
|
};
|
|
154
155
|
}>>;
|
|
155
156
|
uploadProcedure: (procedure: UploadProcedure, bucket: string) => void;
|
|
156
|
-
}, import("@trpc/server").TRPCRootObject<{
|
|
157
|
+
}, Omit<import("@trpc/server").TRPCRootObject<{
|
|
157
158
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
158
159
|
ip: string | undefined;
|
|
159
160
|
} & TContext extends infer T ? T extends {
|
|
@@ -181,7 +182,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
181
182
|
name: string;
|
|
182
183
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
183
184
|
path: string | undefined;
|
|
184
|
-
|
|
185
|
+
inputKeys: string[] | undefined;
|
|
185
186
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
186
187
|
message: string;
|
|
187
188
|
source?: {
|
|
@@ -207,7 +208,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
207
208
|
name: string;
|
|
208
209
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
209
210
|
path: string | undefined;
|
|
210
|
-
|
|
211
|
+
inputKeys: string[] | undefined;
|
|
211
212
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
212
213
|
message: string;
|
|
213
214
|
source?: {
|
|
@@ -218,14 +219,14 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
218
219
|
};
|
|
219
220
|
};
|
|
220
221
|
transformer: true;
|
|
221
|
-
}> & {
|
|
222
|
-
procedure: import("@trpc/server").TRPCProcedureBuilder<{
|
|
222
|
+
}>, "procedure"> & {
|
|
223
|
+
procedure: DeclarableProcedure<import("@trpc/server").TRPCProcedureBuilder<{
|
|
223
224
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
224
225
|
ip: string | undefined;
|
|
225
226
|
} & TContext extends infer T_1 ? T_1 extends {
|
|
226
227
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
227
228
|
ip: string | undefined;
|
|
228
|
-
} & TContext ? T_1 extends (...args: any[]) => object | Promise<object> ? import("@trpc/server/unstable-core-do-not-import").Unwrap<T_1> : T_1 : never : never, object, {}, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>;
|
|
229
|
+
} & TContext ? T_1 extends (...args: any[]) => object | Promise<object> ? import("@trpc/server/unstable-core-do-not-import").Unwrap<T_1> : T_1 : never : never, object, {}, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>, TRopaKey>;
|
|
229
230
|
router: <T_1 extends Parameters<import("@trpc/server").TRPCRouterBuilder<{
|
|
230
231
|
ctx: {
|
|
231
232
|
requestHeaders: import("node:http").IncomingHttpHeaders;
|
|
@@ -242,7 +243,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
242
243
|
name: string;
|
|
243
244
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
244
245
|
path: string | undefined;
|
|
245
|
-
|
|
246
|
+
inputKeys: string[] | undefined;
|
|
246
247
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
247
248
|
message: string;
|
|
248
249
|
source?: {
|
|
@@ -269,7 +270,7 @@ export declare function generator<TContext extends object = EmptyObject>(options
|
|
|
269
270
|
name: string;
|
|
270
271
|
type: "mutation" | "query" | "subscription" | "unknown";
|
|
271
272
|
path: string | undefined;
|
|
272
|
-
|
|
273
|
+
inputKeys: string[] | undefined;
|
|
273
274
|
code: "BAD_GATEWAY" | "BAD_REQUEST" | "CLIENT_CLOSED_REQUEST" | "CONFLICT" | "FORBIDDEN" | "GATEWAY_TIMEOUT" | "INTERNAL_SERVER_ERROR" | "METHOD_NOT_SUPPORTED" | "NOT_FOUND" | "NOT_IMPLEMENTED" | "PARSE_ERROR" | "PAYLOAD_TOO_LARGE" | "PAYMENT_REQUIRED" | "PRECONDITION_FAILED" | "PRECONDITION_REQUIRED" | "SERVICE_UNAVAILABLE" | "TIMEOUT" | "TOO_MANY_REQUESTS" | "UNAUTHORIZED" | "UNPROCESSABLE_CONTENT" | "UNSUPPORTED_MEDIA_TYPE";
|
|
274
275
|
message: string;
|
|
275
276
|
source?: {
|
|
@@ -11,9 +11,6 @@ import { Util } from '../../util/index.js';
|
|
|
11
11
|
import { createApp } from '../express/index.js';
|
|
12
12
|
import { mint } from '../uploads/index.js';
|
|
13
13
|
import { throwForbiddenError } from './error/index.js';
|
|
14
|
-
// Cap the auto-propagated audit `reason` (a free-form, un-erasable `Event<Domain>Lifecycle.reason`
|
|
15
|
-
// `@db.Text` column) so a client cannot stuff it into an unbounded audit-log / PII-injection sink.
|
|
16
|
-
const MAX_AUDIT_REASON_LENGTH = 512;
|
|
17
14
|
const createRequestContext = (opts) => {
|
|
18
15
|
const requestHeaders = opts.req.headers;
|
|
19
16
|
return {
|
|
@@ -43,6 +40,11 @@ export function* generator(options = {}) {
|
|
|
43
40
|
// detail never reaches the client; it stays in the server-side `onError` log (and, in
|
|
44
41
|
// development only, the `source` block above).
|
|
45
42
|
const message = error.code === 'INTERNAL_SERVER_ERROR' && !isDevelopment ? 'Internal server error' : error.message;
|
|
43
|
+
// `inputKeys`, not the input itself. `Util.sanitize` redacts by KEY NAME, so echoing an arbitrary
|
|
44
|
+
// payload back in the error body carries every personal-data field the keyword list has not caught —
|
|
45
|
+
// and that list cannot be derived from the schema markers. The proxy already strips downstream error
|
|
46
|
+
// bodies to a structured summary for this exact reason; this is the same rule applied at the source.
|
|
47
|
+
// Which fields were present is what diagnoses a rejected call; their values are what must not travel.
|
|
46
48
|
return {
|
|
47
49
|
...shape,
|
|
48
50
|
message,
|
|
@@ -50,7 +52,7 @@ export function* generator(options = {}) {
|
|
|
50
52
|
name: defaultEnv.SERVICE,
|
|
51
53
|
type,
|
|
52
54
|
path,
|
|
53
|
-
|
|
55
|
+
inputKeys: typeof input === 'object' && input !== null ? Object.keys(input) : undefined,
|
|
54
56
|
code: error.code,
|
|
55
57
|
message,
|
|
56
58
|
...(source ? { source } : {}),
|
|
@@ -62,20 +64,7 @@ export function* generator(options = {}) {
|
|
|
62
64
|
const actor = resolveAuditActor
|
|
63
65
|
? await resolveAuditActor(opts.ctx)
|
|
64
66
|
: { actorUserId: undefined };
|
|
65
|
-
|
|
66
|
-
// `baseProcedure` runs BEFORE the `.input()` parser (tRPC parses input at its own position in the
|
|
67
|
-
// middleware chain), so only the raw pre-validation body is reachable here — never the Zod-validated
|
|
68
|
-
// input. Accept `reason` solely as a top-level string and cap its length. The cap bounds the audit
|
|
69
|
-
// column's SIZE only — it does NOT strip PII from the content; keeping `reason` free of subject
|
|
70
|
-
// identifiers is the caller's responsibility (coding-style.md § Pseudonymization: free-form text
|
|
71
|
-
// fields must not contain PII, callers strip before writing), and matters because this column is
|
|
72
|
-
// un-erasable (not a `/// PII:` field, so an `/// erase: anonymize` pass never nulls it). A
|
|
73
|
-
// procedure needing a longer / structured reason writes it explicitly.
|
|
74
|
-
const rawReason = rawInput && typeof rawInput === 'object' && 'reason' in rawInput && typeof rawInput.reason === 'string'
|
|
75
|
-
? rawInput.reason
|
|
76
|
-
: undefined;
|
|
77
|
-
const reason = rawReason === undefined ? undefined : rawReason.slice(0, MAX_AUDIT_REASON_LENGTH);
|
|
78
|
-
return runWithAuditActor({ actorUserId: actor.actorUserId, reason }, async () => {
|
|
67
|
+
return runWithAuditActor({ actorUserId: actor.actorUserId }, async () => {
|
|
79
68
|
return await runWithRequestPath(opts.path, async () => {
|
|
80
69
|
const startTime = Date.now();
|
|
81
70
|
const contextWithTiming = opts.ctx;
|
|
@@ -84,17 +73,14 @@ export function* generator(options = {}) {
|
|
|
84
73
|
if (typeof result === 'object' && result !== null && 'error' in result && result.error instanceof Error) {
|
|
85
74
|
throw result.error;
|
|
86
75
|
}
|
|
87
|
-
logger.debug('operation', {
|
|
88
|
-
type: opts.type,
|
|
89
|
-
...contextWithTiming,
|
|
90
|
-
input: rawInput,
|
|
91
|
-
duration: Date.now() - startTime,
|
|
92
|
-
result: 'data' in result ? result.data : result,
|
|
93
|
-
});
|
|
76
|
+
logger.debug('operation', { type: opts.type, duration: Date.now() - startTime });
|
|
94
77
|
return result;
|
|
95
78
|
});
|
|
96
79
|
});
|
|
97
80
|
});
|
|
81
|
+
const declarableProcedure = {
|
|
82
|
+
declare: () => baseProcedure,
|
|
83
|
+
};
|
|
98
84
|
let uploadProcedure;
|
|
99
85
|
let uploadBucket;
|
|
100
86
|
let routerBuilt = false;
|
|
@@ -107,14 +93,17 @@ export function* generator(options = {}) {
|
|
|
107
93
|
if ('file' in routes) {
|
|
108
94
|
throw new Error("router namespace 'file' is reserved by the framework upload procedure");
|
|
109
95
|
}
|
|
110
|
-
// `file.upload`'s gating procedure is frozen here at router-build time, so `uploadProcedure` MUST be
|
|
111
|
-
// set first. Flag the build so a later `trpc.uploadProcedure(...)` throws instead of silently leaving
|
|
112
|
-
// the mutation on the unauthenticated `baseProcedure`.
|
|
113
96
|
routerBuilt = true;
|
|
114
|
-
return baseRouter({
|
|
97
|
+
return baseRouter({
|
|
98
|
+
...routes,
|
|
99
|
+
file: {
|
|
100
|
+
upload: (uploadProcedure ??
|
|
101
|
+
declarableProcedure.declare()).mutation(uploadHandler),
|
|
102
|
+
},
|
|
103
|
+
});
|
|
115
104
|
};
|
|
116
105
|
const enhancedTrpc = tprc;
|
|
117
|
-
enhancedTrpc.procedure =
|
|
106
|
+
enhancedTrpc.procedure = declarableProcedure;
|
|
118
107
|
enhancedTrpc.router = wrappedRouter;
|
|
119
108
|
enhancedTrpc.uploadProcedure = (procedure, bucket) => {
|
|
120
109
|
if (routerBuilt) {
|
|
@@ -133,29 +122,32 @@ export function* generator(options = {}) {
|
|
|
133
122
|
createContext: (opts) => prisma.run(async () => createRequestContext(opts)),
|
|
134
123
|
onError: ({ error, type, path, input, ctx }) => {
|
|
135
124
|
const cause = error.cause;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
: undefined
|
|
125
|
+
// Only the downstream error's `source` (name / message / stack), never the whole `shape.data`
|
|
126
|
+
// envelope — that envelope carries the downstream `input` and `headers`, so logging it would
|
|
127
|
+
// reopen through the proxy hop exactly the payload this handler stopped emitting locally.
|
|
128
|
+
const nonEmptySource = (holder) => typeof holder === 'object' &&
|
|
129
|
+
holder !== null &&
|
|
130
|
+
'source' in holder &&
|
|
131
|
+
typeof holder.source === 'object' &&
|
|
132
|
+
holder.source !== null &&
|
|
133
|
+
Object.keys(holder.source).length > 0
|
|
134
|
+
? holder.source
|
|
147
135
|
: undefined;
|
|
136
|
+
const downstreamSource = cause instanceof TRPCClientError ? (nonEmptySource(cause.shape?.data) ?? nonEmptySource(cause)) : undefined;
|
|
137
|
+
// `inputKeys` instead of `input`, and no `result` / `headers`: which fields were present is what
|
|
138
|
+
// diagnoses a failed call, while their values are the payload this must not emit (see the
|
|
139
|
+
// `operation` log above for why key-based redaction cannot be relied on here). A validation
|
|
140
|
+
// failure already names the offending field in `message`.
|
|
148
141
|
const obj = {
|
|
149
142
|
sequence: ctx && 'sequence' in ctx ? ctx.sequence : undefined,
|
|
150
143
|
type,
|
|
151
144
|
path,
|
|
152
|
-
|
|
153
|
-
input,
|
|
145
|
+
inputKeys: typeof input === 'object' && input !== null ? Object.keys(input) : undefined,
|
|
154
146
|
duration: ctx && 'startTime' in ctx && typeof ctx.startTime === 'number' ? Date.now() - ctx.startTime : undefined,
|
|
155
147
|
code: error.code,
|
|
156
148
|
message: error.message,
|
|
157
149
|
stack: error.stack,
|
|
158
|
-
...(
|
|
150
|
+
...(downstreamSource ? { downstreamSource } : {}),
|
|
159
151
|
};
|
|
160
152
|
logger.error('trpc', obj);
|
|
161
153
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/trpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAA6C,QAAQ,EAAE,MAAM,cAAc,CAAA;AAClF,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAA;AAE5D,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/trpc/index.ts"],"names":[],"mappings":"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"}
|