@opensaas/stack-core 0.38.0 → 0.39.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 (204) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +123 -0
  3. package/CLAUDE.md +21 -0
  4. package/dist/access/access-filter.d.ts +46 -1
  5. package/dist/access/access-filter.d.ts.map +1 -1
  6. package/dist/access/access-filter.js +113 -4
  7. package/dist/access/access-filter.js.map +1 -1
  8. package/dist/access/declared-dependencies.d.ts.map +1 -1
  9. package/dist/access/declared-dependencies.js +4 -9
  10. package/dist/access/declared-dependencies.js.map +1 -1
  11. package/dist/access/engine.d.ts +0 -20
  12. package/dist/access/engine.d.ts.map +1 -1
  13. package/dist/access/engine.js +0 -25
  14. package/dist/access/engine.js.map +1 -1
  15. package/dist/access/errors.d.ts +49 -0
  16. package/dist/access/errors.d.ts.map +1 -1
  17. package/dist/access/errors.js +75 -0
  18. package/dist/access/errors.js.map +1 -1
  19. package/dist/access/field-access.d.ts +39 -1
  20. package/dist/access/field-access.d.ts.map +1 -1
  21. package/dist/access/field-access.js +108 -42
  22. package/dist/access/field-access.js.map +1 -1
  23. package/dist/access/field-access.test.js +229 -2
  24. package/dist/access/field-access.test.js.map +1 -1
  25. package/dist/access/field-transforms.d.ts +0 -27
  26. package/dist/access/field-transforms.d.ts.map +1 -1
  27. package/dist/access/field-visibility.d.ts +0 -4
  28. package/dist/access/field-visibility.d.ts.map +1 -1
  29. package/dist/access/field-visibility.js +13 -39
  30. package/dist/access/field-visibility.js.map +1 -1
  31. package/dist/access/index.d.ts +6 -2
  32. package/dist/access/index.d.ts.map +1 -1
  33. package/dist/access/index.js +12 -2
  34. package/dist/access/index.js.map +1 -1
  35. package/dist/access/query-validation.d.ts +121 -0
  36. package/dist/access/query-validation.d.ts.map +1 -0
  37. package/dist/access/query-validation.js +292 -0
  38. package/dist/access/query-validation.js.map +1 -0
  39. package/dist/access/relationship-count.d.ts.map +1 -1
  40. package/dist/access/relationship-count.js +2 -10
  41. package/dist/access/relationship-count.js.map +1 -1
  42. package/dist/access/relationship-label-filter.d.ts +23 -23
  43. package/dist/access/relationship-label-filter.d.ts.map +1 -1
  44. package/dist/access/relationship-label-filter.js +5 -76
  45. package/dist/access/relationship-label-filter.js.map +1 -1
  46. package/dist/access/relationship-label-filter.test.js +19 -56
  47. package/dist/access/relationship-label-filter.test.js.map +1 -1
  48. package/dist/access/transaction-registry.d.ts +45 -0
  49. package/dist/access/transaction-registry.d.ts.map +1 -0
  50. package/dist/access/transaction-registry.js +37 -0
  51. package/dist/access/transaction-registry.js.map +1 -0
  52. package/dist/access/types.d.ts +55 -59
  53. package/dist/access/types.d.ts.map +1 -1
  54. package/dist/config/index.d.ts +9 -7
  55. package/dist/config/index.d.ts.map +1 -1
  56. package/dist/config/index.js +10 -18
  57. package/dist/config/index.js.map +1 -1
  58. package/dist/config/label.d.ts +6 -13
  59. package/dist/config/label.d.ts.map +1 -1
  60. package/dist/config/label.js +6 -13
  61. package/dist/config/label.js.map +1 -1
  62. package/dist/config/nav-count.d.ts +11 -19
  63. package/dist/config/nav-count.d.ts.map +1 -1
  64. package/dist/config/nav-count.js +11 -19
  65. package/dist/config/nav-count.js.map +1 -1
  66. package/dist/config/plugin-engine.d.ts +0 -10
  67. package/dist/config/plugin-engine.d.ts.map +1 -1
  68. package/dist/config/plugin-engine.js +1 -37
  69. package/dist/config/plugin-engine.js.map +1 -1
  70. package/dist/config/types.d.ts +94 -109
  71. package/dist/config/types.d.ts.map +1 -1
  72. package/dist/context/apply-defaults.d.ts +8 -31
  73. package/dist/context/apply-defaults.d.ts.map +1 -1
  74. package/dist/context/apply-defaults.js +12 -41
  75. package/dist/context/apply-defaults.js.map +1 -1
  76. package/dist/context/hook-pipeline.d.ts +4 -29
  77. package/dist/context/hook-pipeline.d.ts.map +1 -1
  78. package/dist/context/hook-pipeline.js +8 -41
  79. package/dist/context/hook-pipeline.js.map +1 -1
  80. package/dist/context/index.d.ts +4 -15
  81. package/dist/context/index.d.ts.map +1 -1
  82. package/dist/context/index.js +190 -193
  83. package/dist/context/index.js.map +1 -1
  84. package/dist/context/nested-operations.d.ts +7 -26
  85. package/dist/context/nested-operations.d.ts.map +1 -1
  86. package/dist/context/nested-operations.js +73 -171
  87. package/dist/context/nested-operations.js.map +1 -1
  88. package/dist/context/transaction-boundary.d.ts +36 -47
  89. package/dist/context/transaction-boundary.d.ts.map +1 -1
  90. package/dist/context/transaction-boundary.js +92 -79
  91. package/dist/context/transaction-boundary.js.map +1 -1
  92. package/dist/context/write-pipeline.d.ts +25 -64
  93. package/dist/context/write-pipeline.d.ts.map +1 -1
  94. package/dist/context/write-pipeline.js +81 -111
  95. package/dist/context/write-pipeline.js.map +1 -1
  96. package/dist/fields/format-prisma-default.d.ts.map +1 -1
  97. package/dist/fields/format-prisma-default.js +4 -7
  98. package/dist/fields/format-prisma-default.js.map +1 -1
  99. package/dist/fields/index.d.ts +17 -2
  100. package/dist/fields/index.d.ts.map +1 -1
  101. package/dist/fields/index.js +136 -147
  102. package/dist/fields/index.js.map +1 -1
  103. package/dist/filter/collect.d.ts +26 -3
  104. package/dist/filter/collect.d.ts.map +1 -1
  105. package/dist/filter/collect.js +30 -12
  106. package/dist/filter/collect.js.map +1 -1
  107. package/dist/filter/filter.test.js +98 -15
  108. package/dist/filter/filter.test.js.map +1 -1
  109. package/dist/filter/index.d.ts +1 -0
  110. package/dist/filter/index.d.ts.map +1 -1
  111. package/dist/filter/index.js.map +1 -1
  112. package/dist/filter/map.d.ts.map +1 -1
  113. package/dist/filter/map.js +0 -5
  114. package/dist/filter/map.js.map +1 -1
  115. package/dist/filter/parse.d.ts.map +1 -1
  116. package/dist/filter/parse.js +2 -9
  117. package/dist/filter/parse.js.map +1 -1
  118. package/dist/filter/serialize.d.ts.map +1 -1
  119. package/dist/filter/serialize.js +2 -4
  120. package/dist/filter/serialize.js.map +1 -1
  121. package/dist/hooks/index.d.ts +4 -42
  122. package/dist/hooks/index.d.ts.map +1 -1
  123. package/dist/hooks/index.js +5 -59
  124. package/dist/hooks/index.js.map +1 -1
  125. package/dist/index.d.ts +3 -1
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +20 -4
  128. package/dist/index.js.map +1 -1
  129. package/dist/internal.d.ts +1 -0
  130. package/dist/internal.d.ts.map +1 -1
  131. package/dist/internal.js +4 -0
  132. package/dist/internal.js.map +1 -1
  133. package/dist/lib/case-utils.d.ts +0 -32
  134. package/dist/lib/case-utils.d.ts.map +1 -1
  135. package/dist/lib/case-utils.js +0 -32
  136. package/dist/lib/case-utils.js.map +1 -1
  137. package/dist/mcp/handler.d.ts +0 -4
  138. package/dist/mcp/handler.d.ts.map +1 -1
  139. package/dist/mcp/handler.js +12 -69
  140. package/dist/mcp/handler.js.map +1 -1
  141. package/dist/query/index.d.ts +26 -227
  142. package/dist/query/index.d.ts.map +1 -1
  143. package/dist/query/index.js +14 -117
  144. package/dist/query/index.js.map +1 -1
  145. package/dist/utils/password.d.ts +0 -68
  146. package/dist/utils/password.d.ts.map +1 -1
  147. package/dist/utils/password.js +7 -76
  148. package/dist/utils/password.js.map +1 -1
  149. package/dist/validation/field-config.d.ts.map +1 -1
  150. package/dist/validation/field-config.js +0 -6
  151. package/dist/validation/field-config.js.map +1 -1
  152. package/dist/validation/schema.d.ts +0 -7
  153. package/dist/validation/schema.d.ts.map +1 -1
  154. package/dist/validation/schema.js +0 -10
  155. package/dist/validation/schema.js.map +1 -1
  156. package/package.json +1 -1
  157. package/src/access/access-filter.ts +152 -5
  158. package/src/access/declared-dependencies.ts +4 -9
  159. package/src/access/engine.ts +0 -25
  160. package/src/access/errors.ts +81 -0
  161. package/src/access/field-access.test.ts +312 -2
  162. package/src/access/field-access.ts +118 -42
  163. package/src/access/field-transforms.ts +8 -39
  164. package/src/access/field-visibility.ts +16 -47
  165. package/src/access/index.ts +20 -2
  166. package/src/access/query-validation.ts +359 -0
  167. package/src/access/relationship-count.ts +2 -10
  168. package/src/access/relationship-label-filter.test.ts +19 -68
  169. package/src/access/relationship-label-filter.ts +27 -104
  170. package/src/access/transaction-registry.ts +58 -0
  171. package/src/access/types.ts +83 -86
  172. package/src/config/index.ts +10 -22
  173. package/src/config/label.ts +6 -13
  174. package/src/config/nav-count.ts +11 -19
  175. package/src/config/plugin-engine.ts +1 -37
  176. package/src/config/types.ts +95 -110
  177. package/src/context/apply-defaults.ts +12 -44
  178. package/src/context/hook-pipeline.ts +12 -67
  179. package/src/context/index.ts +263 -247
  180. package/src/context/nested-operations.ts +94 -226
  181. package/src/context/transaction-boundary.ts +113 -109
  182. package/src/context/write-pipeline.ts +99 -155
  183. package/src/fields/format-prisma-default.ts +4 -7
  184. package/src/fields/index.ts +155 -147
  185. package/src/filter/collect.ts +48 -12
  186. package/src/filter/filter.test.ts +153 -15
  187. package/src/filter/index.ts +1 -0
  188. package/src/filter/map.ts +0 -5
  189. package/src/filter/parse.ts +2 -9
  190. package/src/filter/serialize.ts +2 -4
  191. package/src/hooks/index.ts +5 -59
  192. package/src/index.ts +23 -4
  193. package/src/internal.ts +5 -0
  194. package/src/lib/case-utils.ts +0 -32
  195. package/src/mcp/handler.ts +13 -71
  196. package/src/query/index.ts +29 -235
  197. package/src/utils/password.ts +7 -76
  198. package/src/validation/field-config.ts +0 -6
  199. package/src/validation/schema.ts +0 -10
  200. package/tests/context.test.ts +700 -1
  201. package/tests/field-types.test.ts +222 -0
  202. package/tests/mcp-handler.test.ts +34 -0
  203. package/tests/transaction-boundary-outermost.test.ts +530 -0
  204. package/tsconfig.tsbuildinfo +1 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,8CAA8C;AAC9C,EAAE;AACF,kEAAkE;AAClE,gEAAgE;AAChE,gEAAgE;AAChE,6DAA6D;AAC7D,yEAAyE;AACzE,kEAAkE;AAElE,kBAAkB;AAClB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAgChD,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAO/C,0EAA0E;AAC1E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5E,0EAA0E;AAC1E,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEnE,yEAAyE;AACzE,gFAAgF;AAChF,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AAErF,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,4EAA4E;AAC5E,wEAAwE;AACxE,+EAA+E;AAC/E,mCAAmC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAA;AAEjE,qEAAqE;AACrE,6EAA6E;AAC7E,iFAAiF;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,uEAAuE;AACvE,4EAA4E;AAC5E,6EAA6E;AAC7E,oEAAoE;AACpE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAGxF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,8CAA8C;AAC9C,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAGpG,qEAAqE;AACrE,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,gEAAgE;AAChE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGxE,qEAAqE;AACrE,6EAA6E;AAC7E,yEAAyE;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAGxE,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,4EAA4E;AAC5E,0DAA0D;AAC1D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAA;AAW1B,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,gCAAgC,CAAA;AAEvC,0EAA0E;AAC1E,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,8CAA8C;AAC9C,EAAE;AACF,kEAAkE;AAClE,gEAAgE;AAChE,gEAAgE;AAChE,6DAA6D;AAC7D,yEAAyE;AACzE,kEAAkE;AAElE,kBAAkB;AAClB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAgChD,kBAAkB;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAO/C,0EAA0E;AAC1E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5E,0EAA0E;AAC1E,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEnE,yEAAyE;AACzE,gFAAgF;AAChF,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AAErF,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,4EAA4E;AAC5E,wEAAwE;AACxE,+EAA+E;AAC/E,mCAAmC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAA;AAEjE,qEAAqE;AACrE,6EAA6E;AAC7E,iFAAiF;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,0EAA0E;AAC1E,4EAA4E;AAC5E,yDAAyD;AACzD,6EAA6E;AAC7E,uEAAuE;AACvE,sBAAsB;AACtB,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAA;AAEjE,8EAA8E;AAC9E,4EAA4E;AAC5E,oEAAoE;AACpE,6EAA6E;AAC7E,0EAA0E;AAC1E,sBAAsB;AACtB,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAA;AAEnE,uEAAuE;AACvE,4EAA4E;AAC5E,6EAA6E;AAC7E,oEAAoE;AACpE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAGxF,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,8CAA8C;AAC9C,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAGpG,qEAAqE;AACrE,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,gEAAgE;AAChE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGxE,qEAAqE;AACrE,6EAA6E;AAC7E,yEAAyE;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAGxE,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,4EAA4E;AAC5E,0DAA0D;AAC1D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAA;AAY1B,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,gCAAgC,CAAA;AAEvC,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,OAAO,EACL,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,uCAAuC,CAAA"}
