glasswork 0.2.4 → 0.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.
Files changed (100) hide show
  1. package/dist/http/route-helpers.d.ts +4 -4
  2. package/dist/http/route-helpers.d.ts.map +1 -1
  3. package/dist/http/route-helpers.js +4 -1
  4. package/dist/http/route-helpers.js.map +1 -1
  5. package/dist/index.d.ts +3 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/list-query/builder.d.ts +33 -0
  10. package/dist/list-query/builder.d.ts.map +1 -0
  11. package/dist/list-query/builder.js +104 -0
  12. package/dist/list-query/builder.js.map +1 -0
  13. package/dist/list-query/casl.d.ts +36 -0
  14. package/dist/list-query/casl.d.ts.map +1 -0
  15. package/dist/list-query/casl.js +42 -0
  16. package/dist/list-query/casl.js.map +1 -0
  17. package/dist/list-query/global-search.d.ts +20 -0
  18. package/dist/list-query/global-search.d.ts.map +1 -0
  19. package/dist/list-query/global-search.js +68 -0
  20. package/dist/list-query/global-search.js.map +1 -0
  21. package/dist/list-query/index.d.ts +6 -0
  22. package/dist/list-query/index.d.ts.map +1 -0
  23. package/dist/list-query/index.js +7 -0
  24. package/dist/list-query/index.js.map +1 -0
  25. package/dist/list-query/parser.d.ts +17 -0
  26. package/dist/list-query/parser.d.ts.map +1 -0
  27. package/dist/list-query/parser.js +162 -0
  28. package/dist/list-query/parser.js.map +1 -0
  29. package/dist/list-query/prisma-builder.d.ts +21 -0
  30. package/dist/list-query/prisma-builder.d.ts.map +1 -0
  31. package/dist/list-query/prisma-builder.js +224 -0
  32. package/dist/list-query/prisma-builder.js.map +1 -0
  33. package/dist/list-query/query-schema.d.ts +15 -0
  34. package/dist/list-query/query-schema.d.ts.map +1 -0
  35. package/dist/list-query/query-schema.js +16 -0
  36. package/dist/list-query/query-schema.js.map +1 -0
  37. package/dist/list-query/schema-helpers.d.ts +81 -0
  38. package/dist/list-query/schema-helpers.d.ts.map +1 -0
  39. package/dist/list-query/schema-helpers.js +85 -0
  40. package/dist/list-query/schema-helpers.js.map +1 -0
  41. package/dist/list-query/types.d.ts +66 -0
  42. package/dist/list-query/types.d.ts.map +1 -0
  43. package/dist/{hooks → list-query}/types.js.map +1 -1
  44. package/dist/list-query/validator.d.ts +35 -0
  45. package/dist/list-query/validator.d.ts.map +1 -0
  46. package/dist/list-query/validator.js +44 -0
  47. package/dist/list-query/validator.js.map +1 -0
  48. package/dist/openapi/defaults.d.ts.map +1 -1
  49. package/dist/openapi/defaults.js +12 -3
  50. package/dist/openapi/defaults.js.map +1 -1
  51. package/dist/openapi/hooks.d.ts.map +1 -1
  52. package/dist/openapi/hooks.js +7 -4
  53. package/dist/openapi/hooks.js.map +1 -1
  54. package/dist/openapi/openapi.d.ts.map +1 -1
  55. package/dist/openapi/openapi.js +4 -33
  56. package/dist/openapi/openapi.js.map +1 -1
  57. package/package.json +12 -1
  58. package/dist/authorization/ability-middleware.d.ts +0 -61
  59. package/dist/authorization/ability-middleware.d.ts.map +0 -1
  60. package/dist/authorization/ability-middleware.js +0 -74
  61. package/dist/authorization/ability-middleware.js.map +0 -1
  62. package/dist/authorization/index.d.ts +0 -46
  63. package/dist/authorization/index.d.ts.map +0 -1
  64. package/dist/authorization/index.js +0 -46
  65. package/dist/authorization/index.js.map +0 -1
  66. package/dist/authorization/route-helpers.d.ts +0 -106
  67. package/dist/authorization/route-helpers.d.ts.map +0 -1
  68. package/dist/authorization/route-helpers.js +0 -136
  69. package/dist/authorization/route-helpers.js.map +0 -1
  70. package/dist/authorization/service-proxy.d.ts +0 -59
  71. package/dist/authorization/service-proxy.d.ts.map +0 -1
  72. package/dist/authorization/service-proxy.js +0 -110
  73. package/dist/authorization/service-proxy.js.map +0 -1
  74. package/dist/authorization/types.d.ts +0 -58
  75. package/dist/authorization/types.d.ts.map +0 -1
  76. package/dist/authorization/types.js +0 -7
  77. package/dist/authorization/types.js.map +0 -1
  78. package/dist/hooks/authorization-hook.d.ts +0 -100
  79. package/dist/hooks/authorization-hook.d.ts.map +0 -1
  80. package/dist/hooks/authorization-hook.js +0 -93
  81. package/dist/hooks/authorization-hook.js.map +0 -1
  82. package/dist/hooks/index.d.ts +0 -54
  83. package/dist/hooks/index.d.ts.map +0 -1
  84. package/dist/hooks/index.js +0 -55
  85. package/dist/hooks/index.js.map +0 -1
  86. package/dist/hooks/service-hooks.d.ts +0 -82
  87. package/dist/hooks/service-hooks.d.ts.map +0 -1
  88. package/dist/hooks/service-hooks.js +0 -158
  89. package/dist/hooks/service-hooks.js.map +0 -1
  90. package/dist/hooks/types.d.ts +0 -151
  91. package/dist/hooks/types.d.ts.map +0 -1
  92. package/dist/openapi/openapi-transformer.d.ts +0 -13
  93. package/dist/openapi/openapi-transformer.d.ts.map +0 -1
  94. package/dist/openapi/openapi-transformer.js +0 -87
  95. package/dist/openapi/openapi-transformer.js.map +0 -1
  96. package/dist/utils/pagination.d.ts +0 -48
  97. package/dist/utils/pagination.d.ts.map +0 -1
  98. package/dist/utils/pagination.js +0 -42
  99. package/dist/utils/pagination.js.map +0 -1
  100. /package/dist/{hooks → list-query}/types.js +0 -0
