@reprova/sdk 0.2.0 → 0.4.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.
package/dist/sdk.js CHANGED
@@ -1,34 +1,344 @@
1
+ import http from 'node:http';
2
+ import https from 'node:https';
1
3
  import { contextStorage } from './context.js';
4
+ import { registerContext, completeContext, snapshotCohort } from './registry.js';
2
5
  import { BatchTransport } from './transport.js';
3
6
  import { parseStack, generateTraceId, stripHeaders, captureHeaders } from './stack.js';
7
+ import { createPrismaExtension } from './prisma.js';
4
8
  let instance = null;
9
+ // Zero-code-change async error capture: Express 4 discards the promise an
10
+ // async handler returns, so a rejection never reaches error middleware unless
11
+ // the app hand-plumbs next(err). We patch the router's Layer dispatch (the
12
+ // same semantics Express 5's router ships natively) so every handler's
13
+ // returned promise gets a rejection-forwarder attached automatically.
14
+ const kAsyncWrapped = Symbol('reprova.asyncWrapped');
15
+ // Apps we've already probed (added even when probing no-ops, e.g. Express 5).
16
+ const patchedApps = new WeakSet();
17
+ // Layer prototypes already patched — one per physical express copy.
18
+ const patchedLayerProtos = new WeakSet();
19
+ // refreshRequestSnapshot re-reads body and auth claims from the live req at
20
+ // capture time. The request middleware runs at the very front of the stack
21
+ // (before body parsers and auth middleware), so its eager snapshot can miss
22
+ // req.body/req.auth — by the time anything is captured, both are final.
23
+ // Mutating ctx.request in place keeps cohort snapshots consistent too.
24
+ function refreshRequestSnapshot(ctx) {
25
+ const req = ctx.rawRequest;
26
+ if (!req)
27
+ return;
28
+ if (req.body !== undefined) {
29
+ ctx.request.body = typeof req.body === 'string' ? req.body : JSON.stringify(req.body ?? '');
30
+ }
31
+ if (req.auth !== undefined && ctx.request.authClaims === undefined) {
32
+ ctx.request.authClaims = req.auth;
33
+ }
34
+ }
35
+ // Universal HTTP instrumentation: wrap the 'request' event on node's own
36
+ // http/https servers, so EVERY Node app — vanilla http.createServer, Koa,
37
+ // Fastify, Express — runs its request handling inside a Reprova context.
38
+ // Framework middleware becomes an enrichment, not a requirement. Installed
39
+ // once; per-request behavior is gated on the CURRENT init'd instance, so
40
+ // re-inits (and disabled mode) behave correctly without re-patching.
41
+ let httpInstrumented = false;
42
+ function instrumentHttpServers() {
43
+ if (httpInstrumented)
44
+ return;
45
+ httpInstrumented = true;
46
+ // https.Server does NOT inherit from http.Server (it extends tls.Server),
47
+ // and neither defines its own emit — both use EventEmitter's. Patch both
48
+ // prototypes with an own emit that delegates upward.
49
+ for (const proto of [http.Server.prototype, https.Server.prototype]) {
50
+ const originalEmit = proto.emit;
51
+ proto.emit = function (event, ...args) {
52
+ const sdk = instance;
53
+ if (event !== 'request' || !sdk || sdk.disabled) {
54
+ return originalEmit.apply(this, [event, ...args]);
55
+ }
56
+ const req = args[0];
57
+ const res = args[1];
58
+ const ctx = contextFromIncoming(req);
59
+ registerContext(ctx);
60
+ res.on('finish', () => {
61
+ // Silent 5xx: the handler responded 5xx without throwing. Vanilla
62
+ // responses have no res.json to wrap, so the check runs at finish.
63
+ if (res.statusCode >= 500 && !ctx.captured) {
64
+ contextStorage.run(ctx, () => sdk.captureHttp5xx(null, res.statusCode, ''));
65
+ }
66
+ completeContext(ctx);
67
+ });
68
+ res.on('close', () => completeContext(ctx));
69
+ try {
70
+ return contextStorage.run(ctx, () => originalEmit.apply(this, [event, ...args]));
71
+ }
72
+ catch (err) {
73
+ // A synchronous throw unwinds out of the ALS frame before the
74
+ // process-level handler could see the store — capture WITH context
75
+ // here, then rethrow to preserve Node's semantics. The process
76
+ // handler skips already-captured contexts.
77
+ if (err instanceof Error)
78
+ sdk.capture('unhandled_exception', err, ctx);
79
+ throw err;
80
+ }
81
+ };
82
+ }
83
+ }
84
+ function contextFromIncoming(req) {
85
+ let path = req.url ?? '/';
86
+ try {
87
+ path = new URL(path, 'http://placeholder').pathname;
88
+ }
89
+ catch {
90
+ // keep raw url
91
+ }
92
+ const traceId = req.headers['traceparent'] ?? generateTraceId();
93
+ return {
94
+ traceId,
95
+ capturedAt: new Date(),
96
+ request: {
97
+ method: req.method ?? 'GET',
98
+ path,
99
+ headers: captureHeaders(req.headers),
100
+ body: '', // refreshed at capture time from rawRequest if a framework parsed it
101
+ },
102
+ footprint: [],
103
+ outboundCalls: [],
104
+ rawRequest: req,
105
+ };
106
+ }
107
+ // The error-middleware layer setupExpress mounted for each app, so the
108
+ // request middleware can keep it at the end of the stack even when routes
109
+ // are registered after setup (position independence).
110
+ const setupErrorLayers = new WeakMap();
111
+ // keepErrorHandlerLast repositions setupExpress's error layer when ROUTE
112
+ // registrations have landed after it — but never past the app's own error
113
+ // middleware (4-arg layers), which must stay downstream so it still receives
114
+ // the error after we capture and next(err) it. Runs from the request
115
+ // middleware, i.e. early in dispatch: moving a NOT-YET-VISITED layer within
116
+ // the live stack array is safe — express iterates with a forward-only index
117
+ // and re-reads stack.length each step, so unvisited layers shift one slot
118
+ // and are still each visited exactly once.
119
+ function keepErrorHandlerLast(app) {
120
+ const errLayer = setupErrorLayers.get(app);
121
+ if (!errLayer)
122
+ return;
123
+ const stack = app._router?.stack;
124
+ if (!stack || stack.length === 0)
125
+ return;
126
+ const i = stack.indexOf(errLayer);
127
+ if (i === -1)
128
+ return;
129
+ // Find the last NON-error layer (handler arity < 4) after ours — a route
130
+ // or middleware registered after setupExpress. If none, we're already
131
+ // positioned correctly (anything after us is user error middleware).
132
+ let lastNonError = -1;
133
+ for (let j = i + 1; j < stack.length; j++) {
134
+ const handle = stack[j].handle;
135
+ if (typeof handle === 'function' && handle.length < 4)
136
+ lastNonError = j;
137
+ }
138
+ if (lastNonError === -1)
139
+ return;
140
+ stack.splice(i, 1);
141
+ // Indices shifted down by one past i; insert right AFTER the late layer.
142
+ stack.splice(lastNonError, 0, errLayer);
143
+ }
144
+ // forwardAsyncErrors applies the rejection-forwarding patch to an app
145
+ // explicitly. requestHandler() does this automatically on the first request,
146
+ // so most apps never call it — it exists for the cases that middleware can't
147
+ // reach: a sub-app running a different physical copy of express, or an app
148
+ // that mounts routes needing Express-5 rejection semantics WITHOUT running
149
+ // the SDK (e.g. the demo app under `repro run` replay, where no DSN is set).
150
+ // Call it after routes are registered. Idempotent.
151
+ export function forwardAsyncErrors(app) {
152
+ patchLayerPrototype(app);
153
+ }
154
+ // Express error middleware that emits the structured error `repro run` needs to
155
+ // compare a replayed failure against the originally captured one — the type,
156
+ // message, and normalized stack (via the SAME parseStack used at capture, so
157
+ // the two can never drift). Active ONLY under REPROVA_REPLAY=1, which the CLI
158
+ // sets when it launches the app for replay; otherwise it forwards to the app's
159
+ // own error handler (next(err)), so it's a transparent no-op in normal
160
+ // operation. Register it BEFORE the app's own 500 responder.
161
+ export function replayErrorHandler() {
162
+ const replay = process.env.REPROVA_REPLAY === '1';
163
+ return (err, _req, res, next) => {
164
+ if (!replay)
165
+ return next(err);
166
+ res.status(500).json({
167
+ error: {
168
+ type: err.constructor?.name ?? err.name ?? 'Error',
169
+ message: err.message,
170
+ stack: parseStack(err),
171
+ },
172
+ });
173
+ };
174
+ }
175
+ function patchLayerPrototype(app) {
176
+ if (patchedApps.has(app))
177
+ return;
178
+ patchedApps.add(app);
179
+ // Express 4 keeps the router at app._router; Express 5 renamed it (and its
180
+ // router forwards rejected promises natively), so failing any of these
181
+ // guards means there is nothing for us to do.
182
+ const router = app._router;
183
+ const firstLayer = router?.stack?.[0];
184
+ if (!firstLayer)
185
+ return;
186
+ const proto = Object.getPrototypeOf(firstLayer);
187
+ if (!proto || typeof proto.handle_request !== 'function')
188
+ return;
189
+ if (patchedLayerProtos.has(proto))
190
+ return;
191
+ patchedLayerProtos.add(proto);
192
+ const original = proto.handle_request;
193
+ proto.handle_request = function handle_request(req, res, next) {
194
+ const fn = this.handle;
195
+ // Wrap plain request handlers only (arity < 4 — express uses fn.length to
196
+ // recognize error middleware; the wrapper keeps arity 3 for the same
197
+ // reason). Wrapping is once per layer, marked with a symbol.
198
+ if (typeof fn === 'function' && fn.length < 4 && !(kAsyncWrapped in fn)) {
199
+ const inner = fn;
200
+ const wrapped = function (rq, rs, nx) {
201
+ const ret = inner(rq, rs, nx);
202
+ if (ret && typeof ret.then === 'function') {
203
+ // Same coercion as Express 5's router: a falsy rejection reason
204
+ // still has to travel the error chain as *something*.
205
+ ret.then(undefined, (err) => nx(err || new Error('unhandled promise rejection in request handler')));
206
+ }
207
+ return ret;
208
+ };
209
+ Object.defineProperty(wrapped, kAsyncWrapped, { value: true });
210
+ this.handle = wrapped;
211
+ }
212
+ return original.call(this, req, res, next);
213
+ };
214
+ }
5
215
  export class Reprova {
6
216
  opts;
7
217
  transport;
8
218
  release;
9
- sdkVersion = '0.1.0';
219
+ sdkVersion = '0.4.0';
220
+ disabled;
10
221
  migrationId = 'unknown';
11
222
  outboundOpts;
12
223
  constructor(opts) {
13
224
  this.opts = opts;
14
- const url = new URL(opts.dsn);
15
- const apiKey = url.pathname.slice(1); // strip leading slash
16
- const endpoint = `${url.protocol}//${url.host}/v1/ingest`;
17
- this.transport = new BatchTransport({ endpoint, apiKey });
18
- this.transport.start();
225
+ this.disabled = !opts.dsn;
226
+ if (this.disabled) {
227
+ // Inert transport: constructed so internal wiring stays uniform, but
228
+ // never started and capture() never enqueues into it.
229
+ this.transport = new BatchTransport({ endpoint: 'http://disabled.invalid/v1/ingest', apiKey: '' });
230
+ }
231
+ else {
232
+ const url = new URL(opts.dsn);
233
+ const apiKey = url.pathname.slice(1); // strip leading slash
234
+ const endpoint = `${url.protocol}//${url.host}/v1/ingest`;
235
+ this.transport = new BatchTransport({ endpoint, apiKey });
236
+ this.transport.start();
237
+ }
19
238
  this.release = opts.release;
20
239
  this.outboundOpts = opts.recordOutbound;
21
240
  }
22
241
  static init(opts) {
23
242
  instance = new Reprova(opts);
24
- instance.patchOutbound();
243
+ if (!instance.disabled) {
244
+ instance.patchOutbound();
245
+ if (opts.instrumentHttp !== false)
246
+ instrumentHttpServers();
247
+ if (opts.processHandlers !== false)
248
+ instance.attachProcessHandlers();
249
+ }
25
250
  return instance;
26
251
  }
27
252
  static getInstance() { return instance; }
28
253
  setMigrationId(id) { this.migrationId = id; }
29
- // Express middleware: opens per-request context.
254
+ // One-call Prisma integration. Splices the footprint-recording extension
255
+ // onto an existing PrismaClient (in place, preserving its identity) and
256
+ // best-effort reads the latest applied migration into migration_id.
257
+ //
258
+ // Typed structurally so the SDK never has to import '@prisma/client' —
259
+ // Prisma stays an optional peer. No-op when the SDK is disabled (no DSN /
260
+ // replay), like recordFootprint, so callers need no `if (dsn)` guard.
261
+ //
262
+ // Mutates `client` in place via Object.assign($extends(...)) because
263
+ // $extends returns a NEW client and the shared singleton must keep
264
+ // recording. Await it so migration_id is set before the first request.
265
+ async instrumentPrisma(client, opts) {
266
+ if (this.disabled)
267
+ return;
268
+ const c = client;
269
+ // 1. Footprint capture: extend, then copy the extended client's behavior
270
+ // back onto the original so every importer of the singleton records.
271
+ const ext = createPrismaExtension(opts?.dmmf);
272
+ Object.assign(c, c.$extends(ext));
273
+ // 2. migration_id: best-effort. Absent table (migrations not run) or any
274
+ // query error leaves it at the 'unknown' default — never fatal at boot.
275
+ if (opts?.readMigrationId !== false) {
276
+ try {
277
+ const rows = await c.$queryRaw `
278
+ SELECT migration_name FROM _prisma_migrations ORDER BY finished_at DESC LIMIT 1
279
+ `;
280
+ if (rows[0]?.migration_name) {
281
+ this.setMigrationId(rows[0].migration_name);
282
+ }
283
+ }
284
+ catch {
285
+ // migration_id stays 'unknown'
286
+ }
287
+ }
288
+ }
289
+ // One-call Express integration (Sentry-style): mounts the request context
290
+ // middleware (repositioned to run before everything, wherever setup is
291
+ // called), the error-capture middleware (kept last even if routes are
292
+ // registered later), the http_5xx response hook, and async rejection
293
+ // forwarding. Equivalent to the manual requestHandler/errorHandler/
294
+ // wrapResponse wiring — same capture payloads, one line.
295
+ setupExpress(app) {
296
+ app.use(this.requestHandler());
297
+ const router = app._router;
298
+ const stack = router?.stack;
299
+ if (stack && stack.length > 0) {
300
+ // Move the just-pushed request layer to sit right after express's
301
+ // leading built-ins (query/expressInit), so it runs first even when
302
+ // setupExpress is called after the routes.
303
+ const reqLayer = stack[stack.length - 1];
304
+ let insertAt = 0;
305
+ while (insertAt < stack.length - 1) {
306
+ const name = stack[insertAt].name;
307
+ if (name === 'query' || name === 'expressInit') {
308
+ insertAt++;
309
+ }
310
+ else {
311
+ break;
312
+ }
313
+ }
314
+ stack.splice(stack.length - 1, 1);
315
+ stack.splice(insertAt, 0, reqLayer);
316
+ }
317
+ app.use(this.errorHandler());
318
+ if (stack && stack.length > 0) {
319
+ setupErrorLayers.set(app, stack[stack.length - 1]);
320
+ }
321
+ }
322
+ // Express middleware: opens per-request context. Also installs the async
323
+ // rejection forwarder on first request (see patchLayerPrototype) so plain
324
+ // `async (req, res) => ...` handlers need no wrapper and no next(err).
30
325
  requestHandler() {
31
- return (req, _res, next) => {
326
+ return (req, res, next) => {
327
+ if (req.app) {
328
+ patchLayerPrototype(req.app);
329
+ keepErrorHandlerLast(req.app);
330
+ }
331
+ // http_5xx-without-throw hook rides along automatically.
332
+ if (!this.disabled)
333
+ wrapResponse(res, this);
334
+ // With HTTP-server instrumentation active (init default), a context
335
+ // for this very request already exists — don't shadow it with a
336
+ // second one; every capture path reads the same store either way.
337
+ const existing = contextStorage.getStore();
338
+ if (existing && existing.rawRequest === req) {
339
+ next();
340
+ return;
341
+ }
32
342
  const traceId = req.headers['traceparent'] ?? generateTraceId();
33
343
  const ctx = {
34
344
  traceId,
@@ -42,7 +352,14 @@ export class Reprova {
42
352
  },
43
353
  footprint: [],
44
354
  outboundCalls: [],
355
+ rawRequest: req,
45
356
  };
357
+ // Track this context so a concurrent request's capture can see it
358
+ // (and, briefly after completion, that it recently overlapped).
359
+ registerContext(ctx);
360
+ const done = () => completeContext(ctx);
361
+ res.on('finish', done);
362
+ res.on('close', done);
46
363
  contextStorage.run(ctx, next);
47
364
  };
48
365
  }
@@ -77,8 +394,12 @@ export class Reprova {
77
394
  });
78
395
  }