@@ -5,5 +5,6 @@ export { hashPassword, comparePassword, isHashedPassword, HashedPassword, } from
5
5
  export { pascalToCamel, pascalToKebab, kebabToPascal, kebabToCamel } from './lib/case-utils.js';
6
6
  export { validateWithZod, generateZodSchema } from './validation/schema.js';
7
7
  export { checkFieldAccess } from './access/index.js';
8
+ export { isFieldReadableForPredicate } from './access/index.js';
8
9
  export type { DatabaseConfig, SessionConfig, ThemeConfig, ThemePreset, ThemeColors, ThemeFonts, ThemeShadows, FileMetadata, ImageMetadata, ImageTransformationResult, } from './config/index.js';
9
10
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAWA,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAG1B,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGhE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAG/F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAK3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,YAAY,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,yBAAyB,GAC1B,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAWA,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAG1B,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGhE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAG/F,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAK3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAKpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAG/D,YAAY,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,yBAAyB,GAC1B,MAAM,mBAAmB,CAAA"}
package/dist/internal.js CHANGED
@@ -17,4 +17,8 @@ export { validateWithZod, generateZodSchema } from './validation/schema.js';
17
17
  // whether a Relationship-table cell may show an inline-edit affordance (#737).
18
18
  // This is the single field-access evaluator — the UI must not re-implement it.