@@ -133,14 +133,14 @@ export interface RouteConfig<TBody extends ValibotSchema | undefined = undefined
133
133
  /**
134
134
  * Route handler context with typed body
135
135
  *
136
- * Leverages Hono's ContextVariableMap for session typing.
137
- * If your middleware extends ContextVariableMap (e.g., auth middleware),
138
- * the session will be automatically typed in route handlers.
136
+ * Automatically includes all context variables from Hono's ContextVariableMap.
137
+ * If your middleware extends ContextVariableMap (e.g., auth middleware adding ability/role),
138
+ * those variables will be automatically typed and available for destructuring.
139
139
  *
140
140
  * @template TBody - The typed body (inferred from schema)
141
141
  * @template TSessionRequired - Whether session is guaranteed to exist (true by default, false for public routes)
142
142
  */
143
- export interface RouteContext<TBody = never, TSessionRequired extends boolean = true> {
143
+ export interface RouteContext<TBody = never, TSessionRequired extends boolean = true> extends Omit<Context['var'], 'session'> {
144
144
  body: TBody;
145
145
  query: Record<string, string>;
146
146
  params: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"route-helpers.d.ts","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-helpers.d.ts","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"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"}
@@ -354,12 +354,15 @@ function buildOpenAPIResponses(config) {
354
354
  }
355
355
  function buildRouteContext(c) {
356
356
  const req = c.req;
357
+ // Spread all context variables (from ContextVariableMap)
358
+ // This includes session, ability, role, and any other middleware-added variables
357
359
  return {
360
+ ...c.var,
358
361
  body: req.valid('json'),
359
362
  query: req.valid('query'),
360
363
  params: req.valid('param'),
361
364
  services: c.get('services') || {},
362
- // @ts-expect-error - Session typing issue to be resolved separately
365
+ // @ts-expect-error - Session typing works at compile time via ContextVariableMap
363
366
  session: c.get('session'),
364
367
  ip: getClientIp(c),
365
368
  userAgent: c.req.header('user-agent'),
@@ -1 +1 @@
1
- {"version":3,"file":"route-helpers.js","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEtC;;;GAGG;AACH,IAAI,mBAAmB,GAA0B,EAAE,CAAC;AAEpD;;;;GAIG;AACH,IAAI,qBAAqB,GAAa,EAAE,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAA4B;IACjE,mBAAmB,GAAG,KAAK,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAiB;IACxD,qBAAqB,GAAG,OAAO,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAkCD;;GAEG;AACH,MAAM,mBAAmB,GAAG;IAC1B,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,uBAAuB;CACpB,CAAC;AAQX;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAoD;IAEpD,OAAO,OAAkC,CAAC;AAC5C,CAAC;AAyFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,UAAU,KAAK,CAMnB,MAA+C;IAC/C,MAAM,WAAW,GAAwB,EAAE,CAAC;IAE5C,uBAAuB;IACvB,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjD,uDAAuD;IACvD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,mFAAmF;IACnF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,CACd,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,WAAW,CAAC,IAAI,CACd,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,CACd,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAU,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO;QACjC,oEAAoE;QACpE,YAA0F,CAC3F,CAAC;QAEF,sFAAsF;QACtF,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,8BAA8B;QAC9B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,4FAA4F;QAC5F,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAEzF,kEAAkE;QAClE,IAAI,UAAU,EAAE,CAAC;YACf,CAAC,CAAC,MAAM,CAAC,UAAwB,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa,CAE1B,IAAa,EAAE,SAAsB;IACrC,oDAAoD;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED,gEAAgE;IAChE,MAAM,YAAY,GAAyC;QACzD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;KACvC,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,gCAAgC;QAChC,yDAAyD;QACzD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAElD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,2EAA2E;YAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,mDAAmD;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,oEAAoE;YAClE,kEAAkE,CACrE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAI7B,MAA+C;IAC/C,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEhD,8DAA8D;IAC9D,iFAAiF;IACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM;QAC5B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,wBAAwB,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,aAAa,GAAyB;QAC1C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO;QACjD,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,SAA8C;QACzD,QAAQ;QACR,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,UAAU,EAAE,yBAAyB,EAAE,EAAE,CAAC;QACnE,GAAG,MAAM,CAAC,OAAO;KAClB,CAAC;IAEF,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB;IAChC,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,UAAU,EAAE,YAAY;gBACjC,OAAO,EAAE,CAAC;aACX;YACD,WAAW,EAAE,aAAa;SAC3B;QACD;YACE,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,GAAG;gBACZ,OAAO,EAAE,EAAE;aACZ;YACD,WAAW,EAAE,0BAA0B;SACxC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAK5B,MAA+C;IAS/C,MAAM,SAAS,GAOX,EAAE,CAAC;IAEP,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM;QACpC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;QACpD,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IAEvE,MAAM,YAAY,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;IAE1E,mBAAmB;IACnB,MAAM,KAAK,GAAG,sBAAsB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAqC,CAAC;QACpE,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;QAE5D,8EAA8E;QAC9E,MAAM,eAAe,GAAG,IAAI,IAAI,GAAG,CAAC;QACpC,MAAM,2BAA2B,GAAG,eAAe,IAAI,CAAC,MAAM,CAAC;QAE/D,wCAAwC;QACxC,IAAI,QAAQ,GAIR;YACF,WAAW;YACX,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,kBAAkB,EAAE;4BAClB,oFAAoF;4BACpF,0EAA0E;4BAC1E,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;yBAClD;qBACF;iBACF;gBACH,CAAC,CAAC,2BAA2B;oBAC3B,CAAC,CAAC;wBACE,OAAO,EAAE;4BACP,kBAAkB,EAAE;gCAClB,MAAM,EAAE;oCACN,IAAI,EAAE,oCAAoC;iCAC3C;6BACF;yBACF;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;SACV,CAAC;QAEF,kCAAkC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACxB,UAAU;gBACV,WAAW,EAAE;oBACX,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;iBACxB;aACF,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAU;IAKnC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAkC,CAAC;IAEjD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAA2B;QACnD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAA2B;QACpD,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE;QACjC,oEAAoE;QACpE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;QACzB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;QAClB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;QACrC,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"route-helpers.js","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -22,15 +22,15 @@ export { createRateLimitMiddleware } from './middleware/rate-limit.js';
22
22
  export { defaultOpenAPIComponents } from './openapi/defaults.js';
23
23
  export { createCorsHeadersHook, createPaginationHeadersHook, createRateLimitHeadersHook, } from './openapi/hooks.js';
24
24
  export { configureOpenAPI } from './openapi/openapi.js';
25
- export { transformOpenAPIDocument } from './openapi/openapi-transformer.js';
25
+ export { booleanFilterSchema, createFilterSchema, createListQuery, createSortSchema, dateFilterSchema, enumFilterSchema, type ListQueryBuilder, type ListQueryConfig, ListQuerySchema, numberFilterSchema, type PaginatedResult, relationFilterSchema, sortDirectionSchema, stringFilterSchema, } from './list-query/index.js';
26
+ export type { FieldPath, FilterOperator, ParsedFilter, ParsedQueryParams, ParsedSort, PrismaListParams, RawQueryParams, SchemaValidationConfig, SearchFieldInput, SortDirection, ValidatedListParams, } from './list-query/index.js';
27
+ export { createCaslScope, withCaslScope } from './list-query/casl.js';
26
28
  export { deepMerge } from './utils/deep-merge.js';
27
29
  export { isDevelopment, isLambda, isProduction, isTest } from './utils/environment.js';
28
30
  export { getClientIp } from './utils/get-client-ip.js';
29
31
  export type { Logger } from './utils/logger.js';
30
32
  export { createLogger, createPlainLogger, defaultLogger } from './utils/logger.js';
31
33
  export { omit } from './utils/omit.js';
32
- export type { PaginatedOutput, PaginationInput } from './utils/pagination.js';
33
- export { paginate, paginationInput } from './utils/pagination.js';
34
34
  export { pick } from './utils/pick.js';
35
35
  export type { SerializedDates } from './utils/serialize-dates.js';
36
36
  export { serializeDates } from './utils/serialize-dates.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -22,14 +22,16 @@ export { createRateLimitMiddleware } from './middleware/rate-limit.js';
22
22
  export { defaultOpenAPIComponents } from './openapi/defaults.js';
23
23
  export { createCorsHeadersHook, createPaginationHeadersHook, createRateLimitHeadersHook, } from './openapi/hooks.js';
24
24
  export { configureOpenAPI } from './openapi/openapi.js';
25
- export { transformOpenAPIDocument } from './openapi/openapi-transformer.js';
25
+ // List Query (Prisma filtering/sorting/pagination)
26
+ export { booleanFilterSchema, createFilterSchema, createListQuery, createSortSchema, dateFilterSchema, enumFilterSchema, ListQuerySchema, numberFilterSchema, relationFilterSchema, sortDirectionSchema, stringFilterSchema, } from './list-query/index.js';
27
+ // Optional CASL integration
28
+ export { createCaslScope, withCaslScope } from './list-query/casl.js';
26
29
  // Utilities
27
30
  export { deepMerge } from './utils/deep-merge.js';
28
31
  export { isDevelopment, isLambda, isProduction, isTest } from './utils/environment.js';
29
32
  export { getClientIp } from './utils/get-client-ip.js';
30
33
  export { createLogger, createPlainLogger, defaultLogger } from './utils/logger.js';
31
34
  export { omit } from './utils/omit.js';
32
- export { paginate, paginationInput } from './utils/pagination.js';
33
35
  export { pick } from './utils/pick.js';
34
36
  export { serializeDates } from './utils/serialize-dates.js';
35
37
  //# 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":"AAAA;;;;;;;GAOG;AAOH,gBAAgB;AAChB,OAAO,EAIL,yBAAyB,EACzB,YAAY,EAEZ,cAAc,EAEd,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkBhD,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAEL,gBAAgB,EAEhB,0BAA0B,EAE1B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,4BAA4B,EAC5B,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE9D,aAAa;AACb,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,gBAAgB;AAChB,OAAO,EAIL,yBAAyB,EACzB,YAAY,EAEZ,cAAc,EAEd,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAkBhD,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAEL,gBAAgB,EAEhB,0BAA0B,EAE1B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,4BAA4B,EAC5B,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE9D,aAAa;AACb,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,UAAU;AACV,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,mDAAmD;AACnD,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAGhB,eAAe,EACf,kBAAkB,EAElB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,uBAAuB,CAAC;AAe/B,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEtE,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Context } from 'hono';
2
+ import type { BaseIssue, BaseSchema, InferOutput } from 'valibot';
3
+ import type { RawQueryParams, SearchFieldInput } from './types.js';
4
+ import type { SchemaValidationConfig, ValidatedListParams } from './validator.js';
5
+ export interface PaginatedResult<T> {
6
+ readonly data: T[];
7
+ readonly total: number;
8
+ }
9
+ export interface ListQueryConfig<TWhereSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, TOrderBySchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>> {
10
+ readonly filter?: TWhereSchema;
11
+ readonly sort?: TOrderBySchema;
12
+ readonly search?: readonly SearchFieldInput[];
13
+ }
14
+ export declare class ListQueryBuilder<TWhereSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, TOrderBySchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>> {
15
+ private config;
16
+ private validationConfig?;
17
+ private parsedQuery?;
18
+ private prismaParams?;
19
+ private paginationEnabled;
20
+ private context?;
21
+ private whereConditions;
22
+ private transformFn?;
23
+ constructor(config: ListQueryConfig<TWhereSchema, TOrderBySchema>, validationConfig?: SchemaValidationConfig<TWhereSchema, TOrderBySchema> | undefined);
24
+ parse(query: RawQueryParams, context?: Context): this;
25
+ scope(conditions: InferOutput<TWhereSchema> | Record<string, unknown>): this;
26
+ paginate(): this;
27
+ transform(fn: (params: ValidatedListParams<TWhereSchema, TOrderBySchema>) => ValidatedListParams<TWhereSchema, TOrderBySchema>): this;
28
+ build(): ValidatedListParams<TWhereSchema, TOrderBySchema>;
29
+ execute<T>(callback: (params: ValidatedListParams<TWhereSchema, TOrderBySchema>) => Promise<PaginatedResult<T>>): Promise<T[]>;
30
+ private mergeWhereConditions;
31
+ }
32
+ export declare function createListQuery<TWhereSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, TOrderBySchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(config: ListQueryConfig<TWhereSchema, TOrderBySchema>): ListQueryBuilder<TWhereSchema, TOrderBySchema>;
33
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/list-query/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIlE,OAAO,KAAK,EAAuC,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACxG,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGlF,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe,CAC/B,YAAY,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACrE,cAAc,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAEvE,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC9C;AAED,qBAAa,gBAAgB,CAC5B,YAAY,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACrE,cAAc,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAYtE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,gBAAgB,CAAC;IAX1B,OAAO,CAAC,WAAW,CAAC,CAAoB;IACxC,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,WAAW,CAAC,CAEmC;gBAG9C,MAAM,EAAE,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC,EACrD,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAAC,YAAA;IAGhF,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAgBrD,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO5E,QAAQ,IAAI,IAAI;IAKhB,SAAS,CACR,EAAE,EAAE,CACH,MAAM,EAAE,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,KACrD,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,GACpD,IAAI;IAKP,KAAK,IAAI,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC;IA6CpD,OAAO,CAAC,CAAC,EACd,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAClG,OAAO,CAAC,CAAC,EAAE,CAAC;IAgBf,OAAO,CAAC,oBAAoB;CAM5B;AAED,wBAAgB,eAAe,CAC9B,YAAY,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACrE,cAAc,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EACtE,MAAM,EAAE,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC,kDAKtD"}
@@ -0,0 +1,104 @@
1
+ import { buildGlobalSearchWhere } from './global-search.js';
2
+ import { parseQueryParams } from './parser.js';
3
+ import { buildPrismaParams } from './prisma-builder.js';
4
+ import { validateListParams } from './validator.js';
5
+ export class ListQueryBuilder {
6
+ config;
7
+ validationConfig;
8
+ parsedQuery;
9
+ prismaParams;
10
+ paginationEnabled = false;
11
+ context;
12
+ whereConditions = [];
13
+ transformFn;
14
+ constructor(config, validationConfig) {
15
+ this.config = config;
16
+ this.validationConfig = validationConfig;
17
+ }
18
+ parse(query, context) {
19
+ this.parsedQuery = parseQueryParams(query);
20
+ this.prismaParams = buildPrismaParams(this.parsedQuery);
21
+ this.context = context;
22
+ // Apply global search if configured
23
+ if (this.config.search && this.parsedQuery?.search) {
24
+ const searchWhere = buildGlobalSearchWhere(this.config.search, this.parsedQuery.search);
25
+ if (Object.keys(searchWhere).length > 0) {
26
+ this.whereConditions.push(searchWhere);
27
+ }
28
+ }
29
+ return this;
30
+ }
31
+ scope(conditions) {
32
+ if (conditions && Object.keys(conditions).length > 0) {
33
+ this.whereConditions.push(conditions);
34
+ }
35
+ return this;
36
+ }
37
+ paginate() {
38
+ this.paginationEnabled = true;
39
+ return this;
40
+ }
41
+ transform(fn) {
42
+ this.transformFn = fn;
43
+ return this;
44
+ }
45
+ build() {
46
+ if (!this.prismaParams) {
47
+ throw new Error('Must call .parse() before .build()');
48
+ }
49
+ // Validate user input first (before merging with application conditions)
50
+ let validatedWhere;
51
+ let validatedOrderBy;
52
+ if (this.validationConfig) {
53
+ const validated = validateListParams(this.prismaParams.where, this.prismaParams.orderBy, this.paginationEnabled ? this.prismaParams.skip : 0, this.paginationEnabled ? this.prismaParams.take : 999999, this.validationConfig);
54
+ validatedWhere = validated.where;
55
+ validatedOrderBy = validated.orderBy;
56
+ }
57
+ else {
58
+ validatedWhere = this.prismaParams.where;
59
+ validatedOrderBy = this.prismaParams.orderBy;
60
+ }
61
+ // Now merge with application-controlled conditions (global search, scope)
62
+ let mergedWhere = validatedWhere;
63
+ if (this.whereConditions.length > 0) {
64
+ mergedWhere = this.mergeWhereConditions([validatedWhere, ...this.whereConditions]);
65
+ }
66
+ let params = {
67
+ where: mergedWhere,
68
+ orderBy: validatedOrderBy,
69
+ skip: this.paginationEnabled ? this.prismaParams.skip : 0,
70
+ take: this.paginationEnabled ? this.prismaParams.take : 999999,
71
+ };
72
+ // Apply transform if configured
73
+ if (this.transformFn) {
74
+ params = this.transformFn(params);
75
+ }
76
+ return params;
77
+ }
78
+ async execute(callback) {
79
+ const params = this.build();
80
+ const { data, total } = await callback(params);
81
+ // Set pagination headers if enabled and context available
82
+ if (this.paginationEnabled && this.context && this.parsedQuery) {
83
+ const totalPages = Math.ceil(total / this.parsedQuery.pageSize);
84
+ this.context.header('X-Total-Count', total.toString());
85
+ this.context.header('X-Total-Pages', totalPages.toString());
86
+ this.context.header('X-Current-Page', this.parsedQuery.page.toString());
87
+ this.context.header('X-Page-Size', this.parsedQuery.pageSize.toString());
88
+ }
89
+ return data;
90
+ }
91
+ mergeWhereConditions(conditions) {
92
+ const nonEmpty = conditions.filter((c) => Object.keys(c).length > 0);
93
+ if (nonEmpty.length === 0)
94
+ return {};
95
+ if (nonEmpty.length === 1)
96
+ return nonEmpty[0];
97
+ return { AND: nonEmpty };
98
+ }
99
+ }
100
+ export function createListQuery(config) {
101
+ const validationConfig = config.filter && config.sort ? { whereSchema: config.filter, orderBySchema: config.sort } : undefined;
102
+ return new ListQueryBuilder(config, validationConfig);
103
+ }
104
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/list-query/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { PureAbility } from '@casl/ability';
2
+ import type { ListQueryBuilder } from './builder.js';
3
+ /**
4
+ * Create a CASL scope function that can be applied to a ListQueryBuilder
5
+ *
6
+ * @param ability - The CASL ability instance
7
+ * @param subject - The Prisma model name (e.g., 'User', 'Organization')
8
+ * @returns A function that applies the CASL conditions to a builder
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const scope = createCaslScope(ability, 'User');
13
+ * const params = createListQuery({ filter: UserFilterSchema })
14
+ * .parse(query)
15
+ * .apply(scope)
16
+ * .build();
17
+ * ```
18
+ */
19
+ export declare function createCaslScope<TAbility extends PureAbility<any, any>>(ability: TAbility, subject: string): (builder: ListQueryBuilder<any, any>) => ListQueryBuilder<any, any>;
20
+ /**
21
+ * Create a CASL scope helper that extracts ability from context
22
+ *
23
+ * @param subject - The Prisma model name (e.g., 'User', 'Organization')
24
+ * @returns A function that takes a builder and ability, and applies the CASL conditions
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const scopeUsers = withCaslScope('User');
29
+ * const params = createListQuery({ filter: UserFilterSchema })
30
+ * .parse(query)
31
+ * .apply(scopeUsers, ability)
32
+ * .build();
33
+ * ```
34
+ */
35
+ export declare function withCaslScope(subject: string): <TAbility extends PureAbility<any, any>>(builder: ListQueryBuilder<any, any>, ability: TAbility) => ListQueryBuilder<any, any>;
36
+ //# sourceMappingURL=casl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casl.d.ts","sourceRoot":"","sources":["../../src/list-query/casl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACrE,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,IAGP,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,gCAC3C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,IACpC,QAAQ,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAC7C,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EACnC,SAAS,QAAQ,gCAIlB"}
@@ -0,0 +1,42 @@
1
+ import { accessibleBy } from '@casl/prisma';
2
+ /**
3
+ * Create a CASL scope function that can be applied to a ListQueryBuilder
4
+ *
5
+ * @param ability - The CASL ability instance
6
+ * @param subject - The Prisma model name (e.g., 'User', 'Organization')
7
+ * @returns A function that applies the CASL conditions to a builder
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const scope = createCaslScope(ability, 'User');
12
+ * const params = createListQuery({ filter: UserFilterSchema })
13
+ * .parse(query)
14
+ * .apply(scope)
15
+ * .build();
16
+ * ```
17
+ */
18
+ export function createCaslScope(ability, subject) {
19
+ const conditions = accessibleBy(ability)[subject];
20
+ return (builder) => builder.scope(conditions);
21
+ }
22
+ /**
23
+ * Create a CASL scope helper that extracts ability from context
24
+ *
25
+ * @param subject - The Prisma model name (e.g., 'User', 'Organization')
26
+ * @returns A function that takes a builder and ability, and applies the CASL conditions
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const scopeUsers = withCaslScope('User');
31
+ * const params = createListQuery({ filter: UserFilterSchema })
32
+ * .parse(query)
33
+ * .apply(scopeUsers, ability)
34
+ * .build();
35
+ * ```
36
+ */
37
+ export function withCaslScope(subject) {
38
+ return (builder, ability) => {
39
+ return builder.scope(accessibleBy(ability)[subject]);
40
+ };
41
+ }
42
+ //# sourceMappingURL=casl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casl.js","sourceRoot":"","sources":["../../src/list-query/casl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;AAI3D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAC9B,OAAiB,EACjB,OAAe;IAEf,MAAM,UAAU,GAAG,YAAY,CAAC,OAAc,CAAC,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,OAAmC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC5C,OAAO,CACN,OAAmC,EACnC,OAAiB,EAChB,EAAE;QACH,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { SearchFieldInput } from './types.js';
2
+ /**
3
+ * Build Prisma where clause for global search across multiple fields
4
+ * Creates OR conditions for each field path
5
+ *
6
+ * @param searchFields - Array of field paths (strings for flat fields, arrays for nested)
7
+ * @param searchTerm - The search term to look for
8
+ * @returns Prisma where clause with OR conditions, or empty object if no search fields or empty term
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // Flat fields (simple strings)
13
+ * buildGlobalSearchWhere(['name', 'email'], 'john')
14
+ *
15
+ * // Mixed flat and nested fields
16
+ * buildGlobalSearchWhere(['email', 'firstName', ['organization', 'name']], 'acme')
17
+ * ```
18
+ */
19
+ export declare function buildGlobalSearchWhere(searchFields: readonly SearchFieldInput[], searchTerm?: string): Record<string, unknown>;
20
+ //# sourceMappingURL=global-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-search.d.ts","sourceRoot":"","sources":["../../src/list-query/global-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAuC9D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,SAAS,gBAAgB,EAAE,EACzC,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmBzB"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Normalize a search field input to a FieldPath
3
+ * Converts string to array for consistent internal handling
4
+ */
5
+ function normalizeSearchField(field) {
6
+ return typeof field === 'string' ? [field] : field;
7
+ }
8
+ /**
9
+ * Build a nested Prisma where condition for a single field path
10
+ * Used for global search - creates contains condition with case-insensitive mode
11
+ */
12
+ function buildSearchConditionForField(fieldPath, searchTerm) {
13
+ if (fieldPath.length === 1) {
14
+ const field = fieldPath[0];
15
+ if (!field) {
16
+ throw new Error('Field path element cannot be undefined');
17
+ }
18
+ return {
19
+ [field]: {
20
+ contains: searchTerm,
21
+ mode: 'insensitive',
22
+ },
23
+ };
24
+ }
25
+ const [first, ...rest] = fieldPath;
26
+ if (!first) {
27
+ throw new Error('Field path element cannot be undefined');
28
+ }
29
+ return {
30
+ [first]: buildSearchConditionForField(rest, searchTerm),
31
+ };
32
+ }
33
+ /**
34
+ * Build Prisma where clause for global search across multiple fields
35
+ * Creates OR conditions for each field path
36
+ *
37
+ * @param searchFields - Array of field paths (strings for flat fields, arrays for nested)
38
+ * @param searchTerm - The search term to look for
39
+ * @returns Prisma where clause with OR conditions, or empty object if no search fields or empty term
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Flat fields (simple strings)
44
+ * buildGlobalSearchWhere(['name', 'email'], 'john')
45
+ *
46
+ * // Mixed flat and nested fields
47
+ * buildGlobalSearchWhere(['email', 'firstName', ['organization', 'name']], 'acme')
48
+ * ```
49
+ */
50
+ export function buildGlobalSearchWhere(searchFields, searchTerm) {
51
+ if (!searchTerm || searchTerm.trim() === '' || searchFields.length === 0) {
52
+ return {};
53
+ }
54
+ const trimmedTerm = searchTerm.trim();
55
+ const normalizedFields = searchFields.map(normalizeSearchField);
56
+ const orConditions = normalizedFields.map((fieldPath) => buildSearchConditionForField(fieldPath, trimmedTerm));
57
+ if (orConditions.length === 1) {
58
+ const condition = orConditions[0];
59
+ if (!condition) {
60
+ return {};
61
+ }
62
+ return condition;
63
+ }
64
+ return {
65
+ OR: orConditions,
66
+ };
67
+ }
68
+ //# sourceMappingURL=global-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-search.js","sourceRoot":"","sources":["../../src/list-query/global-search.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAuB;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,SAAoB,EACpB,UAAkB;IAElB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO;YACL,CAAC,KAAK,CAAC,EAAE;gBACP,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,aAAa;aACpB;SACF,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO;QACL,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC,IAAiB,EAAE,UAAU,CAAC;KACrE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CACpC,YAAyC,EACzC,UAAmB;IAEnB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACtD,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,CACrD,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,EAAE,EAAE,YAAY;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { createListQuery, type ListQueryBuilder, type ListQueryConfig, type PaginatedResult } from './builder.js';
2
+ export { ListQuerySchema } from './query-schema.js';
3
+ export { booleanFilterSchema, createFilterSchema, createSortSchema, dateFilterSchema, enumFilterSchema, numberFilterSchema, relationFilterSchema, sortDirectionSchema, stringFilterSchema, } from './schema-helpers.js';
4
+ export type { FieldPath, FilterOperator, ParsedFilter, ParsedSort, ParsedQueryParams, PrismaListParams, RawQueryParams, SearchFieldInput, SortDirection, } from './types.js';
5
+ export type { SchemaValidationConfig, ValidatedListParams } from './validator.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/list-query/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGlH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,aAAa,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Builder API
2
+ export { createListQuery } from './builder.js';
3
+ // Query schema
4
+ export { ListQuerySchema } from './query-schema.js';
5
+ // Schema helpers
6
+ export { booleanFilterSchema, createFilterSchema, createSortSchema, dateFilterSchema, enumFilterSchema, numberFilterSchema, relationFilterSchema, sortDirectionSchema, stringFilterSchema, } from './schema-helpers.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/list-query/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,eAAe,EAAqE,MAAM,cAAc,CAAC;AAElH,eAAe;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,iBAAiB;AACjB,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ParsedFilter, ParsedQueryParams, ParsedSort, RawQueryParams } from './types.js';
2
+ /**
3
+ * Parse sorts string into array of ParsedSort
4
+ * Format: field1,-field2,field3
5
+ */
6
+ export declare function parseSorts(sortsString?: string): readonly ParsedSort[];
7
+ /**
8
+ * Parse filters string into array of ParsedFilter
9
+ * Format: field1==value1,field2@=value2
10
+ * Handles escaped commas in values (e.g., field@=value\,with\,commas)
11
+ */
12
+ export declare function parseFilters(filtersString?: string): readonly ParsedFilter[];
13
+ /**
14
+ * Parse raw query parameters into structured ParsedQueryParams
15
+ */
16
+ export declare function parseQueryParams(raw: RawQueryParams): ParsedQueryParams;
17
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/list-query/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACf,MAAM,YAAY,CAAC;AA8BpB;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAKtE;AAgFD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CA0B5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,iBAAiB,CAavE"}