@acmekit/framework 2.13.1

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 (362) hide show
  1. package/README.md +0 -0
  2. package/dist/acmekit-app-loader.d.ts +70 -0
  3. package/dist/acmekit-app-loader.d.ts.map +1 -0
  4. package/dist/acmekit-app-loader.js +256 -0
  5. package/dist/acmekit-app-loader.js.map +1 -0
  6. package/dist/build-tools/compiler.d.ts +64 -0
  7. package/dist/build-tools/compiler.d.ts.map +1 -0
  8. package/dist/build-tools/compiler.js +423 -0
  9. package/dist/build-tools/compiler.js.map +1 -0
  10. package/dist/build-tools/index.d.ts +2 -0
  11. package/dist/build-tools/index.d.ts.map +1 -0
  12. package/dist/build-tools/index.js +18 -0
  13. package/dist/build-tools/index.js.map +1 -0
  14. package/dist/config/config.d.ts +39 -0
  15. package/dist/config/config.d.ts.map +1 -0
  16. package/dist/config/config.js +155 -0
  17. package/dist/config/config.js.map +1 -0
  18. package/dist/config/index.d.ts +5 -0
  19. package/dist/config/index.d.ts.map +1 -0
  20. package/dist/config/index.js +21 -0
  21. package/dist/config/index.js.map +1 -0
  22. package/dist/config/loader.d.ts +15 -0
  23. package/dist/config/loader.d.ts.map +1 -0
  24. package/dist/config/loader.js +39 -0
  25. package/dist/config/loader.js.map +1 -0
  26. package/dist/config/types.d.ts +2 -0
  27. package/dist/config/types.d.ts.map +1 -0
  28. package/dist/config/types.js +3 -0
  29. package/dist/config/types.js.map +1 -0
  30. package/dist/container.d.ts +3 -0
  31. package/dist/container.d.ts.map +1 -0
  32. package/dist/container.js +21 -0
  33. package/dist/container.js.map +1 -0
  34. package/dist/database/index.d.ts +3 -0
  35. package/dist/database/index.d.ts.map +1 -0
  36. package/dist/database/index.js +19 -0
  37. package/dist/database/index.js.map +1 -0
  38. package/dist/database/pg-connection-loader.d.ts +6 -0
  39. package/dist/database/pg-connection-loader.d.ts.map +1 -0
  40. package/dist/database/pg-connection-loader.js +68 -0
  41. package/dist/database/pg-connection-loader.js.map +1 -0
  42. package/dist/deps/awilix.d.ts +2 -0
  43. package/dist/deps/awilix.d.ts.map +1 -0
  44. package/dist/deps/awilix.js +18 -0
  45. package/dist/deps/awilix.js.map +1 -0
  46. package/dist/deps/mikro-orm-cli.d.ts +2 -0
  47. package/dist/deps/mikro-orm-cli.d.ts.map +1 -0
  48. package/dist/deps/mikro-orm-cli.js +18 -0
  49. package/dist/deps/mikro-orm-cli.js.map +1 -0
  50. package/dist/deps/mikro-orm-core.d.ts +2 -0
  51. package/dist/deps/mikro-orm-core.d.ts.map +1 -0
  52. package/dist/deps/mikro-orm-core.js +18 -0
  53. package/dist/deps/mikro-orm-core.js.map +1 -0
  54. package/dist/deps/mikro-orm-knex.d.ts +2 -0
  55. package/dist/deps/mikro-orm-knex.d.ts.map +1 -0
  56. package/dist/deps/mikro-orm-knex.js +18 -0
  57. package/dist/deps/mikro-orm-knex.js.map +1 -0
  58. package/dist/deps/mikro-orm-migrations.d.ts +2 -0
  59. package/dist/deps/mikro-orm-migrations.d.ts.map +1 -0
  60. package/dist/deps/mikro-orm-migrations.js +18 -0
  61. package/dist/deps/mikro-orm-migrations.js.map +1 -0
  62. package/dist/deps/mikro-orm-postgresql.d.ts +2 -0
  63. package/dist/deps/mikro-orm-postgresql.d.ts.map +1 -0
  64. package/dist/deps/mikro-orm-postgresql.js +18 -0
  65. package/dist/deps/mikro-orm-postgresql.js.map +1 -0
  66. package/dist/deps/opentelemetry-api.d.ts +2 -0
  67. package/dist/deps/opentelemetry-api.d.ts.map +1 -0
  68. package/dist/deps/opentelemetry-api.js +18 -0
  69. package/dist/deps/opentelemetry-api.js.map +1 -0
  70. package/dist/deps/opentelemetry-instrumentation-pg.d.ts +2 -0
  71. package/dist/deps/opentelemetry-instrumentation-pg.d.ts.map +1 -0
  72. package/dist/deps/opentelemetry-instrumentation-pg.js +18 -0
  73. package/dist/deps/opentelemetry-instrumentation-pg.js.map +1 -0
  74. package/dist/deps/opentelemetry-resources.d.ts +2 -0
  75. package/dist/deps/opentelemetry-resources.d.ts.map +1 -0
  76. package/dist/deps/opentelemetry-resources.js +18 -0
  77. package/dist/deps/opentelemetry-resources.js.map +1 -0
  78. package/dist/deps/opentelemetry-sdk-node.d.ts +2 -0
  79. package/dist/deps/opentelemetry-sdk-node.d.ts.map +1 -0
  80. package/dist/deps/opentelemetry-sdk-node.js +18 -0
  81. package/dist/deps/opentelemetry-sdk-node.js.map +1 -0
  82. package/dist/deps/opentelemetry-sdk-trace-node.d.ts +2 -0
  83. package/dist/deps/opentelemetry-sdk-trace-node.d.ts.map +1 -0
  84. package/dist/deps/opentelemetry-sdk-trace-node.js +18 -0
  85. package/dist/deps/opentelemetry-sdk-trace-node.js.map +1 -0
  86. package/dist/deps/pg.d.ts +2 -0
  87. package/dist/deps/pg.d.ts.map +1 -0
  88. package/dist/deps/pg.js +18 -0
  89. package/dist/deps/pg.js.map +1 -0
  90. package/dist/deps/zod.d.ts +2 -0
  91. package/dist/deps/zod.d.ts.map +1 -0
  92. package/dist/deps/zod.js +18 -0
  93. package/dist/deps/zod.js.map +1 -0
  94. package/dist/feature-flags/feature-flag-loader.d.ts +7 -0
  95. package/dist/feature-flags/feature-flag-loader.d.ts.map +1 -0
  96. package/dist/feature-flags/feature-flag-loader.js +34 -0
  97. package/dist/feature-flags/feature-flag-loader.js.map +1 -0
  98. package/dist/feature-flags/flag-router.d.ts +32 -0
  99. package/dist/feature-flags/flag-router.d.ts.map +1 -0
  100. package/dist/feature-flags/flag-router.js +67 -0
  101. package/dist/feature-flags/flag-router.js.map +1 -0
  102. package/dist/feature-flags/index.d.ts +5 -0
  103. package/dist/feature-flags/index.d.ts.map +1 -0
  104. package/dist/feature-flags/index.js +21 -0
  105. package/dist/feature-flags/index.js.map +1 -0
  106. package/dist/feature-flags/types.d.ts +31 -0
  107. package/dist/feature-flags/types.d.ts.map +1 -0
  108. package/dist/feature-flags/types.js +3 -0
  109. package/dist/feature-flags/types.js.map +1 -0
  110. package/dist/http/express-loader.d.ts +10 -0
  111. package/dist/http/express-loader.d.ts.map +1 -0
  112. package/dist/http/express-loader.js +130 -0
  113. package/dist/http/express-loader.js.map +1 -0
  114. package/dist/http/index.d.ts +15 -0
  115. package/dist/http/index.d.ts.map +1 -0
  116. package/dist/http/index.js +31 -0
  117. package/dist/http/index.js.map +1 -0
  118. package/dist/http/middleware-file-loader.d.ts +33 -0
  119. package/dist/http/middleware-file-loader.d.ts.map +1 -0
  120. package/dist/http/middleware-file-loader.js +186 -0
  121. package/dist/http/middleware-file-loader.js.map +1 -0
  122. package/dist/http/middlewares/apply-default-filters.d.ts +3 -0
  123. package/dist/http/middlewares/apply-default-filters.d.ts.map +1 -0
  124. package/dist/http/middlewares/apply-default-filters.js +32 -0
  125. package/dist/http/middlewares/apply-default-filters.js.map +1 -0
  126. package/dist/http/middlewares/apply-locale.d.ts +12 -0
  127. package/dist/http/middlewares/apply-locale.d.ts.map +1 -0
  128. package/dist/http/middlewares/apply-locale.js +31 -0
  129. package/dist/http/middlewares/apply-locale.js.map +1 -0
  130. package/dist/http/middlewares/apply-params-as-filters.d.ts +5 -0
  131. package/dist/http/middlewares/apply-params-as-filters.d.ts.map +1 -0
  132. package/dist/http/middlewares/apply-params-as-filters.js +14 -0
  133. package/dist/http/middlewares/apply-params-as-filters.js.map +1 -0
  134. package/dist/http/middlewares/authenticate-middleware.d.ts +14 -0
  135. package/dist/http/middlewares/authenticate-middleware.d.ts.map +1 -0
  136. package/dist/http/middlewares/authenticate-middleware.js +142 -0
  137. package/dist/http/middlewares/authenticate-middleware.js.map +1 -0
  138. package/dist/http/middlewares/bodyparser.d.ts +13 -0
  139. package/dist/http/middlewares/bodyparser.d.ts.map +1 -0
  140. package/dist/http/middlewares/bodyparser.js +62 -0
  141. package/dist/http/middlewares/bodyparser.js.map +1 -0
  142. package/dist/http/middlewares/check-permissions.d.ts +15 -0
  143. package/dist/http/middlewares/check-permissions.d.ts.map +1 -0
  144. package/dist/http/middlewares/check-permissions.js +54 -0
  145. package/dist/http/middlewares/check-permissions.js.map +1 -0
  146. package/dist/http/middlewares/clear-filters-by-key.d.ts +3 -0
  147. package/dist/http/middlewares/clear-filters-by-key.d.ts.map +1 -0
  148. package/dist/http/middlewares/clear-filters-by-key.js +12 -0
  149. package/dist/http/middlewares/clear-filters-by-key.js.map +1 -0
  150. package/dist/http/middlewares/ensure-publishable-api-key.d.ts +3 -0
  151. package/dist/http/middlewares/ensure-publishable-api-key.d.ts.map +1 -0
  152. package/dist/http/middlewares/ensure-publishable-api-key.js +58 -0
  153. package/dist/http/middlewares/ensure-publishable-api-key.js.map +1 -0
  154. package/dist/http/middlewares/error-handler.d.ts +21 -0
  155. package/dist/http/middlewares/error-handler.d.ts.map +1 -0
  156. package/dist/http/middlewares/error-handler.js +107 -0
  157. package/dist/http/middlewares/error-handler.js.map +1 -0
  158. package/dist/http/middlewares/exception-formatter.d.ts +9 -0
  159. package/dist/http/middlewares/exception-formatter.d.ts.map +1 -0
  160. package/dist/http/middlewares/exception-formatter.js +36 -0
  161. package/dist/http/middlewares/exception-formatter.js.map +1 -0
  162. package/dist/http/middlewares/index.d.ts +10 -0
  163. package/dist/http/middlewares/index.d.ts.map +1 -0
  164. package/dist/http/middlewares/index.js +26 -0
  165. package/dist/http/middlewares/index.js.map +1 -0
  166. package/dist/http/middlewares/set-context.d.ts +3 -0
  167. package/dist/http/middlewares/set-context.d.ts.map +1 -0
  168. package/dist/http/middlewares/set-context.js +18 -0
  169. package/dist/http/middlewares/set-context.js.map +1 -0
  170. package/dist/http/router.d.ts +36 -0
  171. package/dist/http/router.d.ts.map +1 -0
  172. package/dist/http/router.js +317 -0
  173. package/dist/http/router.js.map +1 -0
  174. package/dist/http/routes-finder.d.ts +22 -0
  175. package/dist/http/routes-finder.d.ts.map +1 -0
  176. package/dist/http/routes-finder.js +68 -0
  177. package/dist/http/routes-finder.js.map +1 -0
  178. package/dist/http/routes-loader.d.ts +39 -0
  179. package/dist/http/routes-loader.d.ts.map +1 -0
  180. package/dist/http/routes-loader.js +232 -0
  181. package/dist/http/routes-loader.js.map +1 -0
  182. package/dist/http/routes-sorter.d.ts +105 -0
  183. package/dist/http/routes-sorter.d.ts.map +1 -0
  184. package/dist/http/routes-sorter.js +146 -0
  185. package/dist/http/routes-sorter.js.map +1 -0
  186. package/dist/http/types.d.ts +191 -0
  187. package/dist/http/types.d.ts.map +1 -0
  188. package/dist/http/types.js +16 -0
  189. package/dist/http/types.js.map +1 -0
  190. package/dist/http/utils/define-middlewares.d.ts +22 -0
  191. package/dist/http/utils/define-middlewares.d.ts.map +1 -0
  192. package/dist/http/utils/define-middlewares.js +27 -0
  193. package/dist/http/utils/define-middlewares.js.map +1 -0
  194. package/dist/http/utils/field-filtering/field-parser.d.ts +32 -0
  195. package/dist/http/utils/field-filtering/field-parser.d.ts.map +1 -0
  196. package/dist/http/utils/field-filtering/field-parser.js +87 -0
  197. package/dist/http/utils/field-filtering/field-parser.js.map +1 -0
  198. package/dist/http/utils/field-filtering/field-validator.d.ts +24 -0
  199. package/dist/http/utils/field-filtering/field-validator.d.ts.map +1 -0
  200. package/dist/http/utils/field-filtering/field-validator.js +67 -0
  201. package/dist/http/utils/field-filtering/field-validator.js.map +1 -0
  202. package/dist/http/utils/field-filtering/index.d.ts +33 -0
  203. package/dist/http/utils/field-filtering/index.d.ts.map +1 -0
  204. package/dist/http/utils/field-filtering/index.js +9 -0
  205. package/dist/http/utils/field-filtering/index.js.map +1 -0
  206. package/dist/http/utils/get-query-config.d.ts +50 -0
  207. package/dist/http/utils/get-query-config.d.ts.map +1 -0
  208. package/dist/http/utils/get-query-config.js +109 -0
  209. package/dist/http/utils/get-query-config.js.map +1 -0
  210. package/dist/http/utils/http-compression.d.ts +5 -0
  211. package/dist/http/utils/http-compression.d.ts.map +1 -0
  212. package/dist/http/utils/http-compression.js +33 -0
  213. package/dist/http/utils/http-compression.js.map +1 -0
  214. package/dist/http/utils/maybe-apply-link-filter.d.ts +8 -0
  215. package/dist/http/utils/maybe-apply-link-filter.d.ts.map +1 -0
  216. package/dist/http/utils/maybe-apply-link-filter.js +68 -0
  217. package/dist/http/utils/maybe-apply-link-filter.js.map +1 -0
  218. package/dist/http/utils/policies/rbac-field-filter.d.ts +19 -0
  219. package/dist/http/utils/policies/rbac-field-filter.d.ts.map +1 -0
  220. package/dist/http/utils/policies/rbac-field-filter.js +348 -0
  221. package/dist/http/utils/policies/rbac-field-filter.js.map +1 -0
  222. package/dist/http/utils/refetch-entities.d.ts +21 -0
  223. package/dist/http/utils/refetch-entities.d.ts.map +1 -0
  224. package/dist/http/utils/refetch-entities.js +42 -0
  225. package/dist/http/utils/refetch-entities.js.map +1 -0
  226. package/dist/http/utils/restricted-fields.d.ts +6 -0
  227. package/dist/http/utils/restricted-fields.d.ts.map +1 -0
  228. package/dist/http/utils/restricted-fields.js +30 -0
  229. package/dist/http/utils/restricted-fields.js.map +1 -0
  230. package/dist/http/utils/unless-path.d.ts +9 -0
  231. package/dist/http/utils/unless-path.d.ts.map +1 -0
  232. package/dist/http/utils/unless-path.js +19 -0
  233. package/dist/http/utils/unless-path.js.map +1 -0
  234. package/dist/http/utils/validate-body.d.ts +5 -0
  235. package/dist/http/utils/validate-body.d.ts.map +1 -0
  236. package/dist/http/utils/validate-body.js +23 -0
  237. package/dist/http/utils/validate-body.js.map +1 -0
  238. package/dist/http/utils/validate-query.d.ts +6 -0
  239. package/dist/http/utils/validate-query.d.ts.map +1 -0
  240. package/dist/http/utils/validate-query.js +84 -0
  241. package/dist/http/utils/validate-query.js.map +1 -0
  242. package/dist/http/utils/wrap-handler.d.ts +3 -0
  243. package/dist/http/utils/wrap-handler.d.ts.map +1 -0
  244. package/dist/http/utils/wrap-handler.js +26 -0
  245. package/dist/http/utils/wrap-handler.js.map +1 -0
  246. package/dist/index.d.ts +18 -0
  247. package/dist/index.d.ts.map +1 -0
  248. package/dist/index.js +36 -0
  249. package/dist/index.js.map +1 -0
  250. package/dist/jobs/index.d.ts +2 -0
  251. package/dist/jobs/index.d.ts.map +1 -0
  252. package/dist/jobs/index.js +18 -0
  253. package/dist/jobs/index.js.map +1 -0
  254. package/dist/jobs/job-loader.d.ts +44 -0
  255. package/dist/jobs/job-loader.d.ts.map +1 -0
  256. package/dist/jobs/job-loader.js +91 -0
  257. package/dist/jobs/job-loader.js.map +1 -0
  258. package/dist/links/index.d.ts +2 -0
  259. package/dist/links/index.d.ts.map +1 -0
  260. package/dist/links/index.js +18 -0
  261. package/dist/links/index.js.map +1 -0
  262. package/dist/links/link-loader.d.ts +11 -0
  263. package/dist/links/link-loader.d.ts.map +1 -0
  264. package/dist/links/link-loader.js +76 -0
  265. package/dist/links/link-loader.js.map +1 -0
  266. package/dist/logger/index.d.ts +3 -0
  267. package/dist/logger/index.d.ts.map +1 -0
  268. package/dist/logger/index.js +9 -0
  269. package/dist/logger/index.js.map +1 -0
  270. package/dist/migrations/index.d.ts +3 -0
  271. package/dist/migrations/index.d.ts.map +1 -0
  272. package/dist/migrations/index.js +19 -0
  273. package/dist/migrations/index.js.map +1 -0
  274. package/dist/migrations/migrator.d.ts +38 -0
  275. package/dist/migrations/migrator.d.ts.map +1 -0
  276. package/dist/migrations/migrator.js +146 -0
  277. package/dist/migrations/migrator.js.map +1 -0
  278. package/dist/migrations/run-migration-scripts.d.ts +17 -0
  279. package/dist/migrations/run-migration-scripts.d.ts.map +1 -0
  280. package/dist/migrations/run-migration-scripts.js +97 -0
  281. package/dist/migrations/run-migration-scripts.js.map +1 -0
  282. package/dist/mikro-orm-cli/bin.d.ts +14 -0
  283. package/dist/mikro-orm-cli/bin.d.ts.map +1 -0
  284. package/dist/mikro-orm-cli/bin.js +54 -0
  285. package/dist/mikro-orm-cli/bin.js.map +1 -0
  286. package/dist/modules-sdk/index.d.ts +2 -0
  287. package/dist/modules-sdk/index.d.ts.map +1 -0
  288. package/dist/modules-sdk/index.js +18 -0
  289. package/dist/modules-sdk/index.js.map +1 -0
  290. package/dist/orchestration/index.d.ts +2 -0
  291. package/dist/orchestration/index.d.ts.map +1 -0
  292. package/dist/orchestration/index.js +18 -0
  293. package/dist/orchestration/index.js.map +1 -0
  294. package/dist/policies/has-permission.d.ts +33 -0
  295. package/dist/policies/has-permission.d.ts.map +1 -0
  296. package/dist/policies/has-permission.js +110 -0
  297. package/dist/policies/has-permission.js.map +1 -0
  298. package/dist/policies/index.d.ts +3 -0
  299. package/dist/policies/index.d.ts.map +1 -0
  300. package/dist/policies/index.js +19 -0
  301. package/dist/policies/index.js.map +1 -0
  302. package/dist/policies/policy-loader.d.ts +6 -0
  303. package/dist/policies/policy-loader.d.ts.map +1 -0
  304. package/dist/policies/policy-loader.js +17 -0
  305. package/dist/policies/policy-loader.js.map +1 -0
  306. package/dist/subscribers/index.d.ts +3 -0
  307. package/dist/subscribers/index.d.ts.map +1 -0
  308. package/dist/subscribers/index.js +19 -0
  309. package/dist/subscribers/index.js.map +1 -0
  310. package/dist/subscribers/subscriber-loader.d.ts +20 -0
  311. package/dist/subscribers/subscriber-loader.d.ts.map +1 -0
  312. package/dist/subscribers/subscriber-loader.js +156 -0
  313. package/dist/subscribers/subscriber-loader.js.map +1 -0
  314. package/dist/subscribers/types.d.ts +15 -0
  315. package/dist/subscribers/types.d.ts.map +1 -0
  316. package/dist/subscribers/types.js +3 -0
  317. package/dist/subscribers/types.js.map +1 -0
  318. package/dist/telemetry/index.d.ts +50 -0
  319. package/dist/telemetry/index.d.ts.map +1 -0
  320. package/dist/telemetry/index.js +81 -0
  321. package/dist/telemetry/index.js.map +1 -0
  322. package/dist/types/container.d.ts +68 -0
  323. package/dist/types/container.d.ts.map +1 -0
  324. package/dist/types/container.js +3 -0
  325. package/dist/types/container.js.map +1 -0
  326. package/dist/types/index.d.ts +6 -0
  327. package/dist/types/index.d.ts.map +1 -0
  328. package/dist/types/index.js +19 -0
  329. package/dist/types/index.js.map +1 -0
  330. package/dist/utils/index.d.ts +5 -0
  331. package/dist/utils/index.d.ts.map +1 -0
  332. package/dist/utils/index.js +21 -0
  333. package/dist/utils/index.js.map +1 -0
  334. package/dist/utils/resource-loader.d.ts +28 -0
  335. package/dist/utils/resource-loader.d.ts.map +1 -0
  336. package/dist/utils/resource-loader.js +78 -0
  337. package/dist/utils/resource-loader.js.map +1 -0
  338. package/dist/workflows/index.d.ts +3 -0
  339. package/dist/workflows/index.d.ts.map +1 -0
  340. package/dist/workflows/index.js +19 -0
  341. package/dist/workflows/index.js.map +1 -0
  342. package/dist/workflows/workflow-loader.d.ts +13 -0
  343. package/dist/workflows/workflow-loader.d.ts.map +1 -0
  344. package/dist/workflows/workflow-loader.js +36 -0
  345. package/dist/workflows/workflow-loader.js.map +1 -0
  346. package/dist/workflows-sdk/composer.d.ts +2 -0
  347. package/dist/workflows-sdk/composer.d.ts.map +1 -0
  348. package/dist/workflows-sdk/composer.js +18 -0
  349. package/dist/workflows-sdk/composer.js.map +1 -0
  350. package/dist/workflows-sdk/index.d.ts +3 -0
  351. package/dist/workflows-sdk/index.d.ts.map +1 -0
  352. package/dist/workflows-sdk/index.js +19 -0
  353. package/dist/workflows-sdk/index.js.map +1 -0
  354. package/dist/zod/index.d.ts +2 -0
  355. package/dist/zod/index.d.ts.map +1 -0
  356. package/dist/zod/index.js +18 -0
  357. package/dist/zod/index.js.map +1 -0
  358. package/dist/zod/zod-helpers.d.ts +3 -0
  359. package/dist/zod/zod-helpers.d.ts.map +1 -0
  360. package/dist/zod/zod-helpers.js +95 -0
  361. package/dist/zod/zod-helpers.js.map +1 -0
  362. package/package.json +121 -0