19
19
  export { checkFieldAccess } from './access/index.js';
20
+ // Predicate-time field-read evaluator (#915), reused by @opensaas/stack-ui to
21
+ // keep the admin list view's sort validation in lockstep with the engine: a
22
+ // field the session cannot read cannot seed an `orderBy` either.
23
+ export { isFieldReadableForPredicate } from './access/index.js';
20
24
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gCAAgC;AAChC,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,yDAAyD;AACzD,kEAAkE;AAgBlE,4FAA4F;AAC5F,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,mDAAmD;AACnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE/F,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE3E,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gCAAgC;AAChC,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,uEAAuE;AACvE,yDAAyD;AACzD,kEAAkE;AAgBlE,4FAA4F;AAC5F,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,mDAAmD;AACnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE/F,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE3E,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,8EAA8E;AAC9E,4EAA4E;AAC5E,iEAAiE;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA"}
@@ -7,43 +7,11 @@
7
7
  * - Context db properties: camelCase (e.g., "authUser", "blogPost")
8
8
  * - URLs: kebab-case (e.g., "auth-user", "blog-post")
9
9
  */
10
- /**
11
- * Convert PascalCase to camelCase
12
- * AuthUser -> authUser
13
- * BlogPost -> blogPost
14
- */
15
10
  export declare function pascalToCamel(str: string): string;
