@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,317 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _ApiLoader_instances, _a, _ApiLoader_app, _ApiLoader_sourceDirs, _ApiLoader_logger, _ApiLoader_loadHttpResources, _ApiLoader_isRouteFileDisabled, _ApiLoader_registerExpressHandler, _ApiLoader_assignRestrictedFields, _ApiLoader_createCorsOptions, _ApiLoader_applyCorsMiddleware, _ApiLoader_applyAuthMiddleware, _ApiLoader_applyBodyParserMiddleware, _ApiLoader_assignAdditionalDataValidator, _ApiLoader_applyStorePublishableKeyMiddleware, _ApiLoader_applyLocaleMiddleware;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ApiLoader = void 0;
19
+ const utils_1 = require("@acmekit/utils");
20
+ const cors_1 = __importDefault(require("cors"));
21
+ const path_1 = require("path");
22
+ const config_1 = require("../config");
23
+ const middleware_file_loader_1 = require("./middleware-file-loader");
24
+ const middlewares_1 = require("./middlewares");
25
+ const bodyparser_1 = require("./middlewares/bodyparser");
26
+ const check_permissions_1 = require("./middlewares/check-permissions");
27
+ const ensure_publishable_api_key_1 = require("./middlewares/ensure-publishable-api-key");
28
+ const error_handler_1 = require("./middlewares/error-handler");
29
+ const routes_finder_1 = require("./routes-finder");
30
+ const routes_loader_1 = require("./routes-loader");
31
+ const routes_sorter_1 = require("./routes-sorter");
32
+ const restricted_fields_1 = require("./utils/restricted-fields");
33
+ const wrap_handler_1 = require("./utils/wrap-handler");
34
+ class ApiLoader {
35
+ constructor({ app, sourceDir, baseRestrictedFields = [], container, }) {
36
+ _ApiLoader_instances.add(this);
37
+ /**
38
+ * An express instance
39
+ * @private
40
+ */
41
+ _ApiLoader_app.set(this, void 0);
42
+ /**
43
+ * Path from where to load the routes from
44
+ * @private
45
+ */
46
+ _ApiLoader_sourceDirs.set(this, void 0);
47
+ _ApiLoader_logger.set(this, void 0);
48
+ __classPrivateFieldSet(this, _ApiLoader_app, app, "f");
49
+ __classPrivateFieldSet(this, _ApiLoader_sourceDirs, Array.isArray(sourceDir) ? sourceDir : [sourceDir], "f");
50
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_assignRestrictedFields).call(this, baseRestrictedFields ?? []);
51
+ __classPrivateFieldSet(this, _ApiLoader_logger, container.resolve(utils_1.ContainerRegistrationKeys.LOGGER), "f");
52
+ }
53
+ async load() {
54
+ if (utils_1.FeatureFlag.isFeatureEnabled("backend_hmr")) {
55
+ ;
56
+ global.__MEDUSA_HMR_API_LOADER__ = this;
57
+ }
58
+ const { errorHandler: sourceErrorHandler, middlewares, routes, routesFinder, bodyParserConfigRoutes, additionalDataValidatorRoutes, } = await __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_loadHttpResources).call(this);
59
+ /**
60
+ * Parse request body on all the requests and use the routes finder
61
+ * to pick the best matching config for the given route.
62
+ */
63
+ const bodyParserRoutesFinder = new routes_finder_1.RoutesFinder(new routes_sorter_1.RoutesSorter(bodyParserConfigRoutes).sort([
64
+ "static",
65
+ "params",
66
+ "regex",
67
+ "wildcard",
68
+ "global",
69
+ ]));
70
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyBodyParserMiddleware).call(this, "/", bodyParserRoutesFinder);
71
+ /**
72
+ * Use the routes finder to pick the additional data validator
73
+ * to be applied on the current request
74
+ */
75
+ if (additionalDataValidatorRoutes.length) {
76
+ const additionalDataValidatorRoutesFinder = new routes_finder_1.RoutesFinder(new routes_sorter_1.RoutesSorter(additionalDataValidatorRoutes).sort([
77
+ "static",
78
+ "params",
79
+ "regex",
80
+ "wildcard",
81
+ "global",
82
+ ]));
83
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_assignAdditionalDataValidator).call(this, "/", additionalDataValidatorRoutesFinder);
84
+ }
85
+ /**
86
+ * CORS and Auth setup for admin routes
87
+ */
88
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyCorsMiddleware).call(this, routesFinder, "/admin", "shouldAppendAdminCors", __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_createCorsOptions).call(this, config_1.configManager.config.projectConfig.http.adminCors));
89
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyAuthMiddleware).call(this, routesFinder, "/admin", "user", [
90
+ "bearer",
91
+ "session",
92
+ "api-key",
93
+ ]);
94
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyCorsMiddleware).call(this, routesFinder, "/store", "shouldAppendStoreCors", __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_createCorsOptions).call(this, config_1.configManager.config.projectConfig.http.storeCors));
95
+ /**
96
+ * Publishable key check, CORS and auth setup for store routes.
97
+ */
98
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyStorePublishableKeyMiddleware).call(this, "/store");
99
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyLocaleMiddleware).call(this, "/store");
100
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyAuthMiddleware).call(this, routesFinder, "/store", "customer", ["bearer", "session"], {
101
+ allowUnauthenticated: true,
102
+ });
103
+ /**
104
+ * Apply CORS middleware for "/auth" routes
105
+ */
106
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_applyCorsMiddleware).call(this, routesFinder, "/auth", "shouldAppendAuthCors", __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_createCorsOptions).call(this, config_1.configManager.config.projectConfig.http.authCors));
107
+ const collectionToSort = []
108
+ .concat(middlewares)
109
+ .concat(routes);
110
+ const sortedRoutes = new routes_sorter_1.RoutesSorter(collectionToSort).sort();
111
+ sortedRoutes.forEach((route) => {
112
+ if ("isRoute" in route) {
113
+ routesFinder.add(route);
114
+ }
115
+ __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_registerExpressHandler).call(this, route);
116
+ });
117
+ /**
118
+ * Registering error handler as the final handler
119
+ */
120
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(sourceErrorHandler ?? (0, error_handler_1.errorHandler)());
121
+ }
122
+ /**
123
+ * Clear all API resources registered by this loader
124
+ * This removes all routes and middleware added after the initial stack state
125
+ * Used by HMR to reset the API state before reloading
126
+ */
127
+ clearAllResources() {
128
+ const router = __classPrivateFieldGet(this, _ApiLoader_app, "f")._router;
129
+ const initialStackLength = global.__MEDUSA_HMR_INITIAL_STACK_LENGTH__ ?? 0;
130
+ if (router && router.stack) {
131
+ router.stack.splice(initialStackLength);
132
+ }
133
+ }
134
+ }
135
+ exports.ApiLoader = ApiLoader;
136
+ _a = ApiLoader, _ApiLoader_app = new WeakMap(), _ApiLoader_sourceDirs = new WeakMap(), _ApiLoader_logger = new WeakMap(), _ApiLoader_instances = new WeakSet(), _ApiLoader_loadHttpResources =
137
+ /**
138
+ * Loads routes, middleware, bodyParserConfig routes, routes that have
139
+ * opted out for Auth and CORS and the error handler.
140
+ */
141
+ async function _ApiLoader_loadHttpResources() {
142
+ const routesLoader = new routes_loader_1.RoutesLoader();
143
+ const middlewareLoader = new middleware_file_loader_1.MiddlewareFileLoader();
144
+ for (const dir of __classPrivateFieldGet(this, _ApiLoader_sourceDirs, "f")) {
145
+ await routesLoader.scanDir(dir);
146
+ await middlewareLoader.scanDir(dir);
147
+ }
148
+ return {
149
+ routes: routesLoader.getRoutes(),
150
+ routesFinder: new routes_finder_1.RoutesFinder(),
151
+ middlewares: middlewareLoader.getMiddlewares(),
152
+ errorHandler: middlewareLoader.getErrorHandler(),
153
+ bodyParserConfigRoutes: middlewareLoader.getBodyParserConfigRoutes(),
154
+ additionalDataValidatorRoutes: middlewareLoader.getAdditionalDataValidatorRoutes(),
155
+ };
156
+ }, _ApiLoader_isRouteFileDisabled = function _ApiLoader_isRouteFileDisabled(matcher) {
157
+ const routePathSegments = matcher
158
+ .split("/")
159
+ .filter(Boolean)
160
+ .map((segment) => {
161
+ if (segment.startsWith(":")) {
162
+ return `[${segment.slice(1)}]`;
163
+ }
164
+ return segment;
165
+ });
166
+ for (const sourceDir of __classPrivateFieldGet(this, _ApiLoader_sourceDirs, "f")) {
167
+ for (const ext of [".ts", ".js"]) {
168
+ const routeFilePath = (0, path_1.join)(sourceDir, ...routePathSegments, `route${ext}`);
169
+ if ((0, utils_1.isFileDisabled)(routeFilePath)) {
170
+ return true;
171
+ }
172
+ }
173
+ }
174
+ return false;
175
+ }, _ApiLoader_registerExpressHandler = function _ApiLoader_registerExpressHandler(route) {
176
+ if ("isRoute" in route) {
177
+ __classPrivateFieldGet(this, _ApiLoader_logger, "f").debug(`registering route ${route.method} ${route.matcher}`);
178
+ const handler = _a.traceRoute
179
+ ? _a.traceRoute(route.handler, {
180
+ route: route.matcher,
181
+ method: route.method,
182
+ })
183
+ : route.handler;
184
+ __classPrivateFieldGet(this, _ApiLoader_app, "f")[route.method.toLowerCase()](route.matcher, (0, wrap_handler_1.wrapHandler)(handler));
185
+ return;
186
+ }
187
+ const isRbacEnabled = utils_1.FeatureFlag.isFeatureEnabled("rbac");
188
+ if (!route.methods) {
189
+ __classPrivateFieldGet(this, _ApiLoader_logger, "f").debug(`registering global middleware for ${route.matcher}`);
190
+ // Wrap with permission check if policies are defined
191
+ let handlerToUse = route.handler;
192
+ if (route.policies && isRbacEnabled) {
193
+ handlerToUse = (0, check_permissions_1.wrapWithPoliciesCheck)(route.handler, route.policies);
194
+ }
195
+ const handler = _a.traceMiddleware
196
+ ? _a.traceMiddleware(handlerToUse, {
197
+ route: route.matcher,
198
+ })
199
+ : handlerToUse;
200
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(route.matcher, (0, wrap_handler_1.wrapHandler)(handler));
201
+ return;
202
+ }
203
+ const methods = Array.isArray(route.methods)
204
+ ? route.methods
205
+ : [route.methods];
206
+ methods.forEach((method) => {
207
+ const isDisabled = __classPrivateFieldGet(this, _ApiLoader_instances, "m", _ApiLoader_isRouteFileDisabled).call(this, route.matcher);
208
+ if (isDisabled) {
209
+ __classPrivateFieldGet(this, _ApiLoader_logger, "f").debug(`skipping disabled route middleware registration for ${method} ${route.matcher}`);
210
+ return;
211
+ }
212
+ __classPrivateFieldGet(this, _ApiLoader_logger, "f").debug(`registering route middleware ${method} ${route.matcher}`);
213
+ let handlerToUse = route.handler;
214
+ if (route.policies && isRbacEnabled) {
215
+ handlerToUse = (0, check_permissions_1.wrapWithPoliciesCheck)(route.handler, route.policies);
216
+ }
217
+ const handler = _a.traceMiddleware
218
+ ? _a.traceMiddleware((0, wrap_handler_1.wrapHandler)(handlerToUse), {
219
+ route: route.matcher,
220
+ method: method,
221
+ })
222
+ : (0, wrap_handler_1.wrapHandler)(handlerToUse);
223
+ __classPrivateFieldGet(this, _ApiLoader_app, "f")[method.toLowerCase()](route.matcher, handler);
224
+ });
225
+ }, _ApiLoader_assignRestrictedFields = function _ApiLoader_assignRestrictedFields(baseRestrictedFields) {
226
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use("/store", ((req, _, next) => {
227
+ req.restrictedFields = new restricted_fields_1.RestrictedFields();
228
+ req.restrictedFields.add(baseRestrictedFields);
229
+ next();
230
+ }));
231
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use("/admin", ((req, _, next) => {
232
+ req.restrictedFields = new restricted_fields_1.RestrictedFields();
233
+ next();
234
+ }));
235
+ }, _ApiLoader_createCorsOptions = function _ApiLoader_createCorsOptions(origin) {
236
+ return {
237
+ origin: (0, utils_1.parseCorsOrigins)(origin),
238
+ credentials: true,
239
+ preflightContinue: false,
240
+ };
241
+ }, _ApiLoader_applyCorsMiddleware = function _ApiLoader_applyCorsMiddleware(routesFinder, namespace, toggleKey, corsOptions) {
242
+ const logger = __classPrivateFieldGet(this, _ApiLoader_logger, "f");
243
+ const corsFn = (0, cors_1.default)(corsOptions);
244
+ const corsMiddleware = function corsMiddleware(req, res, next) {
245
+ let method = req.method;
246
+ if (req.method === "OPTIONS") {
247
+ method = req.headers["access-control-request-method"] ?? req.method;
248
+ }
249
+ const path = `${namespace}${req.path}`;
250
+ const matchingRoute = routesFinder.find(path, method);
251
+ if (matchingRoute && matchingRoute[toggleKey] === true) {
252
+ return corsFn(req, res, next);
253
+ }
254
+ logger.debug(`Skipping CORS middleware ${req.method} ${path}`);
255
+ return next();
256
+ };
257
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(namespace, _a.traceMiddleware
258
+ ? _a.traceMiddleware(corsMiddleware, {
259
+ route: namespace,
260
+ })
261
+ : corsMiddleware);
262
+ }, _ApiLoader_applyAuthMiddleware = function _ApiLoader_applyAuthMiddleware(routesFinder, namespace, actorType, authType, options) {
263
+ const logger = __classPrivateFieldGet(this, _ApiLoader_logger, "f");
264
+ logger.debug(`Registering auth middleware for prefix ${namespace}`);
265
+ const originalFn = (0, middlewares_1.authenticate)(actorType, authType, options);
266
+ const authMiddleware = function authMiddleware(req, res, next) {
267
+ const path = `${namespace}${req.path}`;
268
+ const matchingRoute = routesFinder.find(path, req.method);
269
+ if (matchingRoute && matchingRoute.optedOutOfAuth) {
270
+ logger.debug(`Skipping auth ${req.method} ${path}`);
271
+ return next();
272
+ }
273
+ logger.debug(`Authenticating route ${req.method} ${path}`);
274
+ return originalFn(req, res, next);
275
+ };
276
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(namespace, _a.traceMiddleware
277
+ ? _a.traceMiddleware(authMiddleware, {
278
+ route: namespace,
279
+ })
280
+ : authMiddleware);
281
+ }, _ApiLoader_applyBodyParserMiddleware = function _ApiLoader_applyBodyParserMiddleware(namespace, routesFinder) {
282
+ __classPrivateFieldGet(this, _ApiLoader_logger, "f").debug(`Registering bodyparser middleware for prefix ${namespace}`);
283
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(namespace, (0, bodyparser_1.createBodyParserMiddlewaresStack)(namespace, routesFinder, _a.traceMiddleware));
284
+ }, _ApiLoader_assignAdditionalDataValidator = function _ApiLoader_assignAdditionalDataValidator(namespace, routesFinder) {
285
+ const logger = __classPrivateFieldGet(this, _ApiLoader_logger, "f");
286
+ logger.debug(`Registering assignAdditionalDataValidator middleware for prefix ${namespace}`);
287
+ const additionalDataValidator = function additionalDataValidator(req, _, next) {
288
+ const matchingRoute = routesFinder.find(req.path, req.method);
289
+ if (matchingRoute && matchingRoute.validator) {
290
+ logger.debug(`Using validator to validate additional data on ${req.method} ${req.path}`);
291
+ req.additionalDataValidator = matchingRoute.validator;
292
+ }
293
+ return next();
294
+ };
295
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(namespace, _a.traceMiddleware
296
+ ? _a.traceMiddleware(additionalDataValidator, {
297
+ route: namespace,
298
+ })
299
+ : additionalDataValidator);
300
+ }, _ApiLoader_applyStorePublishableKeyMiddleware = function _ApiLoader_applyStorePublishableKeyMiddleware(namespace) {
301
+ __classPrivateFieldGet(this, _ApiLoader_logger, "f").debug(`Registering publishable key middleware for namespace ${namespace}`);
302
+ let middleware = _a.traceMiddleware
303
+ ? _a.traceMiddleware(ensure_publishable_api_key_1.ensurePublishableApiKeyMiddleware, {
304
+ route: namespace,
305
+ })
306
+ : ensure_publishable_api_key_1.ensurePublishableApiKeyMiddleware;
307
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(namespace, middleware);
308
+ }, _ApiLoader_applyLocaleMiddleware = function _ApiLoader_applyLocaleMiddleware(namespace) {
309
+ __classPrivateFieldGet(this, _ApiLoader_logger, "f").debug(`Registering locale middleware for namespace ${namespace}`);
310
+ let middleware = _a.traceMiddleware
311
+ ? _a.traceMiddleware(middlewares_1.applyLocale, {
312
+ route: namespace,
313
+ })
314
+ : middlewares_1.applyLocale;
315
+ __classPrivateFieldGet(this, _ApiLoader_app, "f").use(namespace, middleware);
316
+ };
317
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { MiddlewareVerb, RouteVerb } from "./types";
2
+ export declare class RoutesFinder<T extends {
3
+ matcher: string;
4
+ methods: MiddlewareVerb | MiddlewareVerb[];
5
+ } | {
6
+ matcher: string;
7
+ method: RouteVerb;
8
+ }> {
9
+ #private;
10
+ constructor(routes?: T[]);
11
+ /**
12
+ * Register route for lookup
13
+ */
14
+ add(route: T): void;
15
+ /**
16
+ * Get the matching route for a given HTTP method and URL
17
+ */
18
+ find(url: string, method: MiddlewareVerb): (T & {
19
+ matchRegex: RegExp;
20
+ }) | null | undefined;
21
+ }
22
+ //# sourceMappingURL=routes-finder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-finder.d.ts","sourceRoot":"","sources":["../../src/http/routes-finder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGxD,qBAAa,YAAY,CACvB,CAAC,SACG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;CAAE,GAC/D;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE;;gBAqB9B,MAAM,CAAC,EAAE,CAAC,EAAE;IAMxB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,CAAC;IAeZ;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;oBAvCtB,MAAM;;CAwDzB"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var _RoutesFinder_existingMatches, _RoutesFinder_routes;
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RoutesFinder = void 0;
10
+ const path_to_regexp_1 = require("path-to-regexp");
11
+ const utils_1 = require("@acmekit/utils");
12
+ class RoutesFinder {
13
+ constructor(routes) {
14
+ /**
15
+ * Cache of existing matches to avoid regex tests on every
16
+ * single HTTP request
17
+ */
18
+ _RoutesFinder_existingMatches.set(this, new Map()
19
+ /**
20
+ * Collection of registered routes
21
+ */
22
+ );
23
+ /**
24
+ * Collection of registered routes
25
+ */
26
+ _RoutesFinder_routes.set(this, []);
27
+ if (routes) {
28
+ routes.forEach((route) => this.add(route));
29
+ }
30
+ }
31
+ /**
32
+ * Register route for lookup
33
+ */
34
+ add(route) {
35
+ // Doing a replacement for backwards compatibility with the old path-to-regexp with express 4
36
+ let normalizedPath = route.matcher;
37
+ if ((0, utils_1.isString)(route.matcher)) {
38
+ // Replace /* with {*splat} (wildcard matches zero or more path segments)
39
+ normalizedPath = normalizedPath.replace(/\/\*/g, "{*splat}");
40
+ // Replace /path* (no slash before asterisk) with /path{*splat}
41
+ normalizedPath = normalizedPath.replace(/(\w)\*/g, "$1{*splat}");
42
+ }
43
+ __classPrivateFieldGet(this, _RoutesFinder_routes, "f").push({
44
+ ...route,
45
+ matchRegex: (0, path_to_regexp_1.pathToRegexp)(normalizedPath).regexp,
46
+ });
47
+ }
48
+ /**
49
+ * Get the matching route for a given HTTP method and URL
50
+ */
51
+ find(url, method) {
52
+ const key = `${method}:${url}`;
53
+ if (__classPrivateFieldGet(this, _RoutesFinder_existingMatches, "f").has(key)) {
54
+ return __classPrivateFieldGet(this, _RoutesFinder_existingMatches, "f").get(key);
55
+ }
56
+ const result = __classPrivateFieldGet(this, _RoutesFinder_routes, "f").find((route) => {
57
+ if ("methods" in route) {
58
+ return route.methods.includes(method) && route.matchRegex.test(url);
59
+ }
60
+ return route.method === method && route.matchRegex.test(url);
61
+ }) ?? null;
62
+ __classPrivateFieldGet(this, _RoutesFinder_existingMatches, "f").set(key, result);
63
+ return result;
64
+ }
65
+ }
66
+ exports.RoutesFinder = RoutesFinder;
67
+ _RoutesFinder_existingMatches = new WeakMap(), _RoutesFinder_routes = new WeakMap();
68
+ //# sourceMappingURL=routes-finder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-finder.js","sourceRoot":"","sources":["../../src/http/routes-finder.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mDAA6C;AAE7C,0CAAyC;AAEzC,MAAa,YAAY;IAwBvB,YAAY,MAAY;QAnBxB;;;WAGG;QACH,wCAMI,IAAI,GAAG,EAAE;QAEb;;WAEG;UAJU;QAEb;;WAEG;QACH,+BAEO,EAAE,EAAA;QAGP,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAQ;QACV,6FAA6F;QAC7F,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAA;QAClC,IAAI,IAAA,gBAAQ,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,yEAAyE;YACzE,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAC5D,+DAA+D;YAC/D,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAClE,CAAC;QACD,uBAAA,IAAI,4BAAQ,CAAC,IAAI,CAAC;YAChB,GAAG,KAAK;YACR,UAAU,EAAE,IAAA,6BAAY,EAAC,cAAc,CAAC,CAAC,MAAM;SAChD,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,GAAW,EAAE,MAAsB;QACtC,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,GAAG,EAAE,CAAA;QAC9B,IAAI,uBAAA,IAAI,qCAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,uBAAA,IAAI,qCAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QAED,MAAM,MAAM,GACV,uBAAA,IAAI,4BAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACrE,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9D,CAAC,CAAC,IAAI,IAAI,CAAA;QAEZ,uBAAA,IAAI,qCAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AApED,oCAoEC"}
@@ -0,0 +1,39 @@
1
+ import { type RouteDescriptor } from "./types";
2
+ /**
3
+ * Exposes to API to register routes manually or by scanning the filesystem from a
4
+ * source directory.
5
+ *
6
+ * In case of duplicates routes, the route registered afterwards will override the
7
+ * one registered first.
8
+ */
9
+ export declare class RoutesLoader {
10
+ #private;
11
+ /**
12
+ * Creates the route path from its relative file path.
13
+ */
14
+ createRoutePath(relativePath: string): string;
15
+ /**
16
+ * Scans a given directory and loads all routes from it. You can access the loaded
17
+ * routes via "getRoutes" method
18
+ */
19
+ scanDir(sourceDir: string): Promise<void>;
20
+ /**
21
+ * Register a route
22
+ */
23
+ registerRoute(route: RouteDescriptor): void;
24
+ /**
25
+ * Register one or more routes
26
+ */
27
+ registerRoutes(routes: RouteDescriptor[]): void;
28
+ /**
29
+ * Returns an array of routes scanned by the routes loader or registered
30
+ * manually.
31
+ */
32
+ getRoutes(): RouteDescriptor[];
33
+ /**
34
+ * Reload a single route file
35
+ * This is used by HMR to reload routes when files change
36
+ */
37
+ reloadRouteFile(absolutePath: string, sourceDir: string): Promise<RouteDescriptor[]>;
38
+ }
39
+ //# sourceMappingURL=routes-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes-loader.d.ts","sourceRoot":"","sources":["../../src/http/routes-loader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,eAAe,EAAkB,MAAM,SAAS,CAAA;AAqC5E;;;;;;GAMG;AACH,qBAAa,YAAY;;IAMvB;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAoG7C;;;OAGG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM;IA0C/B;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe;IAMpC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;IAIxC;;;OAGG;IACH,SAAS;IAcT;;;OAGG;IACG,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,EAAE,CAAC;CAoB9B"}