@@ -0,0 +1,191 @@
1
+ import type { ZodNullable, ZodObject, ZodOptional, ZodRawShape } from "@acmekit/deps/zod";
2
+ import type { NextFunction, Request, Response } from "express";
3
+ import { FindConfig, AcmeKitPricingContext, RequestQueryFields } from "@acmekit/types";
4
+ import { AcmeKitContainer } from "../container";
5
+ import { PolicyAction } from "./middlewares/check-permissions";
6
+ import { RestrictedFields } from "./utils/restricted-fields";
7
+ /**
8
+ * List of all the supported HTTP methods
9
+ */
10
+ export declare const HTTP_METHODS: readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"];
11
+ export type RouteVerb = (typeof HTTP_METHODS)[number];
12
+ export type MiddlewareVerb = "USE" | "ALL" | RouteVerb;
13
+ type SyncRouteHandler = (req: AcmeKitRequest, res: AcmeKitResponse) => void;
14
+ export type AsyncRouteHandler = (req: AcmeKitRequest, res: AcmeKitResponse) => Promise<void>;
15
+ export type RouteHandler = SyncRouteHandler | AsyncRouteHandler;
16
+ export type MiddlewareFunction = AcmeKitRequestHandler | ((...args: any[]) => any);
17
+ export type AcmeKitErrorHandlerFunction = (error: any, req: AcmeKitRequest, res: AcmeKitResponse, next: AcmeKitNextFunction) => Promise<void> | void;
18
+ export type ParserConfigArgs = {
19
+ sizeLimit?: string | number | undefined;
20
+ preserveRawBody?: boolean;
21
+ };
22
+ export type ParserConfig = false | ParserConfigArgs;
23
+ export type MiddlewareRoute = {
24
+ /**
25
+ * @deprecated. Instead use {@link MiddlewareRoute.methods}
26
+ */
27
+ method?: MiddlewareVerb | MiddlewareVerb[];
28
+ methods?: MiddlewareVerb[];
29
+ matcher: string | RegExp;
30
+ bodyParser?: ParserConfig;
31
+ additionalDataValidator?: ZodRawShape;
32
+ middlewares?: MiddlewareFunction[];
33
+ /** @ignore */
34
+ policies?: {
35
+ resource: string;
36
+ operation: string;
37
+ } | Array<{
38
+ resource: string;
39
+ operation: string | string[];
40
+ }>;
41
+ };
42
+ export type MiddlewaresConfig = {
43
+ errorHandler?: false | AcmeKitErrorHandlerFunction;
44
+ routes?: MiddlewareRoute[];
45
+ };
46
+ /**
47
+ * Route descriptor refers represents a route either scanned
48
+ * from the filesystem or registered manually. It does not
49
+ * represent a middleware
50
+ */
51
+ export type RouteDescriptor = {
52
+ matcher: string;
53
+ method: RouteVerb;
54
+ handler: RouteHandler;
55
+ optedOutOfAuth: boolean;
56
+ isRoute: true;
57
+ routeType?: "admin" | "store" | "auth";
58
+ absolutePath?: string;
59
+ relativePath?: string;
60
+ shouldAppendAdminCors: boolean;
61
+ shouldAppendStoreCors: boolean;
62
+ shouldAppendAuthCors: boolean;
63
+ };
64
+ /**
65
+ * Represents a middleware
66
+ */
67
+ export type MiddlewareDescriptor = {
68
+ matcher: string;
69
+ methods?: MiddlewareVerb | MiddlewareVerb[];
70
+ handler: MiddlewareFunction;
71
+ policies?: {
72
+ resource: string;
73
+ operation: string;
74
+ } | Array<{
75
+ resource: string;
76
+ operation: string | string[];
77
+ }>;
78
+ };
79
+ export type BodyParserConfigRoute = {
80
+ matcher: string;
81
+ methods: MiddlewareVerb | MiddlewareVerb[];
82
+ config: ParserConfig;
83
+ };
84
+ export type AdditionalDataValidatorRoute = {
85
+ matcher: string;
86
+ methods: MiddlewareVerb | MiddlewareVerb[];
87
+ schema: ZodRawShape;
88
+ validator: ZodOptional<ZodNullable<ZodObject<any, any>>>;
89
+ };
90
+ export type GlobalMiddlewareDescriptor = {
91
+ config?: MiddlewaresConfig;
92
+ };
93
+ export interface AcmeKitRequest<Body = unknown, QueryFields = Record<string, unknown>> extends Request<{
94
+ [key: string]: string;
95
+ }, any, Body> {
96
+ validatedBody: Body;
97
+ validatedQuery: RequestQueryFields & QueryFields;
98
+ /**
99
+ * TODO: shouldn't this correspond to returnable fields instead of allowed fields? also it is used by the cleanResponseData util
100
+ */
101
+ allowedProperties: string[];
102
+ /**
103
+ * An object containing the select, relation, skip, take and order to be used with acmekit internal services
104
+ */
105
+ listConfig: FindConfig<unknown>;
106
+ /**
107
+ * An object containing the select, relation to be used with acmekit internal services
108
+ */
109
+ retrieveConfig: FindConfig<unknown>;
110
+ /**
111
+ * An object containing fields and variables to be used with the remoteQuery
112
+ *
113
+ * @since 2.2.0
114
+ */
115
+ queryConfig: {
116
+ fields: string[];
117
+ pagination: {
118
+ order?: Record<string, string>;
119
+ skip: number;
120
+ take?: number;
121
+ };
122
+ withDeleted?: boolean;
123
+ };
124
+ /**
125
+ * @deprecated Use {@link queryConfig} instead.
126
+ */
127
+ remoteQueryConfig: AcmeKitRequest["queryConfig"];
128
+ /**
129
+ * An object containing the fields that are filterable e.g `{ id: Any<String> }`
130
+ */
131
+ filterableFields: QueryFields;
132
+ includes?: Record<string, boolean>;
133
+ /**
134
+ * An array of fields and relations that are allowed to be queried, this can be set by the
135
+ * consumer as part of a middleware and it will take precedence over the req.allowed set
136
+ * by the api
137
+ */
138
+ allowed?: string[];
139
+ errors: string[];
140
+ scope: AcmeKitContainer;
141
+ session?: any;
142
+ rawBody?: any;
143
+ requestId?: string;
144
+ restrictedFields?: RestrictedFields;
145
+ /**
146
+ * An object that carries the context that is used to calculate prices for variants
147
+ */
148
+ pricingContext?: AcmeKitPricingContext;
149
+ /**
150
+ * A generic context object that can be used across the request lifecycle
151
+ */
152
+ context?: Record<string, any>;
153
+ /**
154
+ * Custom validator to validate the `additional_data` property in
155
+ * requests that allows for additional_data
156
+ */
157
+ additionalDataValidator?: ZodOptional<ZodNullable<ZodObject<any, any>>>;
158
+ /**
159
+ * The locale for the current request, resolved from:
160
+ * 1. Query parameter `?locale=`
161
+ * 2. x-acmekit-locale header
162
+ * 3. Store's default locale
163
+ */
164
+ locale?: string;
165
+ }
166
+ export interface AuthContext {
167
+ actor_id: string;
168
+ actor_type: string;
169
+ auth_identity_id: string;
170
+ app_metadata: Record<string, unknown>;
171
+ user_metadata: Record<string, unknown>;
172
+ }
173
+ export interface PublishableKeyContext {
174
+ key: string;
175
+ sales_channel_ids: string[];
176
+ }
177
+ export interface AuthenticatedAcmeKitRequest<Body = unknown, QueryFields = Record<string, unknown>> extends AcmeKitRequest<Body, QueryFields> {
178
+ auth_context: AuthContext;
179
+ publishable_key_context?: PublishableKeyContext;
180
+ policies?: PolicyAction[];
181
+ }
182
+ export interface AcmeKitStoreRequest<Body = unknown, QueryFields = Record<string, unknown>> extends AcmeKitRequest<Body, QueryFields> {
183
+ auth_context?: AuthContext;
184
+ publishable_key_context: PublishableKeyContext;
185
+ policies?: PolicyAction | PolicyAction[];
186
+ }
187
+ export type AcmeKitResponse<Body = unknown> = Response<Body>;
188
+ export type AcmeKitNextFunction = NextFunction;
189
+ export type AcmeKitRequestHandler<Body = unknown, Res = unknown> = (req: AcmeKitRequest<Body>, res: AcmeKitResponse<Res>, next: AcmeKitNextFunction) => Promise<void> | void;
190
+ export {};
191
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTTP_METHODS = void 0;
4
+ /**
5
+ * List of all the supported HTTP methods
6
+ */
7
+ exports.HTTP_METHODS = [
8
+ "GET",
9
+ "POST",
10
+ "PUT",
11
+ "PATCH",
12
+ "DELETE",
13
+ "OPTIONS",
14
+ "HEAD",
15
+ ];
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":";;;AAiBA;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;CACE,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { AcmeKitNextFunction, AcmeKitRequest, AcmeKitResponse, MiddlewaresConfig, MiddlewareVerb, ParserConfig } from "../types";
2
+ import type { ZodRawShape } from "@acmekit/deps/zod";
3
+ /**
4
+ * A helper function to configure the routes by defining custom middleware,
5
+ * bodyparser config and validators to be merged with the pre-existing
6
+ * route validators.
7
+ */
8
+ export declare function defineMiddlewares<Route extends {
9
+ /**
10
+ * @deprecated. Instead use {@link MiddlewareRoute.methods}
11
+ */
12
+ method?: MiddlewareVerb | MiddlewareVerb[];
13
+ methods?: MiddlewareVerb[];
14
+ matcher: string | RegExp;
15
+ bodyParser?: ParserConfig;
16
+ additionalDataValidator?: ZodRawShape;
17
+ middlewares?: (<Req extends AcmeKitRequest>(req: Req, res: AcmeKitResponse, next: AcmeKitNextFunction) => any)[];
18
+ }>(config: Route[] | {
19
+ routes?: Route[];
20
+ errorHandler?: MiddlewaresConfig["errorHandler"];
21
+ }): MiddlewaresConfig;
22
+ //# sourceMappingURL=define-middlewares.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-middlewares.d.ts","sourceRoot":"","sources":["../../../src/http/utils/define-middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,YAAY,EACb,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,SAAS;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;IAC1C,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;IAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,uBAAuB,CAAC,EAAE,WAAW,CAAA;IAErC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,cAAc,EACxC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,mBAAmB,KACtB,GAAG,CAAC,EAAE,CAAA;CACZ,EAED,MAAM,EACF,KAAK,EAAE,GACP;IAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAA;CAAE,GACzE,iBAAiB,CAmBnB"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineMiddlewares = defineMiddlewares;
4
+ /**
5
+ * A helper function to configure the routes by defining custom middleware,
6
+ * bodyparser config and validators to be merged with the pre-existing
7
+ * route validators.
8
+ */
9
+ function defineMiddlewares(config) {
10
+ const routes = Array.isArray(config) ? config : config.routes || [];
11
+ const errorHandler = Array.isArray(config) ? undefined : config.errorHandler;
12
+ return {
13
+ errorHandler,
14
+ routes: routes.map((route) => {
15
+ let { middlewares, method, methods, ...rest } = route;
16
+ if (!methods) {
17
+ methods = Array.isArray(method) ? method : method ? [method] : method;
18
+ }
19
+ return {
20
+ ...rest,
21
+ methods,
22
+ middlewares: [...(middlewares ?? [])],
23
+ };
24
+ }),
25
+ };
26
+ }
27
+ //# sourceMappingURL=define-middlewares.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-middlewares.js","sourceRoot":"","sources":["../../../src/http/utils/define-middlewares.ts"],"names":[],"mappings":";;AAeA,8CAwCC;AA7CD;;;;GAIG;AACH,SAAgB,iBAAiB,CAkB/B,MAE0E;IAE1E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAA;IACnE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAA;IAE5E,OAAO;QACL,YAAY;QACZ,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YACvE,CAAC;YAED,OAAO;gBACL,GAAG,IAAI;gBACP,OAAO;gBACP,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;aACtC,CAAA;QACH,CAAC,CAAC;KACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { ParsedFields } from "./index";
2
+ /**
3
+ * Handles parsing of field strings into structured field sets
4
+ * Supports various field modifiers:
5
+ * - `+field` or ` field`: Add to defaults
6
+ * - `-field`: Remove from defaults
7
+ * - `*field` or `field.*`: Select all properties of a relation
8
+ */
9
+ export declare class FieldParser {
10
+ /**
11
+ * Parse field string and defaults into structured field sets
12
+ * @param fields - Comma-separated field string from query
13
+ * @param defaults - Default fields to include
14
+ * @returns ParsedFields with fields and starFields sets
15
+ */
16
+ static parse(fields: string | undefined, defaults?: string[]): ParsedFields;
17
+ /**
18
+ * Determines if custom fields should replace defaults
19
+ * Fields replace defaults when any field doesn't have a modifier prefix
20
+ */
21
+ private static shouldReplaceDefaults;
22
+ /**
23
+ * Apply field modifiers (+, -, etc) to the field set
24
+ */
25
+ private static applyFieldModifiers;
26
+ /**
27
+ * Extract star fields (* prefix or .* suffix) from allFields into starFields set
28
+ * Star fields represent "select all properties" for a relation
29
+ */
30
+ private static extractStarFields;
31
+ }
32
+ //# sourceMappingURL=field-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-parser.d.ts","sourceRoot":"","sources":["../../../../src/http/utils/field-filtering/field-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CACV,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,GAAE,MAAM,EAAO,GACtB,YAAY;IAsBf;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAepC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAwBlC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAWjC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldParser = void 0;
4
+ const utils_1 = require("@acmekit/utils");
5
+ /**
6
+ * Handles parsing of field strings into structured field sets
7
+ * Supports various field modifiers:
8
+ * - `+field` or ` field`: Add to defaults
9
+ * - `-field`: Remove from defaults
10
+ * - `*field` or `field.*`: Select all properties of a relation
11
+ */
12
+ class FieldParser {
13
+ /**
14
+ * Parse field string and defaults into structured field sets
15
+ * @param fields - Comma-separated field string from query
16
+ * @param defaults - Default fields to include
17
+ * @returns ParsedFields with fields and starFields sets
18
+ */
19
+ static parse(fields, defaults = []) {
20
+ const starFields = new Set();
21
+ let allFields = new Set(defaults);
22
+ if ((0, utils_1.isDefined)(fields)) {
23
+ const customFields = fields.split(",").filter(Boolean);
24
+ const shouldReplaceDefaultFields = this.shouldReplaceDefaults(customFields);
25
+ if (shouldReplaceDefaultFields) {
26
+ allFields = new Set(customFields.map((f) => f.replace(/^[+ -]/, "")));
27
+ }
28
+ else {
29
+ this.applyFieldModifiers(customFields, allFields);
30
+ }
31
+ allFields.add("id");
32
+ }
33
+ this.extractStarFields(allFields, starFields);
34
+ return { fields: allFields, starFields };
35
+ }
36
+ /**
37
+ * Determines if custom fields should replace defaults
38
+ * Fields replace defaults when any field doesn't have a modifier prefix
39
+ */
40
+ static shouldReplaceDefaults(customFields) {
41
+ return (!customFields.length ||
42
+ customFields.some((field) => {
43
+ return !(field.startsWith("-") ||
44
+ field.startsWith("+") ||
45
+ field.startsWith(" ") ||
46
+ field.startsWith("*") ||
47
+ field.endsWith(".*"));
48
+ }));
49
+ }
50
+ /**
51
+ * Apply field modifiers (+, -, etc) to the field set
52
+ */
53
+ static applyFieldModifiers(customFields, allFields) {
54
+ customFields.forEach((field) => {
55
+ if (field.startsWith("+") || field.startsWith(" ")) {
56
+ allFields.add(field.trim().replace(/^\+/, ""));
57
+ }
58
+ else if (field.startsWith("-")) {
59
+ const fieldName = field.replace(/^-/, "");
60
+ for (const reqField of allFields) {
61
+ const reqFieldName = reqField.replace(/^\*/, "");
62
+ if (reqFieldName === fieldName ||
63
+ reqFieldName.startsWith(fieldName + ".")) {
64
+ allFields.delete(reqField);
65
+ }
66
+ }
67
+ }
68
+ else {
69
+ allFields.add(field);
70
+ }
71
+ });
72
+ }
73
+ /**
74
+ * Extract star fields (* prefix or .* suffix) from allFields into starFields set
75
+ * Star fields represent "select all properties" for a relation
76
+ */
77
+ static extractStarFields(allFields, starFields) {
78
+ allFields.forEach((field) => {
79
+ if (field.startsWith("*") || field.endsWith(".*")) {
80
+ starFields.add(field.replace(/(^\*|\.\*$)/, ""));
81
+ allFields.delete(field);
82
+ }
83
+ });
84
+ }
85
+ }
86
+ exports.FieldParser = FieldParser;
87
+ //# sourceMappingURL=field-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-parser.js","sourceRoot":"","sources":["../../../../src/http/utils/field-filtering/field-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { FieldFilterContext, IFieldFilter } from "./index";
2
+ /**
3
+ * Filter that only allows explicitly specified fields
4
+ * Fields not in the allowed list are returned as not allowed
5
+ */
6
+ export declare class AllowedFieldFilter implements IFieldFilter {
7
+ private allowed;
8
+ constructor({ allowed }: {
9
+ allowed: string[];
10
+ });
11
+ getNotAllowedFields(context: FieldFilterContext): string[];
12
+ }
13
+ /**
14
+ * Filter that restricts specific fields
15
+ * Fields containing any restricted segment are returned as not allowed
16
+ */
17
+ export declare class RestrictedFieldFilter implements IFieldFilter {
18
+ private restricted;
19
+ constructor({ restricted }: {
20
+ restricted: string[];
21
+ });
22
+ getNotAllowedFields(context: FieldFilterContext): string[];
23
+ }
24
+ //# sourceMappingURL=field-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-validator.d.ts","sourceRoot":"","sources":["../../../../src/http/utils/field-filtering/field-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE1D;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,OAAO,CAAU;gBAEb,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAI9C,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,EAAE;CAmC3D;AAED;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,UAAU,CAAU;gBAEhB,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;IAIpD,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,EAAE;CAqB3D"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RestrictedFieldFilter = exports.AllowedFieldFilter = void 0;
4
+ /**
5
+ * Filter that only allows explicitly specified fields
6
+ * Fields not in the allowed list are returned as not allowed
7
+ */
8
+ class AllowedFieldFilter {
9
+ constructor({ allowed }) {
10
+ this.allowed = allowed;
11
+ }
12
+ getNotAllowedFields(context) {
13
+ const { parsedFields } = context;
14
+ const { fields, starFields } = parsedFields;
15
+ const fieldsToCheck = [...fields, ...Array.from(starFields)];
16
+ const notAllowedFields = [];
17
+ fieldsToCheck.forEach((field) => {
18
+ const hasAllowedField = this.allowed.includes(field);
19
+ if (hasAllowedField) {
20
+ return;
21
+ }
22
+ // Select full relation - must match an allowed field fully
23
+ // e.g product.variants must have product.variants in allowedFields
24
+ if (starFields.has(field)) {
25
+ if (hasAllowedField) {
26
+ return;
27
+ }
28
+ notAllowedFields.push(field);
29
+ return;
30
+ }
31
+ const fieldStartsWithAllowedField = this.allowed.some((allowedField) => field.startsWith(allowedField));
32
+ if (!fieldStartsWithAllowedField) {
33
+ notAllowedFields.push(field);
34
+ return;
35
+ }
36
+ });
37
+ return notAllowedFields;
38
+ }
39
+ }
40
+ exports.AllowedFieldFilter = AllowedFieldFilter;
41
+ /**
42
+ * Filter that restricts specific fields
43
+ * Fields containing any restricted segment are returned as not allowed
44
+ */
45
+ class RestrictedFieldFilter {
46
+ constructor({ restricted }) {
47
+ this.restricted = restricted;
48
+ }
49
+ getNotAllowedFields(context) {
50
+ const { parsedFields } = context;
51
+ const { fields, starFields } = parsedFields;
52
+ const fieldsToCheck = [...fields, ...Array.from(starFields)];
53
+ const notAllowedFields = [];
54
+ fieldsToCheck.forEach((field) => {
55
+ const fieldSegments = field.split(".");
56
+ const hasRestrictedField = this.restricted.some((restrictedField) => fieldSegments.includes(restrictedField));
57
+ if (hasRestrictedField) {
58
+ notAllowedFields.push(field);
59
+ return;
60
+ }
61
+ return;
62
+ });
63
+ return notAllowedFields;
64
+ }
65
+ }
66
+ exports.RestrictedFieldFilter = RestrictedFieldFilter;
67
+ //# sourceMappingURL=field-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-validator.js","sourceRoot":"","sources":["../../../../src/http/utils/field-filtering/field-validator.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACH,MAAa,kBAAkB;IAG7B,YAAY,EAAE,OAAO,EAAyB;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,mBAAmB,CAAC,OAA2B;QAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;QAChC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAA;QAC3C,MAAM,aAAa,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAC5D,MAAM,gBAAgB,GAAa,EAAE,CAAA;QAErC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAEpD,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAM;YACR,CAAC;YAED,2DAA2D;YAC3D,mEAAmE;YACnE,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,eAAe,EAAE,CAAC;oBACpB,OAAM;gBACR,CAAC;gBACD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YAED,MAAM,2BAA2B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CACrE,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAC/B,CAAA;YAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;gBACjC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,gBAAgB,CAAA;IACzB,CAAC;CACF;AA1CD,gDA0CC;AAED;;;GAGG;AACH,MAAa,qBAAqB;IAGhC,YAAY,EAAE,UAAU,EAA4B;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,mBAAmB,CAAC,OAA2B;QAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;QAChC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAA;QAC3C,MAAM,aAAa,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAC5D,MAAM,gBAAgB,GAAa,EAAE,CAAA;QAErC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE,CAClE,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CACxC,CAAA;YACD,IAAI,kBAAkB,EAAE,CAAC;gBACvB,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YAED,OAAM;QACR,CAAC,CAAC,CAAA;QAEF,OAAO,gBAAgB,CAAA;IACzB,CAAC;CACF;AA5BD,sDA4BC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Parsed fields structure after processing field strings
3
+ */
4
+ export interface ParsedFields {
5
+ /** Regular fields to select */
6
+ fields: Set<string>;
7
+ /** Star fields representing full relation selections (e.g., *product.variants) */
8
+ starFields: Set<string>;
9
+ }
10
+ /**
11
+ * Context passed to field filters for determining access
12
+ */
13
+ export interface FieldFilterContext {
14
+ /** The main entity being queried (e.g., "product", "order") */
15
+ entity: string;
16
+ /** Parsed fields to filter */
17
+ parsedFields: ParsedFields;
18
+ }
19
+ /**
20
+ * Interface for field filters following the Strategy pattern
21
+ * Allows adding new field filtering logic without modifying prepareListQuery
22
+ */
23
+ export interface IFieldFilter {
24
+ /**
25
+ * Returns fields that should be excluded from the query
26
+ * @param context - The filter context containing entity and parsed fields
27
+ * @returns Array of field names that are not allowed
28
+ */
29
+ getNotAllowedFields(context: FieldFilterContext): Promise<string[]> | string[];
30
+ }
31
+ export { FieldParser } from "./field-parser";
32
+ export { AllowedFieldFilter, RestrictedFieldFilter } from "./field-validator";
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/http/utils/field-filtering/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,kFAAkF;IAClF,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAA;CAC/E;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RestrictedFieldFilter = exports.AllowedFieldFilter = exports.FieldParser = void 0;
4
+ var field_parser_1 = require("./field-parser");
5
+ Object.defineProperty(exports, "FieldParser", { enumerable: true, get: function () { return field_parser_1.FieldParser; } });
6
+ var field_validator_1 = require("./field-validator");
7
+ Object.defineProperty(exports, "AllowedFieldFilter", { enumerable: true, get: function () { return field_validator_1.AllowedFieldFilter; } });
8
+ Object.defineProperty(exports, "RestrictedFieldFilter", { enumerable: true, get: function () { return field_validator_1.RestrictedFieldFilter; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/http/utils/field-filtering/index.ts"],"names":[],"mappings":";;;AAiCA,+CAA4C;AAAnC,2GAAA,WAAW,OAAA;AACpB,qDAA6E;AAApE,qHAAA,kBAAkB,OAAA;AAAE,wHAAA,qBAAqB,OAAA"}
@@ -0,0 +1,50 @@
1
+ import { FindConfig, QueryConfig, RequestQueryFields } from "@acmekit/types";
2
+ import { PolicyDefinition } from "@acmekit/utils";
3
+ import { AuthContext, AcmeKitRequest } from "../types";
4
+ export declare function pickByConfig<TModel>(obj: TModel | TModel[], config: FindConfig<TModel>): Partial<TModel> | Partial<TModel>[];
5
+ export declare function prepareListQuery<T extends RequestQueryFields, TEntity>(validated: T, queryConfig?: QueryConfig<TEntity> & {
6
+ restricted?: string[];
7
+ }, req?: AcmeKitRequest & {
8
+ policies?: PolicyDefinition[];
9
+ auth_context?: AuthContext;
10
+ }): Promise<{
11
+ listConfig: {
12
+ select: string[] | undefined;
13
+ relations: string[];
14
+ skip: number;
15
+ take: number;
16
+ order: import("@acmekit/utils").Order | undefined;
17
+ withDeleted: boolean | undefined;
18
+ };
19
+ remoteQueryConfig: {
20
+ entity: string | TEntity | undefined;
21
+ fields: string[];
22
+ pagination: {
23
+ skip: number;
24
+ take: number;
25
+ order: import("@acmekit/utils").Order | undefined;
26
+ } | {
27
+ skip?: undefined;
28
+ take?: undefined;
29
+ order?: undefined;
30
+ };
31
+ withDeleted: boolean | undefined;
32
+ };
33
+ }>;
34
+ export declare function prepareRetrieveQuery<T extends RequestQueryFields, TEntity>(validated: T, queryConfig?: QueryConfig<TEntity> & {
35
+ restricted?: string[];
36
+ }, req?: AcmeKitRequest & {
37
+ policies?: PolicyDefinition[];
38
+ auth_context?: AuthContext;
39
+ }): Promise<{
40
+ retrieveConfig: {
41
+ select: string[] | undefined;
42
+ relations: string[];
43
+ };
44
+ remoteQueryConfig: {
45
+ fields: string[];
46
+ pagination: {};
47
+ withDeleted: boolean | undefined;
48
+ };
49
+ }>;
50
+ //# sourceMappingURL=get-query-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-query-config.d.ts","sourceRoot":"","sources":["../../../src/http/utils/get-query-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAC5E,OAAO,EAOL,gBAAgB,EAGjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAStD,wBAAgB,YAAY,CAAC,MAAM,EACjC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EACtB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAWrC;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,kBAAkB,EAAE,OAAO,EAC1E,SAAS,EAAE,CAAC,EACZ,WAAW,GAAE,WAAW,CAAC,OAAO,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,EAClE,GAAG,CAAC,EAAE,cAAc,GAAG;IACrB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B;;;;;;;;;;;;;;;;;;;;;;;GA8GF;AAED,wBAAsB,oBAAoB,CACxC,CAAC,SAAS,kBAAkB,EAC5B,OAAO,EAEP,SAAS,EAAE,CAAC,EACZ,WAAW,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EAC9D,GAAG,CAAC,EAAE,cAAc,GAAG;IACrB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAA;CAC3B;;;;;;;;;;GAmBF"}