16
- /**
17
- * Convert PascalCase to kebab-case
18
- * AuthUser -> auth-user
19
- * BlogPost -> blog-post
20
- */
21
11
  export declare function pascalToKebab(str: string): string;
22
- /**
23
- * Convert kebab-case to PascalCase
24
- * auth-user -> AuthUser
25
- * blog-post -> BlogPost
26
- */
27
12
  export declare function kebabToPascal(str: string): string;
28
- /**
29
- * Convert kebab-case to camelCase
30
- * auth-user -> authUser
31
- * blog-post -> blogPost
32
- */
33
13
  export declare function kebabToCamel(str: string): string;
34
- /**
35
- * Get the database key for a list (camelCase)
36
- * Used for accessing context.db and prisma client
37
- */
38
14
  export declare function getDbKey(listKey: string): string;
39
- /**
40
- * Get the URL segment for a list (kebab-case)
41
- * Used for constructing admin URLs
42
- */
43
15
  export declare function getUrlKey(listKey: string): string;
44
- /**
45
- * Get the list key from a URL segment (PascalCase)
46
- * Used for parsing admin URLs
47
- */
48
16
  export declare function getListKeyFromUrl(urlSegment: string): string;
49
17
  //# sourceMappingURL=case-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"case-utils.d.ts","sourceRoot":"","sources":["../../src/lib/case-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"case-utils.d.ts","sourceRoot":"","sources":["../../src/lib/case-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -7,61 +7,29 @@