79
396
  capture(trigger, err, ctx, extra) {
80
- if (ctx)
397
+ if (this.disabled)
398
+ return;
399
+ if (ctx) {
81
400
  ctx.captured = true;
401
+ refreshRequestSnapshot(ctx);
402
+ }
82
403
  const payload = {
83
404
  trigger: trigger,
84
405
  trace_id: ctx?.traceId ?? generateTraceId(),
@@ -104,22 +425,81 @@ export class Reprova {
104
425
  data_footprint: { queries: ctx?.footprint ?? [] },
105
426
  outbound_calls: ctx?.outboundCalls ?? [],
106
427
  };
428
+ // Concurrency cohort: what else was in flight (or just finished) when
429
+ // this error happened — the raw material for race-condition replay.
430
+ // The key is omitted entirely when the request was alone.
431
+ const cohort = ctx ? snapshotCohort(ctx) : [];
432
+ if (cohort.length > 0) {
433
+ payload.concurrent_requests = cohort;
434
+ }
107
435
  this.transport.enqueue(payload);
108
436
  }
109
- // Attach process-level handlers.
437
+ // Attach process-level handlers. AsyncLocalStorage context survives into
438
+ // both handlers for errors from async continuations (verified on Node 22),
439
+ // so even these captures carry request context when one exists. Contexts
440
+ // already captured (e.g. by the http emit wrapper's sync-throw catch) are
441
+ // skipped to avoid double-reporting.
110
442
  attachProcessHandlers() {
111
443
  process.on('uncaughtException', (err) => {
112
444
  const ctx = contextStorage.getStore();
113
- this.capture('unhandled_exception', err, ctx);
445
+ if (!ctx?.captured)
446
+ this.capture('unhandled_exception', err, ctx);
114
447
  // Allow flush before exit.
115
448
  void this.transport.flush().finally(() => process.exit(1));
116
449
  });
117
450
  process.on('unhandledRejection', (reason) => {
118
451
  const err = reason instanceof Error ? reason : new Error(String(reason));
119
452
  const ctx = contextStorage.getStore();
120
- this.capture('unhandled_exception', err, ctx);
453
+ if (!ctx?.captured)
454
+ this.capture('unhandled_exception', err, ctx);
121
455
  });
122
456
  }
457
+ // Run any operation — a queue consumer, a script step, anything without
458
+ // an HTTP request — inside a capture context: errors are captured (then
459
+ // rethrown, so the caller's error flow is unchanged), and footprints /
460
+ // outbound calls recorded inside land on the capture.
461
+ async runWithContext(info, fn) {
462
+ return this.runInContext('unhandled_exception', info, fn);
463
+ }
464
+ // Background-job wrapper: like runWithContext, but failures ingest with
465
+ // the job_failure trigger so they're distinguishable on the dashboard.
466
+ async runJob(name, fn) {
467
+ return this.runInContext('job_failure', { name }, fn);
468
+ }
469
+ async runInContext(trigger, info, fn) {
470
+ const ctx = {
471
+ traceId: generateTraceId(),
472
+ capturedAt: new Date(),
473
+ request: {
474
+ method: info.method ?? 'JOB',
475
+ path: info.path ?? info.name ?? 'task',
476
+ headers: info.headers ?? {},
477
+ body: info.body ?? '',
478
+ },
479
+ footprint: [],
480
+ outboundCalls: [],
481
+ };
482
+ registerContext(ctx);
483
+ try {
484
+ return await contextStorage.run(ctx, () => fn());
485
+ }
486
+ catch (err) {
487
+ if (err instanceof Error)
488
+ this.capture(trigger, err, ctx);
489
+ throw err;
490
+ }
491
+ finally {
492
+ completeContext(ctx);
493
+ }
494
+ }
495
+ // Record a data-footprint entry from ANY data layer (knex, raw SQL, an
496
+ // in-house DAO): one call per query site is what makes an error
497
+ // REPRODUCIBLE rather than just visible. `model` maps to a table via the
498
+ // tenant's naming strategy, exactly like a Prisma model name. Silent
499
+ // no-op outside a capture context.
500
+ recordFootprint(query) {
501
+ contextStorage.getStore()?.footprint.push(query);
502
+ }
123
503
  patchOutbound() {
124
504
  const sdk = this;
125
505
  const allowHosts = this.outboundOpts?.allowHosts;
@@ -135,10 +515,35 @@ export class Reprova {
135
515
  const originalFetch = globalThis.fetch;
136
516
  if (typeof originalFetch === 'function') {
137
517
  globalThis.fetch = async function patchedFetch(input, init) {
138
- const res = await originalFetch(input, init);
518
+ // Parse the URL before the fetch so the failure path below can name
519
+ // the destination even when the call never connects.
520
+ const url = typeof input === 'string' ? new URL(input) : input instanceof URL ? input : new URL(input.url);
521
+ const started = performance.now();
522
+ let res;
523
+ try {
524
+ res = await originalFetch(input, init);
525
+ }
526
+ catch (err) {
527
+ // A failed call (timeout, DNS, refused connection) is often THE
528
+ // cause of the error being captured — record it, then re-throw so
529
+ // application behavior is untouched.
530
+ const ctx = contextStorage.getStore();
531
+ if (ctx && shouldRecord(url.host)) {
532
+ const name = err?.name;
533
+ ctx.outboundCalls.push({
534
+ host: url.host,
535
+ method: (init?.method ?? 'GET').toUpperCase(),
536
+ path: url.pathname + url.search,
537
+ status: 0,
538
+ duration_ms: Math.round(performance.now() - started),
539
+ outcome: name === 'TimeoutError' || name === 'AbortError' ? 'timeout' : 'network_error',
540
+ recorded_for_replay: true,
541
+ });
542
+ }
543
+ throw err;
544
+ }
139
545
  const ctx = contextStorage.getStore();
140
546
  if (ctx) {
141
- const url = typeof input === 'string' ? new URL(input) : input instanceof URL ? input : new URL(input.url);
142
547
  const host = url.host;
143
548
  if (shouldRecord(host)) {
144
549
  const ct = res.headers.get('content-type') ?? '';
@@ -157,6 +562,8 @@ export class Reprova {
157
562
  path: url.pathname + url.search,
158
563
  status: res.status,
159
564
  response_body: responseBody,
565
+ duration_ms: Math.round(performance.now() - started),
566
+ outcome: 'success',
160
567
  recorded_for_replay: true,
161
568
  });
162
569
  }
@@ -172,6 +579,8 @@ export class Reprova {
172
579
  }
173
580
  // Auto-setup http_5xx hook for Express responses.
174
581
  export function wrapResponse(res, sdk) {
582
+ if (typeof res.json !== 'function')
583
+ return; // non-standard res (tests, mocks)
175
584
  const originalJson = res.json.bind(res);
176
585
  res.json = function (body) {
177
586
  if (res.statusCode >= 500) {
package/dist/sdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export interface SequelizeAdapterOptions {
2
+ captureWhereShape?: boolean;
3
+ }
4
+ export declare function installSequelizeHooks(sequelize: unknown, opts?: SequelizeAdapterOptions): void;
5
+ //# sourceMappingURL=sequelize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../src/sequelize.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,uBAAuB;IAItC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAyFD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,GAAE,uBAA4B,GAAG,IAAI,CASlG"}