@rudderjs/router 1.2.0 → 1.3.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/index.js CHANGED
@@ -1,12 +1,5 @@
1
1
  import 'reflect-metadata';
2
- // Lazy-load node:crypto to avoid bundling it into the client.
3
- // Only used by Url (signed URLs) and ValidateSignature — server-only features.
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
- let _crypto;
6
- // Fire-and-forget: preload on server, no-op in browser
7
- if (typeof globalThis.process !== 'undefined') {
8
- import(/* @vite-ignore */ 'node:crypto').then(m => { _crypto = m; }).catch(() => { });
9
- }
2
+ import { buildQueryValidator } from './query-validator.js';
10
3
  // ─── Route Group Context ──────────────────────────────────
11
4
  //
12
5
  // `runWithGroup(group, fn)` sets the current group for the duration of `fn`.
@@ -21,6 +14,23 @@ if (typeof globalThis.process !== 'undefined') {
21
14
  // resolves. A plain module-level variable is sufficient; no AsyncLocalStorage
22
15
  // needed, and nothing node-specific leaks into the browser bundle.
23
16
  let _currentGroup;
17
+ /**
18
+ * Tag every route registered while `fn` runs with `group` ('web' | 'api').
19
+ *
20
+ * **Synchronous bodies are the supported case.** Route loaders call
21
+ * `Route.get/post/...` at module-evaluation time — those calls complete
22
+ * before `fn` resolves, even when `fn` is `async`. The implementation
23
+ * supports an async `fn` (restoring the previous group in a `.finally()`),
24
+ * but two concurrent `runWithGroup` invocations on the same module instance
25
+ * will clobber each other: this is a single module-level variable, not an
26
+ * AsyncLocalStorage scope. Callers must run loaders **serially** — see
27
+ * `@rudderjs/core`'s `withRouting()` which sequentially `await`s each
28
+ * loader.
29
+ *
30
+ * Outside any `runWithGroup` scope, routes register without a group tag and
31
+ * receive only global `m.use(...)` middleware (no `m.web(...)` / `m.api(...)`
32
+ * stack).
33
+ */
24
34
  export function runWithGroup(group, fn) {
25
35
  const prev = _currentGroup;
26
36
  _currentGroup = group;
@@ -37,6 +47,11 @@ export function runWithGroup(group, fn) {
37
47
  throw e;
38
48
  }
39
49
  }
50
+ /**
51
+ * Read the current group tag. Reads the module-level slot directly; returns
52
+ * `undefined` outside any `runWithGroup(...)` block. Called by route
53
+ * decorators to stamp each `RouteDefinition` with its group.
54
+ */
40
55
  export function currentGroup() {
41
56
  return _currentGroup;
42
57
  }
@@ -134,7 +149,8 @@ function consumeBraceBlock(path, i) {
134
149
  * `where*()` regex constraint segments before scanning the path for `:param`
135
150
  * names.
136
151
  */
137
- function stripRegexSegments(path) {
152
+ /** @internal — exported so sibling modules (binding-middleware) can reuse. */
153
+ export function stripRegexSegments(path) {
138
154
  let out = '';
139
155
  let i = 0;
140
156
  while (i < path.length) {
@@ -289,27 +305,35 @@ export class RouteBuilder {
289
305
  this.definition.missing = fn;
290
306
  return this;
291
307
  }
292
- }
293
- /**
294
- * Thrown by route binding middleware when a required `{param}` cannot be
295
- * resolved into a model instance. `@rudderjs/core` picks up the duck-typed
296
- * `httpStatus` and renders this as an HTTP 404; apps can catch it explicitly
297
- * to render a custom not-found page.
298
- */
299
- export class RouteModelNotFoundError extends Error {
300
- model;
301
- param;
302
- value;
303
- /** Duck-typed signal to `@rudderjs/core`'s exception handler. */
304
- httpStatus = 404;
305
- constructor(model, param, value) {
306
- super(`[RudderJS] No ${model} matched route parameter "${param}" with value "${value}".`);
307
- this.name = 'RouteModelNotFoundError';
308
- this.model = model;
309
- this.param = param;
310
- this.value = value;
308
+ /**
309
+ * Install a Zod validator on `req.query` for this route. The parsed result
310
+ * replaces `req.query` at request time, so `z.coerce.number()` end-to-end
311
+ * works.
312
+ *
313
+ * **Note on typing:** the handler was already passed (and typed) when this
314
+ * route was registered. Chaining `.query(schema)` AFTER cannot re-type a
315
+ * closure that's already been bound. The returned `RouteBuilder<P, z.infer<S>>`
316
+ * carries the inferred query for downstream chain methods, but the
317
+ * already-registered handler still sees the original typing of its closure.
318
+ *
319
+ * For type-safe query at the handler closure, use the opts-object form:
320
+ *
321
+ * @example
322
+ * // Type-safe (handler closure sees `req.query.page: number`)
323
+ * Route.get('/users', { query: z.object({ page: z.coerce.number() }) }, (req) => req.query.page)
324
+ *
325
+ * // Runtime-only (validation runs, but `req.query.page` is still typed string)
326
+ * Route.get('/users', (req) => req.query.page).query(z.object({ page: z.coerce.number() }))
327
+ */
328
+ query(schema) {
329
+ // Prepend so the validator runs before any other per-route middleware.
330
+ this.definition.middleware.unshift(buildQueryValidator(schema));
331
+ return this;
311
332
  }
312
333
  }
334
+ // ─── Route Model Binding ───────────────────────────────────
335
+ import { buildBindingMiddleware, } from './binding-middleware.js';
336
+ export { RouteModelNotFoundError } from './binding-middleware.js';
313
337
  // ─── Router ────────────────────────────────────────────────
314
338
  export class Router {
315
339
  routes = [];
@@ -469,73 +493,7 @@ export class Router {
469
493
  * `def.missing` — the per-route 404 customisation set via `RouteBuilder.missing()`.
470
494
  */
471
495
  _buildBindingMiddleware(def) {
472
- // Strip `{regex}` constraint segments from `where*()` before scanning for
473
- // param names — otherwise a `:` inside a custom pattern could be misread
474
- // as a route param. Uses balanced-brace stripping to support nested `{n}`
475
- // quantifiers (e.g. UUID's `[0-9a-f]{8}-...`).
476
- const stripped = stripRegexSegments(def.path);
477
- const paramNames = [...stripped.matchAll(/:([a-zA-Z_][a-zA-Z0-9_]*)\??/g)].map(m => m[1]);
478
- const matches = [];
479
- for (const name of paramNames) {
480
- const binding = this.bindings.get(name);
481
- if (binding)
482
- matches.push([name, binding]);
483
- }
484
- if (matches.length === 0)
485
- return null;
486
- return async (req, res, next) => {
487
- // Lazy-init bound bag so handlers always see an object.
488
- const bound = req.bound ?? {};
489
- req.bound = bound;
490
- for (const [name, binding] of matches) {
491
- const raw = req.params[name];
492
- let err = null;
493
- if (raw === undefined || raw === '') {
494
- if (binding.optional) {
495
- bound[name] = null;
496
- continue;
497
- }
498
- err = new RouteModelNotFoundError(binding.resolver.name, name, '');
499
- }
500
- else {
501
- const resolved = await binding.resolver.findForRoute(raw);
502
- if (resolved === null || resolved === undefined) {
503
- if (binding.optional) {
504
- bound[name] = null;
505
- continue;
506
- }
507
- err = new RouteModelNotFoundError(binding.resolver.name, name, raw);
508
- }
509
- else {
510
- bound[name] = resolved;
511
- }
512
- }
513
- if (err) {
514
- if (def.missing) {
515
- // Route opted into a custom 404 — dispatch the result the same
516
- // way registerRoute() handles a route handler's return value.
517
- const result = await def.missing(req, err);
518
- if (result instanceof Response) {
519
- ;
520
- res.raw.res = result;
521
- return;
522
- }
523
- if (typeof result === 'string') {
524
- res.send(result);
525
- return;
526
- }
527
- if (result !== undefined && result !== null) {
528
- res.json(result);
529
- return;
530
- }
531
- // undefined → callback wrote to res directly; trust that.
532
- return;
533
- }
534
- throw err;
535
- }
536
- }
537
- await next();
538
- };
496
+ return buildBindingMiddleware(this.bindings, def);
539
497
  }
540
498
  /** Manually register a route. Returns `this` for bulk registration. */
541
499
  add(method, path, handler, middleware = []) {
@@ -554,13 +512,31 @@ export class Router {
554
512
  this.routes.push(def);
555
513
  return this;
556
514
  }
557
- // ── Shorthand methods return RouteBuilder for .name() support ──
558
- get(path, handler, middleware) { return this._rb('GET', path, handler, middleware); }
559
- post(path, handler, middleware) { return this._rb('POST', path, handler, middleware); }
560
- put(path, handler, middleware) { return this._rb('PUT', path, handler, middleware); }
561
- patch(path, handler, middleware) { return this._rb('PATCH', path, handler, middleware); }
562
- delete(path, handler, middleware) { return this._rb('DELETE', path, handler, middleware); }
563
- all(path, handler, middleware) { return this._rb('ALL', path, handler, middleware); }
515
+ get(path, a, b) { return this._verb('GET', path, a, b); }
516
+ post(path, a, b) { return this._verb('POST', path, a, b); }
517
+ put(path, a, b) { return this._verb('PUT', path, a, b); }
518
+ patch(path, a, b) { return this._verb('PATCH', path, a, b); }
519
+ delete(path, a, b) { return this._verb('DELETE', path, a, b); }
520
+ all(path, a, b) { return this._verb('ALL', path, a, b); }
521
+ /**
522
+ * Internal dispatcher for the two-overload shorthand methods. Decides
523
+ * between bare and opts form by whether the second arg is callable.
524
+ */
525
+ _verb(method, path, a, b) {
526
+ if (typeof a === 'function') {
527
+ // Bare form: (path, handler, middleware?)
528
+ return this._rb(method, path, a, b);
529
+ }
530
+ // Opts form: (path, { query, middleware }, handler)
531
+ const opts = a;
532
+ const handler = b;
533
+ const mw = [];
534
+ if (opts.query)
535
+ mw.push(buildQueryValidator(opts.query));
536
+ if (opts.middleware)
537
+ mw.push(...opts.middleware);
538
+ return this._rb(method, path, handler, mw);
539
+ }
564
540
  /**
565
541
  * Register a catch-all fallback route. Runs when no other route matches.
566
542
  * Register it last — Hono evaluates routes in registration order.
@@ -723,104 +699,9 @@ export class Router {
723
699
  return new ResourceRegistration(builders);
724
700
  }
725
701
  }
726
- const RESOURCE_VERBS = [
727
- { verb: 'index', method: 'GET', path: (n) => `/${n}`, nameSuffix: 'index' },
728
- { verb: 'create', method: 'GET', path: (n) => `/${n}/create`, nameSuffix: 'create' },
729
- { verb: 'store', method: 'POST', path: (n) => `/${n}`, nameSuffix: 'store' },
730
- { verb: 'show', method: 'GET', path: (n, p) => `/${n}/:${p}`, nameSuffix: 'show' },
731
- { verb: 'edit', method: 'GET', path: (n, p) => `/${n}/:${p}/edit`, nameSuffix: 'edit' },
732
- { verb: 'update', method: 'PUT', path: (n, p) => `/${n}/:${p}`, nameSuffix: 'update' },
733
- { verb: 'destroy', method: 'DELETE', path: (n, p) => `/${n}/:${p}`, nameSuffix: 'destroy' },
734
- ];
735
- const SINGLETON_VERBS = [
736
- { verb: 'show', method: 'GET', path: (n) => `/${n}`, nameSuffix: 'show' },
737
- { verb: 'edit', method: 'GET', path: (n) => `/${n}/edit`, nameSuffix: 'edit' },
738
- { verb: 'update', method: 'PUT', path: (n) => `/${n}`, nameSuffix: 'update' },
739
- ];
740
- const SINGLETON_CREATE_VERBS = [
741
- { verb: 'create', method: 'GET', path: (n) => `/${n}/create`, nameSuffix: 'create' },
742
- { verb: 'store', method: 'POST', path: (n) => `/${n}`, nameSuffix: 'store' },
743
- ];
744
- const SINGLETON_DESTROY_VERBS = [
745
- { verb: 'destroy', method: 'DELETE', path: (n) => `/${n}`, nameSuffix: 'destroy' },
746
- ];
747
- function filterVerbs(table, opts) {
748
- let verbs = table;
749
- if (opts.only) {
750
- const allow = new Set(opts.only);
751
- verbs = verbs.filter(v => allow.has(v.verb));
752
- }
753
- if (opts.except) {
754
- const deny = new Set(opts.except);
755
- verbs = verbs.filter(v => !deny.has(v.verb));
756
- }
757
- return verbs;
758
- }
759
- /**
760
- * Naive English singularizer for the default resource param name. Handles the
761
- * three patterns Laravel users hit constantly (`posts → post`,
762
- * `categories → category`, `boxes → box`). Anything irregular — `people`,
763
- * `data`, etc. — should be overridden via the `parameters` option, exactly
764
- * as in Laravel.
765
- */
766
- function singularize(name) {
767
- if (/[^aeiou]ies$/i.test(name))
768
- return name.slice(0, -3) + 'y'; // categories → category
769
- if (/(s|x|z|ch|sh)es$/i.test(name))
770
- return name.slice(0, -2); // boxes → box
771
- if (/s$/i.test(name) && !/ss$/i.test(name))
772
- return name.slice(0, -1); // posts → post
773
- return name;
774
- }
775
- /**
776
- * Returned by `router.resource()`/`apiResource()`. The `builders` array holds
777
- * one `RouteBuilder` per registered route in declaration order — apply
778
- * `where*()`, additional middleware, or rename individual routes by indexing
779
- * directly. The `update` PATCH alias is included as a separate builder
780
- * immediately after its PUT counterpart.
781
- */
782
- export class ResourceRegistration {
783
- builders;
784
- constructor(builders) {
785
- this.builders = builders;
786
- }
787
- }
788
- /**
789
- * Returned by `router.singleton()`. Adds two opt-in helpers on top of
790
- * `ResourceRegistration` for resources that also expose a creation flow
791
- * (`.creatable()`) or deletion flow (`.destroyable()`).
792
- */
793
- export class SingletonRegistration extends ResourceRegistration {
794
- _router;
795
- _name;
796
- _Ctrl;
797
- _opts;
798
- constructor(builders, _router, _name, _Ctrl, _opts) {
799
- super(builders);
800
- this._router = _router;
801
- this._name = _name;
802
- this._Ctrl = _Ctrl;
803
- this._opts = _opts;
804
- }
805
- /**
806
- * Add `GET /<name>/create` and `POST /<name>` — the create/store half of a
807
- * full resource. Skipped for any verb the controller doesn't implement.
808
- */
809
- creatable() {
810
- const reg = this._router._registerResource(this._name, this._Ctrl, SINGLETON_CREATE_VERBS, this._opts);
811
- this.builders.push(...reg.builders);
812
- return this;
813
- }
814
- /**
815
- * Add `DELETE /<name>` — the destroy half of a full resource. Skipped if
816
- * the controller doesn't implement `destroy()`.
817
- */
818
- destroyable() {
819
- const reg = this._router._registerResource(this._name, this._Ctrl, SINGLETON_DESTROY_VERBS, this._opts);
820
- this.builders.push(...reg.builders);
821
- return this;
822
- }
823
- }
702
+ // ─── Resource verb tables / helpers ────────────────────────
703
+ import { RESOURCE_VERBS, SINGLETON_VERBS, filterVerbs, singularize, ResourceRegistration, SingletonRegistration, } from './resource.js';
704
+ export { ResourceRegistration, SingletonRegistration } from './resource.js';
824
705
  // ─── Global router instance ────────────────────────────────
825
706
  export const router = new Router();
826
707
  /** Alias for router — Laravel-style capitalised name */
@@ -864,123 +745,6 @@ export function route(name, params = {}) {
864
745
  }
865
746
  return result;
866
747
  }
867
- // ─── Url ───────────────────────────────────────────────────
868
- let _urlKey = '';
869
- function _getSigningKey() {
870
- const key = _urlKey || process.env['APP_KEY'] || '';
871
- if (!key)
872
- throw new Error('[RudderJS] No signing key configured. Set APP_KEY in your .env or call Url.setKey().');
873
- return key;
874
- }
875
- function _splitPath(path) {
876
- const idx = path.indexOf('?');
877
- return idx === -1 ? [path, ''] : [path.slice(0, idx), path.slice(idx + 1)];
878
- }
879
- function _computeSignature(pathname, params) {
880
- // Sort params for deterministic signing (exclude 'signature' itself)
881
- const sorted = new URLSearchParams([...params.entries()]
882
- .filter(([k]) => k !== 'signature')
883
- .sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0));
884
- const toSign = sorted.size > 0 ? `${pathname}?${sorted.toString()}` : pathname;
885
- if (!_crypto)
886
- throw new Error('[RudderJS Router] node:crypto not available — Url signing requires a server environment.');
887
- return _crypto.createHmac('sha256', _getSigningKey()).update(toSign).digest('hex');
888
- }
889
- export class Url {
890
- /**
891
- * Override the HMAC signing key used for signed URLs.
892
- * Falls back to `process.env.APP_KEY`.
893
- */
894
- static setKey(key) {
895
- _urlKey = key;
896
- }
897
- /** The full URL of the current request. */
898
- static current(req) {
899
- return req.url;
900
- }
901
- /** The previous URL from the `Referer` header, or `fallback`. */
902
- static previous(req, fallback = '/') {
903
- return req.headers['referer'] ?? fallback;
904
- }
905
- /**
906
- * Generate a signed URL for a named route.
907
- *
908
- * @example
909
- * Url.signedRoute('invoice.download', { id: 42 })
910
- * // → '/invoice/42?signature=abc123'
911
- */
912
- static signedRoute(name, params = {}, expiresAt) {
913
- return Url.sign(route(name, params), expiresAt);
914
- }
915
- /**
916
- * Generate a signed URL that expires after `seconds` seconds.
917
- *
918
- * @example
919
- * Url.temporarySignedRoute('invoice.download', 3600, { id: 42 })
920
- * // → '/invoice/42?expires=1234567890&signature=abc123'
921
- */
922
- static temporarySignedRoute(name, seconds, params = {}) {
923
- return Url.signedRoute(name, params, new Date(Date.now() + seconds * 1000));
924
- }
925
- /**
926
- * Sign an arbitrary path string.
927
- * Appends `?signature=...` (and `?expires=...` if `expiresAt` given).
928
- */
929
- static sign(path, expiresAt) {
930
- const [pathname, search] = _splitPath(path);
931
- const params = new URLSearchParams(search);
932
- if (expiresAt) {
933
- params.set('expires', String(Math.floor(expiresAt.getTime() / 1000)));
934
- }
935
- const sig = _computeSignature(pathname, params);
936
- params.set('signature', sig);
937
- return `${pathname}?${params.toString()}`;
938
- }
939
- /**
940
- * Return `true` if the request has a valid (and non-expired) signature.
941
- */
942
- static isValidSignature(req) {
943
- // `req.url` may be a full URL (Hono adapter populates protocol+host+path+query)
944
- // or a bare path. `Url.sign(path)` only ever signs the pathname, so verification
945
- // must hash the same shape. Use the URL parser so both forms collapse to a
946
- // pathname + searchParams pair.
947
- const u = new URL(req.url, 'http://placeholder.local');
948
- const pathname = u.pathname;
949
- const params = u.searchParams;
950
- const signature = params.get('signature');
951
- if (!signature)
952
- return false;
953
- // Check expiry before touching the signature
954
- const expires = params.get('expires');
955
- if (expires !== null) {
956
- const expiry = parseInt(expires, 10);
957
- if (isNaN(expiry) || Date.now() / 1000 > expiry)
958
- return false;
959
- }
960
- const expected = _computeSignature(pathname, params);
961
- if (!_crypto)
962
- return signature === expected;
963
- const sigBuf = Buffer.from(signature);
964
- const expBuf = Buffer.from(expected);
965
- if (sigBuf.length !== expBuf.length)
966
- return false;
967
- return _crypto.timingSafeEqual(sigBuf, expBuf);
968
- }
969
- }
970
- // ─── ValidateSignature middleware ───────────────────────────
971
- /**
972
- * Middleware that verifies a signed URL signature.
973
- * Responds with 403 if the signature is missing, invalid, or expired.
974
- *
975
- * @example
976
- * router.get('/invoice/:id/download', handler, [ValidateSignature()])
977
- */
978
- export function ValidateSignature() {
979
- return async (req, res, next) => {
980
- if (!Url.isValidSignature(req)) {
981
- return res.status(403).json({ message: 'Invalid or expired URL signature.' });
982
- }
983
- await next();
984
- };
985
- }
748
+ // ─── URL signing ───────────────────────────────────────────
749
+ export { Url, ValidateSignature } from './url-signing.js';
986
750
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ZodType } from 'zod';
2
+ import { type MiddlewareHandler } from '@rudderjs/contracts';
3
+ /**
4
+ * Build a middleware that validates `req.query` against a Zod schema.
5
+ *
6
+ * - On success, `req.query` is **replaced in place** with the parsed result.
7
+ * This is what makes `z.coerce.number()` work end-to-end: the handler sees
8
+ * `req.query.page` as a `number`, not the original string.
9
+ * - On failure, throws `ValidationError` (rendered as HTTP 422 by core's
10
+ * exception handler). The error map mirrors FormRequest's shape:
11
+ * `{ [path]: string[] }`, with top-level issues under `'root'`.
12
+ *
13
+ * Used by `RouteBuilder.query(schema)` and the `{ query: schema }` opts form
14
+ * on `Router.get/post/etc`.
15
+ */
16
+ export declare function buildQueryValidator(schema: ZodType): MiddlewareHandler;
17
+ //# sourceMappingURL=query-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-validator.d.ts","sourceRoot":"","sources":["../src/query-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,KAAK,CAAA;AACvC,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE7E;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,iBAAiB,CAStE"}
@@ -0,0 +1,34 @@
1
+ import { ValidationError } from '@rudderjs/contracts';
2
+ /**
3
+ * Build a middleware that validates `req.query` against a Zod schema.
4
+ *
5
+ * - On success, `req.query` is **replaced in place** with the parsed result.
6
+ * This is what makes `z.coerce.number()` work end-to-end: the handler sees
7
+ * `req.query.page` as a `number`, not the original string.
8
+ * - On failure, throws `ValidationError` (rendered as HTTP 422 by core's
9
+ * exception handler). The error map mirrors FormRequest's shape:
10
+ * `{ [path]: string[] }`, with top-level issues under `'root'`.
11
+ *
12
+ * Used by `RouteBuilder.query(schema)` and the `{ query: schema }` opts form
13
+ * on `Router.get/post/etc`.
14
+ */
15
+ export function buildQueryValidator(schema) {
16
+ return async (req, _res, next) => {
17
+ const result = schema.safeParse(req.query);
18
+ if (!result.success) {
19
+ throw new ValidationError(zodIssuesToErrors(result.error));
20
+ }
21
+ ;
22
+ req.query = result.data;
23
+ await next();
24
+ };
25
+ }
26
+ function zodIssuesToErrors(err) {
27
+ const errors = {};
28
+ for (const issue of err.issues) {
29
+ const key = issue.path.join('.') || 'root';
30
+ errors[key] = [...(errors[key] ?? []), issue.message];
31
+ }
32
+ return errors;
33
+ }
34
+ //# sourceMappingURL=query-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-validator.js","sourceRoot":"","sources":["../src/query-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA0B,MAAM,qBAAqB,CAAA;AAE7E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5D,CAAC;QACD,CAAC;QAAC,GAA0B,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QAChD,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAa;IACtC,MAAM,MAAM,GAA6B,EAAE,CAAA;IAC3C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAA;QAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}