7
7
  * - Context db properties: camelCase (e.g., "authUser", "blogPost")
8
8
  * - URLs: kebab-case (e.g., "auth-user", "blog-post")
9
9
  */
10
- /**
11
- * Convert PascalCase to camelCase
12
- * AuthUser -> authUser
13
- * BlogPost -> blogPost
14
- */
15
10
  export function pascalToCamel(str) {
16
11
  return str.charAt(0).toLowerCase() + str.slice(1);
17
12
  }
18
- /**
19
- * Convert PascalCase to kebab-case
20
- * AuthUser -> auth-user
21
- * BlogPost -> blog-post
22
- */
23
13
  export function pascalToKebab(str) {
24
14
  return str.replace(/([A-Z])/g, (match, p1, offset) => {
25
15
  return offset > 0 ? `-${p1.toLowerCase()}` : p1.toLowerCase();
26
16
  });
27
17
  }
28
- /**
29
- * Convert kebab-case to PascalCase
30
- * auth-user -> AuthUser
31
- * blog-post -> BlogPost
32
- */
33
18
  export function kebabToPascal(str) {
34
19
  return str
35
20
  .split('-')
36
21
  .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
37
22
  .join('');
38
23
  }
39
- /**
40
- * Convert kebab-case to camelCase
41
- * auth-user -> authUser
42
- * blog-post -> blogPost
43
- */
44
24
  export function kebabToCamel(str) {
45
25
  return str.replace(/-([a-z])/g, (match, p1) => p1.toUpperCase());
46
26
  }
47
- /**
48
- * Get the database key for a list (camelCase)
49
- * Used for accessing context.db and prisma client
50
- */
51
27
  export function getDbKey(listKey) {
52
28
  return pascalToCamel(listKey);
53
29
  }
54
- /**
55
- * Get the URL segment for a list (kebab-case)
56
- * Used for constructing admin URLs
57
- */
58
30
  export function getUrlKey(listKey) {
59
31
  return pascalToKebab(listKey);
60
32
  }
61
- /**
62
- * Get the list key from a URL segment (PascalCase)
63
- * Used for parsing admin URLs
64
- */
65
33
  export function getListKeyFromUrl(urlSegment) {
66
34
  return kebabToPascal(urlSegment);
67
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"case-utils.js","sourceRoot":"","sources":["../../src/lib/case-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QACnD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAA;IAC/D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,aAAa,CAAC,UAAU,CAAC,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"case-utils.js","sourceRoot":"","sources":["../../src/lib/case-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QACnD,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAA;IAC/D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,aAAa,CAAC,UAAU,CAAC,CAAA;AAClC,CAAC"}
@@ -1,7 +1,3 @@
1
- /**
2
- * Runtime MCP route handler
3
- * Creates MCP API handlers from OpenSaaS config at runtime
4
- */
5
1
  import type { OpenSaasConfig } from '../config/types.js';
6
2
  import type { AccessContext } from '../access/types.js';
7
3
  import type { McpSessionProvider } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/mcp/handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,oBAAoB,CAAA;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEhE;;;;GAIG;AACH,KAAK,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAkDhE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CACjE,GAAG;IACF,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC5C,CA0FA"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/mcp/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,oBAAoB,CAAA;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEhE;;;;GAIG;AACH,KAAK,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAqChE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CACjE,GAAG;IACF,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACxC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC5C,CAiFA"}
@@ -1,15 +1,6 @@
1
- /**
2
- * Runtime MCP route handler
3
- * Creates MCP API handlers from OpenSaaS config at runtime
4
- */
5
1
  import * as z from 'zod';
6
2
  import { getDbKey } from '../lib/case-utils.js';
7
- /**
8
- * Convert an MCP session into a context session.
9
- * Transport-level fields (accessToken, expiresAt, scopes) are stripped;
10
- * everything else — userId plus any custom fields the session provider
11
- * attached (email, role, ...) — flows through to access control.
12
- */
3
+ /** Strips transport-level fields; userId and any custom session fields flow through to access control. */
13
4
  function toContextSession(session) {
14
5
  const { accessToken: _accessToken, expiresAt: _expiresAt, scopes: _scopes, ...rest } = session;
15
6
  return rest;
@@ -21,19 +12,11 @@ function toContextSession(session) {
21
12
  function getPluginMcpTools(config) {
22
13
  return config._pluginData?.__mcpTools ?? [];
23
14
  }
24
- /**
25
- * Whether a custom tool's inputSchema is a Zod schema (as opposed to a plain
26
- * JSON Schema object). Duck-typed so it works across zod module instances.
27
- */
28
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- duck-typing across zod instances
29
16
  function isZodSchema(schema) {
30
17
  return !!schema && typeof schema.safeParse === 'function';
31
18
  }
32
- /**
33
- * Normalize a custom tool's inputSchema for the tools/list response.
34
- * Zod schemas are converted to JSON Schema (the MCP wire format); plain
35
- * objects are passed through as-is.
36
- */
19
+ /** Zod schemas are converted to JSON Schema (the MCP wire format); plain objects pass through as-is. */
37
20
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- inputSchema is user-supplied
38
21
  function toolInputSchemaToJson(inputSchema) {
39
22
  if (isZodSchema(inputSchema)) {
@@ -72,7 +55,6 @@ function toolInputSchemaToJson(inputSchema) {
72
55
  */
73
56
  export function createMcpHandlers(options) {
74
57
  const { config, getSession, getContext } = options;
75
- // Validate MCP is enabled
76
58
  if (!config.mcp?.enabled) {
77
59
  const notEnabledHandler = async () => new Response(JSON.stringify({ error: 'MCP not enabled' }), {
78
60
  status: 404,
@@ -81,11 +63,7 @@ export function createMcpHandlers(options) {
81
63
  return { GET: notEnabledHandler, POST: notEnabledHandler, DELETE: notEnabledHandler };
82
64
  }
83
65
  const basePath = config.mcp.basePath || '/api/mcp';
84
- /**
85
- * Main MCP request handler
86
- */
87
66
  const handler = async (req) => {
88
- // Authenticate using provided session provider
89
67
  const session = await getSession(req.headers);
90
68
  if (!session) {
91
69
  return new Response(null, {
@@ -97,20 +75,16 @@ export function createMcpHandlers(options) {
97
75
  }
98
76
  try {
99
77
  const body = (await req.json());
100
- // Handle initialize
101
78
  if (body.method === 'initialize') {
102
79
  return handleInitialize(body.params, body.id);
103
80
  }
104
- // Handle notifications/initialized (sent by client after initialize response)
105
81
  if (body.method === 'notifications/initialized') {
106
82
  // Notifications don't require a response in JSON-RPC 2.0
107
83
  return new Response(null, { status: 204 });
108
84
  }
109
- // Handle tools/list
110
85
  if (body.method === 'tools/list') {
111
86
  return handleToolsList(config, body.id);
112
87
  }
113
- // Handle tools/call
114
88
  if (body.method === 'tools/call') {
115
89
  return await handleToolsCall(body.params, session, config, getContext, body.id);
116
90
  }
@@ -139,9 +113,6 @@ export function createMcpHandlers(options) {
139
113
  DELETE: handler,
140
114
  };
141
115
  }
142
- /**
143
- * Handle initialize request - respond with server capabilities
144
- */
145
116
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Initialize params are from the client
146
117
  function handleInitialize(_params, id) {
147
118
  return new Response(JSON.stringify({
@@ -161,9 +132,6 @@ function handleInitialize(_params, id) {
161
132
  headers: { 'Content-Type': 'application/json' },
162
133
  });
163
134
  }
164
- /**
165
- * Convert field config to JSON schema property
166
- */
167
135
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Field configs have varying structures
168
136
  function fieldToJsonSchema(fieldName, fieldConfig) {
169
137
  const baseSchema = {};
@@ -199,7 +167,6 @@ function fieldToJsonSchema(fieldName, fieldConfig) {
199
167
  }
200
168
  break;
201
169
  case 'relationship':
202
- // For relationships, expect an ID or connect object
203
170
  baseSchema.type = 'object';
204
171
  baseSchema.properties = {
205
172
  connect: {
@@ -211,23 +178,17 @@ function fieldToJsonSchema(fieldName, fieldConfig) {
211
178
  };
212
179
  break;
213
180
  default:
214
- // For custom field types, default to string
215
181
  baseSchema.type = 'string';
216
182
  }
217
183
  return baseSchema;
218
184
  }
219
- /**
220
- * Generate field schemas for create/update operations
221
- */
222
185
  function generateFieldSchemas(fields, operation) {
223
186
  const properties = {};
224
187
  const required = [];
225
188
  for (const [fieldName, fieldConfig] of Object.entries(fields)) {
226
- // Skip system fields
227
189
  if (['id', 'createdAt', 'updatedAt'].includes(fieldName))
228
190
  continue;
229
191
  properties[fieldName] = fieldToJsonSchema(fieldName, fieldConfig);
230
- // Add to required array if field is required for this operation
231
192
  if (operation === 'create' &&
232
193
  'validation' in fieldConfig &&
233
194
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Validation property varies by field type
@@ -237,14 +198,9 @@ function generateFieldSchemas(fields, operation) {
237
198
  }
238
199
  return { properties, required };
239
200
  }
240
- /**
241
- * Handle tools/list request - list all available tools
242
- */
243
201
  function handleToolsList(config, id) {
244
202
  const tools = [];
245
- // Generate CRUD tools for each list
246
203
  for (const [listKey, listConfig] of Object.entries(config.lists)) {
247
- // Check if MCP is enabled for this list
248
204
  if (listConfig.mcp?.enabled === false)
249
205
  continue;
250
206
  const dbKey = getDbKey(listKey);
@@ -260,7 +216,6 @@ function handleToolsList(config, id) {
260
216
  update: listConfig.mcp?.tools?.update ?? defaultTools.update ?? true,
261
217
  delete: listConfig.mcp?.tools?.delete ?? defaultTools.delete ?? true,
262
218
  };
263
- // Read tool
264
219
  if (enabledTools.read) {
265
220
  tools.push({
266
221
  name: `list_${dbKey}_query`,
@@ -276,7 +231,6 @@ function handleToolsList(config, id) {
276
231
  },
277
232
  });
278
233
  }
279
- // Create tool
280
234
  if (enabledTools.create) {
281
235
  const fieldSchemas = generateFieldSchemas(listConfig.fields, 'create');
282
236
  tools.push({
@@ -296,7 +250,6 @@ function handleToolsList(config, id) {
296
250
  },
297
251
  });
298
252
  }
299
- // Update tool
300
253
  if (enabledTools.update) {
301
254
  const fieldSchemas = generateFieldSchemas(listConfig.fields, 'update');
302
255
  tools.push({
@@ -323,7 +276,6 @@ function handleToolsList(config, id) {
323
276
  },
324
277
  });
325
278
  }
326
- // Delete tool
327
279
  if (enabledTools.delete) {
328
280
  tools.push({
329
281
  name: `list_${dbKey}_delete`,
@@ -344,7 +296,6 @@ function handleToolsList(config, id) {
344
296
  },
345
297
  });
346
298
  }
347
- // Custom tools
348
299
  if (listConfig.mcp?.customTools) {
349
300
  for (const customTool of listConfig.mcp.customTools) {
350
301
  tools.push({
@@ -371,9 +322,6 @@ function handleToolsList(config, id) {
371
322
  headers: { 'Content-Type': 'application/json' },
372
323
  });
373
324
  }
374
- /**
375
- * Handle tools/call request - execute a tool
376
- */
377
325
  async function handleToolsCall(
378
326
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- MCP tool params vary by tool
379
327
  params, session, config, getContext, id) {
@@ -389,22 +337,16 @@ params, session, config, getContext, id) {
389
337
  headers: { 'Content-Type': 'application/json' },
390
338
  });
391
339
  }
392
- // Parse tool name: list_{dbKey}_{operation}
393
340
  const match = toolName.match(/^list_([a-z][a-zA-Z0-9]*)_(query|create|update|delete)$/);
394
341
  if (match) {
395
342
  const [, dbKey, operation] = match;
396
343
  return await handleCrudTool(dbKey, operation, toolArgs, session, config, getContext, id);
397
344
  }
398
- // Handle custom tools
399
345
  return await handleCustomTool(toolName, toolArgs, session, config, getContext, id);
400
346
  }
401
- /**
402
- * Handle CRUD tool execution
403
- */
404
347
  async function handleCrudTool(dbKey, operation,
405
348
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Tool arguments vary by operation
406
349
  args, session, config, getContext, id) {
407
- // Create context with the user session (custom session fields pass through)
408
350
  const context = await getContext(toContextSession(session));
409
351
  try {
410
352
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Result type varies by Prisma operation
@@ -454,9 +396,6 @@ args, session, config, getContext, id) {
454
396
  return createErrorResponse('Operation failed: ' + (error instanceof Error ? error.message : 'Unknown error'), id);
455
397
  }
456
398
  }
457
- /**
458
- * Handle custom tool execution
459
- */
460
399
  async function handleCustomTool(toolName,
461
400
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Custom tool arguments are user-defined
462
401
  args, session, config, getContext, id) {
@@ -471,7 +410,6 @@ args, session, config, getContext, id) {
471
410
  if (!customTool) {
472
411
  return createErrorResponse(`Unknown tool: ${toolName}`, id);
473
412
  }
474
- // Validate input when the tool declares a Zod schema
475
413
  let input = args;
476
414
  if (isZodSchema(customTool.inputSchema)) {
477
415
  const parsed = customTool.inputSchema.safeParse(args);
@@ -503,23 +441,28 @@ args, session, config, getContext, id) {
503
441
  }
504
442
  }
505
443
  /**
506
- * Helper to create success response
444
+ * `JSON.stringify` replacer rendering a `bigint` (e.g. a `bigInt()` field's
445
+ * value) as a decimal string instead of throwing
446
+ * (`TypeError: Do not know how to serialize a BigInt`). A decimal string is
447
+ * the conventional JSON encoding of a 64-bit integer and is what an MCP
448
+ * client can consume — the field's TypeScript type stays `bigint` in
449
+ * application code (ADR-0029).
507
450
  */
451
+ function mcpJsonReplacer(_key, value) {
452
+ return typeof value === 'bigint' ? value.toString() : value;
453
+ }
508
454
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Response data structure is flexible per MCP protocol
509
455
  function createSuccessResponse(data, id) {
510
456
  return new Response(JSON.stringify({
511
457
  jsonrpc: '2.0',
512
458
  id: id ?? null,
513
459
  result: {
514
- content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
460
+ content: [{ type: 'text', text: JSON.stringify(data, mcpJsonReplacer, 2) }],
515
461
  },
516
462
  }), {
517
463
  headers: { 'Content-Type': 'application/json' },
518
464
  });
519
465
  }
520
- /**
521
- * Helper to create error response
522
- */
523
466
  function createErrorResponse(message, id) {
524
467
  return new Response(JSON.stringify({
525
468
  jsonrpc: '2.0',
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/mcp/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/mcp/handler.ts"],"names":[],"mappings":"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"}