@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 @@
1
+ {"version":3,"file":"link-loader.d.ts","sourceRoot":"","sources":["../../src/links/link-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAOvC,qBAAa,UAAU;;gBAqBT,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM;IAKzD;;;OAGG;IACG,IAAI;CAoCX"}
@@ -0,0 +1,76 @@
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 _LinkLoader_sourceDir, _LinkLoader_excludes, _LinkLoader_logger;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LinkLoader = void 0;
16
+ const utils_1 = require("@acmekit/utils");
17
+ const promises_1 = require("fs/promises");
18
+ const path_1 = require("path");
19
+ const logger_1 = require("../logger");
20
+ class LinkLoader {
21
+ constructor(sourceDir, logger) {
22
+ /**
23
+ * The directory from which to load the links
24
+ * @private
25
+ */
26
+ _LinkLoader_sourceDir.set(this, void 0);
27
+ /**
28
+ * The list of file names to exclude from the subscriber scan
29
+ * @private
30
+ */
31
+ _LinkLoader_excludes.set(this, [
32
+ /index\.js/,
33
+ /index\.ts/,
34
+ /\.DS_Store/,
35
+ /(\.ts\.map|\.js\.map|\.d\.ts|\.md)/,
36
+ /^_[^/\\]*(\.[^/\\]+)?$/,
37
+ ]);
38
+ _LinkLoader_logger.set(this, void 0);
39
+ __classPrivateFieldSet(this, _LinkLoader_sourceDir, sourceDir, "f");
40
+ __classPrivateFieldSet(this, _LinkLoader_logger, logger ?? logger_1.logger, "f");
41
+ }
42
+ /**
43
+ * Load links from the source paths, links are registering themselves,
44
+ * therefore we only need to import them
45
+ */
46
+ async load() {
47
+ const normalizedSourcePath = Array.isArray(__classPrivateFieldGet(this, _LinkLoader_sourceDir, "f"))
48
+ ? __classPrivateFieldGet(this, _LinkLoader_sourceDir, "f")
49
+ : [__classPrivateFieldGet(this, _LinkLoader_sourceDir, "f")];
50
+ const promises = normalizedSourcePath.map(async (sourcePath) => {
51
+ try {
52
+ await (0, promises_1.access)(sourcePath);
53
+ }
54
+ catch {
55
+ __classPrivateFieldGet(this, _LinkLoader_logger, "f").info(`No link to load from ${sourcePath}. skipped.`);
56
+ return;
57
+ }
58
+ return await (0, utils_1.readDirRecursive)(sourcePath).then(async (entries) => {
59
+ const fileEntries = entries.filter((entry) => {
60
+ return (!entry.isDirectory() &&
61
+ !__classPrivateFieldGet(this, _LinkLoader_excludes, "f").some((exclude) => exclude.test(entry.name)));
62
+ });
63
+ __classPrivateFieldGet(this, _LinkLoader_logger, "f").debug(`Registering links from ${sourcePath}.`);
64
+ return await (0, utils_1.promiseAll)(fileEntries.map(async (entry) => {
65
+ const fullPath = (0, path_1.join)(entry.path, entry.name);
66
+ return await (0, utils_1.dynamicImport)(fullPath);
67
+ }));
68
+ });
69
+ });
70
+ await (0, utils_1.promiseAll)(promises);
71
+ __classPrivateFieldGet(this, _LinkLoader_logger, "f").debug(`Links registered.`);
72
+ }
73
+ }
74
+ exports.LinkLoader = LinkLoader;
75
+ _LinkLoader_sourceDir = new WeakMap(), _LinkLoader_excludes = new WeakMap(), _LinkLoader_logger = new WeakMap();
76
+ //# sourceMappingURL=link-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-loader.js","sourceRoot":"","sources":["../../src/links/link-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0CAA4E;AAE5E,0CAAoC;AACpC,+BAA2B;AAC3B,sCAAmD;AAEnD,MAAa,UAAU;IAqBrB,YAAY,SAA4B,EAAE,MAAe;QApBzD;;;WAGG;QACH,wCAA6B;QAE7B;;;WAGG;QACH,+BAAsB;YACpB,WAAW;YACX,WAAW;YACX,YAAY;YACZ,oCAAoC;YACpC,wBAAwB;SACzB,EAAA;QAED,qCAAe;QAGb,uBAAA,IAAI,yBAAc,SAAS,MAAA,CAAA;QAC3B,uBAAA,IAAI,sBAAW,MAAM,IAAI,eAAa,MAAA,CAAA;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAA,IAAI,6BAAW,CAAC;YACzD,CAAC,CAAC,uBAAA,IAAI,6BAAW;YACjB,CAAC,CAAC,CAAC,uBAAA,IAAI,6BAAW,CAAC,CAAA;QAErB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAA,iBAAM,EAAC,UAAU,CAAC,CAAA;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAA,IAAI,0BAAQ,CAAC,IAAI,CAAC,wBAAwB,UAAU,YAAY,CAAC,CAAA;gBACjE,OAAM;YACR,CAAC;YAED,OAAO,MAAM,IAAA,wBAAgB,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;oBACnD,OAAO,CACL,CAAC,KAAK,CAAC,WAAW,EAAE;wBACpB,CAAC,uBAAA,IAAI,4BAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC5D,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,uBAAA,IAAI,0BAAQ,CAAC,KAAK,CAAC,0BAA0B,UAAU,GAAG,CAAC,CAAA;gBAE3D,OAAO,MAAM,IAAA,kBAAU,EACrB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;oBACtC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC7C,OAAO,MAAM,IAAA,qBAAa,EAAC,QAAQ,CAAC,CAAA;gBACtC,CAAC,CAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,MAAM,IAAA,kBAAU,EAAC,QAAQ,CAAC,CAAA;QAE1B,uBAAA,IAAI,0BAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACzC,CAAC;CACF;AAlED,gCAkEC"}
@@ -0,0 +1,3 @@
1
+ import logger from "@acmekit/cli/dist/reporter";
2
+ export { logger };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,4BAA4B,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logger = void 0;
7
+ const reporter_1 = __importDefault(require("@acmekit/cli/dist/reporter"));
8
+ exports.logger = reporter_1.default;
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;;;;AAAA,0EAA+C;AAEtC,iBAFF,kBAAM,CAEE"}
@@ -0,0 +1,3 @@
1
+ export * from "./migrator";
2
+ export * from "./run-migration-scripts";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,yBAAyB,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./migrator"), exports);
18
+ __exportStar(require("./run-migration-scripts"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,0DAAuC"}
@@ -0,0 +1,38 @@
1
+ import { AcmeKitContainer } from "@acmekit/types";
2
+ import { Knex } from "../deps/mikro-orm-knex";
3
+ export declare class Migrator {
4
+ #private;
5
+ protected migration_table_name: string;
6
+ protected container: AcmeKitContainer;
7
+ protected pgConnection: Knex<any>;
8
+ constructor({ container }: {
9
+ container: AcmeKitContainer;
10
+ });
11
+ /**
12
+ * Util to track duration using hrtime
13
+ */
14
+ protected trackDuration(): {
15
+ getSeconds(): string;
16
+ };
17
+ ensureDatabase(): Promise<void>;
18
+ ensureMigrationsTable(): Promise<void>;
19
+ getExecutedMigrations(): Promise<{
20
+ script_name: string;
21
+ }[]>;
22
+ insertMigration(records: Record<string, any>[]): Promise<void>;
23
+ /**
24
+ * Load migration files from the given paths
25
+ *
26
+ * @param paths - The paths to load migration files from
27
+ * @param options - The options for loading migration files
28
+ * @param options.force - Whether to force loading migration files even if they have already been loaded
29
+ * @returns The loaded migration file paths
30
+ */
31
+ loadMigrationFiles(paths: string[], { force }?: {
32
+ force?: boolean;
33
+ }): Promise<string[]>;
34
+ protected createMigrationTable(): Promise<void>;
35
+ run(...args: any[]): Promise<any>;
36
+ getPendingMigrations(migrationPaths: string[]): Promise<string[]>;
37
+ }
38
+ //# sourceMappingURL=migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/migrations/migrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAI7C,qBAAa,QAAQ;;IACnB,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAA;IAEtC,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACrC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAIrB,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,gBAAgB,CAAA;KAAE;IAQ1D;;OAEG;IACH,SAAS,CAAC,aAAa;;;IAUjB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB/B,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBtC,qBAAqB,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAY3D,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpE;;;;;;;OAOG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EAAE,EACf,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAqB,GAChD,OAAO,CAAC,MAAM,EAAE,CAAC;cAiCJ,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrD,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGlE"}
@@ -0,0 +1,146 @@
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 _Migrator_alreadyLoadedPaths;
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.Migrator = void 0;
10
+ const glob_1 = require("glob");
11
+ const path_1 = require("path");
12
+ const logger_1 = require("../logger");
13
+ const utils_1 = require("../utils");
14
+ class Migrator {
15
+ constructor({ container }) {
16
+ _Migrator_alreadyLoadedPaths.set(this, new Map());
17
+ this.container = container;
18
+ this.pgConnection = this.container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
19
+ this.migration_table_name = "mikro_orm_migrations";
20
+ }
21
+ /**
22
+ * Util to track duration using hrtime
23
+ */
24
+ trackDuration() {
25
+ const startTime = process.hrtime();
26
+ return {
27
+ getSeconds() {
28
+ const duration = process.hrtime(startTime);
29
+ return (duration[0] + duration[1] / 1e9).toFixed(2);
30
+ },
31
+ };
32
+ }
33
+ async ensureDatabase() {
34
+ const pgConnection = this.container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
35
+ try {
36
+ await pgConnection.raw("SELECT 1 + 1;");
37
+ }
38
+ catch (error) {
39
+ if (error.code === "3D000") {
40
+ logger_1.logger.error(`Cannot run migrations. ${error.message.replace("error: ", "")}`);
41
+ logger_1.logger.info(`Run command "db:create" to create the database`);
42
+ }
43
+ else {
44
+ logger_1.logger.error(error);
45
+ }
46
+ throw error;
47
+ }
48
+ }
49
+ async ensureMigrationsTable() {
50
+ try {
51
+ // Check if table exists
52
+ const tableExists = await this.pgConnection.raw(`
53
+ SELECT EXISTS (
54
+ SELECT FROM information_schema.tables
55
+ WHERE table_schema = 'public'
56
+ AND table_name = '${this.migration_table_name}'
57
+ );
58
+ `);
59
+ if (!tableExists.rows[0].exists) {
60
+ logger_1.logger.info(`Creating migrations table '${this.migration_table_name}'...`);
61
+ await this.createMigrationTable();
62
+ logger_1.logger.info("Migrations table created successfully");
63
+ }
64
+ }
65
+ catch (error) {
66
+ logger_1.logger.error("Failed to ensure migrations table exists:", error);
67
+ throw error;
68
+ }
69
+ }
70
+ async getExecutedMigrations() {
71
+ try {
72
+ const result = await this.pgConnection.raw(`SELECT * FROM ${this.migration_table_name}`);
73
+ return result.rows;
74
+ }
75
+ catch (error) {
76
+ logger_1.logger.error("Failed to get executed migrations:", error);
77
+ throw error;
78
+ }
79
+ }
80
+ async insertMigration(records) {
81
+ try {
82
+ const values = records.map((record) => Object.values(record));
83
+ const columns = Object.keys(records[0]);
84
+ await this.pgConnection.raw(`INSERT INTO ${this.migration_table_name} (${columns.join(", ")}) VALUES ${values
85
+ .map((itemValues) => `(${new Array(itemValues.length).fill("?").join(",")})`)
86
+ .join(",")}`, values.flat());
87
+ }
88
+ catch (error) {
89
+ logger_1.logger.error(`Failed to update migration table '${this.migration_table_name}':`, error);
90
+ throw error;
91
+ }
92
+ }
93
+ /**
94
+ * Load migration files from the given paths
95
+ *
96
+ * @param paths - The paths to load migration files from
97
+ * @param options - The options for loading migration files
98
+ * @param options.force - Whether to force loading migration files even if they have already been loaded
99
+ * @returns The loaded migration file paths
100
+ */
101
+ async loadMigrationFiles(paths, { force } = { force: false }) {
102
+ const allScripts = [];
103
+ for (const basePath of paths) {
104
+ if (!force && __classPrivateFieldGet(this, _Migrator_alreadyLoadedPaths, "f").has(basePath)) {
105
+ allScripts.push(...__classPrivateFieldGet(this, _Migrator_alreadyLoadedPaths, "f").get(basePath));
106
+ continue;
107
+ }
108
+ try {
109
+ const scriptFiles = glob_1.glob.sync("*.{js,ts}", {
110
+ cwd: basePath,
111
+ ignore: ["**/index.{js,ts}", "**/*.d.ts"],
112
+ });
113
+ scriptFiles.sort((a, b) => a.localeCompare(b));
114
+ if (!scriptFiles?.length) {
115
+ continue;
116
+ }
117
+ const filePaths = scriptFiles.map((script) => (0, path_1.join)(basePath, script));
118
+ __classPrivateFieldGet(this, _Migrator_alreadyLoadedPaths, "f").set(basePath, filePaths);
119
+ allScripts.push(...filePaths);
120
+ }
121
+ catch (error) {
122
+ logger_1.logger.error(`Failed to load migration files from ${basePath}:`, error);
123
+ throw error;
124
+ }
125
+ }
126
+ return allScripts;
127
+ }
128
+ async createMigrationTable() {
129
+ await this.pgConnection.raw(`
130
+ CREATE TABLE IF NOT EXISTS ${this.migration_table_name} (
131
+ id serial PRIMARY KEY,
132
+ name varchar(255),
133
+ executed_at timestamptz DEFAULT CURRENT_TIMESTAMP
134
+ )
135
+ `);
136
+ }
137
+ run(...args) {
138
+ throw new Error("Method not implemented");
139
+ }
140
+ getPendingMigrations(migrationPaths) {
141
+ throw new Error("Method not implemented");
142
+ }
143
+ }
144
+ exports.Migrator = Migrator;
145
+ _Migrator_alreadyLoadedPaths = new WeakMap();
146
+ //# sourceMappingURL=migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../src/migrations/migrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { AcmeKitContainer } from "@acmekit/types";
2
+ import { Migrator } from "./migrator";
3
+ export declare class MigrationScriptsMigrator extends Migrator {
4
+ #private;
5
+ protected migration_table_name: string;
6
+ constructor({ container }: {
7
+ container: AcmeKitContainer;
8
+ });
9
+ /**
10
+ * Run the migration scripts
11
+ * @param paths - The paths from which to load the scripts
12
+ */
13
+ run(paths: string[]): Promise<void>;
14
+ getPendingMigrations(migrationPaths: string[]): Promise<string[]>;
15
+ protected createMigrationTable(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=run-migration-scripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-migration-scripts.d.ts","sourceRoot":"","sources":["../../src/migrations/run-migration-scripts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAIjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,qBAAa,wBAAyB,SAAQ,QAAQ;;IACpD,SAAS,CAAC,oBAAoB,SAAsB;gBAExC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,gBAAgB,CAAA;KAAE;IAI1D;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEnC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cASvD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CA0BtD"}
@@ -0,0 +1,97 @@
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 _MigrationScriptsMigrator_instances, _MigrationScriptsMigrator_updateMigrationFinishedAt, _MigrationScriptsMigrator_deleteMigration;
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MigrationScriptsMigrator = void 0;
10
+ const utils_1 = require("@acmekit/utils");
11
+ const path_1 = require("path");
12
+ const logger_1 = require("../logger");
13
+ const migrator_1 = require("./migrator");
14
+ class MigrationScriptsMigrator extends migrator_1.Migrator {
15
+ constructor({ container }) {
16
+ super({ container });
17
+ _MigrationScriptsMigrator_instances.add(this);
18
+ this.migration_table_name = "script_migrations";
19
+ }
20
+ /**
21
+ * Run the migration scripts
22
+ * @param paths - The paths from which to load the scripts
23
+ */
24
+ async run(paths) {
25
+ const lockService = this.container.resolve(utils_1.Modules.LOCKING);
26
+ const lockKey = "migration-scripts-running";
27
+ await lockService.acquire(lockKey, {
28
+ expire: 60 * 60,
29
+ });
30
+ try {
31
+ const scriptPaths = await this.getPendingMigrations(paths);
32
+ for (const script of scriptPaths) {
33
+ const scriptFn = await (0, utils_1.dynamicImport)(script);
34
+ if ((0, utils_1.isFileSkipped)(scriptFn)) {
35
+ continue;
36
+ }
37
+ if (!scriptFn.default) {
38
+ throw new Error(`Failed to load migration script ${script}. No default export found.`);
39
+ }
40
+ const scriptName = (0, path_1.basename)(script);
41
+ const err = await this.insertMigration([
42
+ { script_name: scriptName },
43
+ ]).catch((e) => e);
44
+ /**
45
+ * In case another processes is running in parallel, the migration might
46
+ * have already been executed and therefore the insert will fail because of the
47
+ * unique constraint.
48
+ */
49
+ if (err) {
50
+ if (err.constraint === "idx_script_name_unique") {
51
+ continue;
52
+ }
53
+ throw err;
54
+ }
55
+ logger_1.logger.info(`Running migration script ${script}`);
56
+ try {
57
+ const tracker = this.trackDuration();
58
+ await scriptFn.default({ container: this.container });
59
+ logger_1.logger.info(`Migration script ${script} completed (${tracker.getSeconds()}s)`);
60
+ await __classPrivateFieldGet(this, _MigrationScriptsMigrator_instances, "m", _MigrationScriptsMigrator_updateMigrationFinishedAt).call(this, scriptName);
61
+ }
62
+ catch (error) {
63
+ logger_1.logger.error(`Failed to run migration script ${script}:`, error);
64
+ await __classPrivateFieldGet(this, _MigrationScriptsMigrator_instances, "m", _MigrationScriptsMigrator_deleteMigration).call(this, scriptName);
65
+ throw error;
66
+ }
67
+ }
68
+ }
69
+ finally {
70
+ await lockService.release(lockKey);
71
+ }
72
+ }
73
+ async getPendingMigrations(migrationPaths) {
74
+ const executedMigrations = new Set((await this.getExecutedMigrations()).map((item) => item.script_name));
75
+ const all = await this.loadMigrationFiles(migrationPaths);
76
+ return all.filter((item) => !executedMigrations.has((0, path_1.basename)(item)));
77
+ }
78
+ async createMigrationTable() {
79
+ await this.pgConnection.raw(`
80
+ CREATE TABLE IF NOT EXISTS ${this.migration_table_name} (
81
+ id SERIAL PRIMARY KEY,
82
+ script_name VARCHAR(255) NOT NULL,
83
+ created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
84
+ finished_at TIMESTAMP WITH TIME ZONE
85
+ );
86
+
87
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_script_name_unique ON ${this.migration_table_name} (script_name);
88
+ `);
89
+ }
90
+ }
91
+ exports.MigrationScriptsMigrator = MigrationScriptsMigrator;
92
+ _MigrationScriptsMigrator_instances = new WeakSet(), _MigrationScriptsMigrator_updateMigrationFinishedAt = function _MigrationScriptsMigrator_updateMigrationFinishedAt(scriptName) {
93
+ return this.pgConnection.raw(`UPDATE ${this.migration_table_name} SET finished_at = NOW() WHERE script_name = ?`, [scriptName]);
94
+ }, _MigrationScriptsMigrator_deleteMigration = function _MigrationScriptsMigrator_deleteMigration(scriptName) {
95
+ return this.pgConnection.raw(`DELETE FROM ${this.migration_table_name} WHERE script_name = ?`, [scriptName]);
96
+ };
97
+ //# sourceMappingURL=run-migration-scripts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-migration-scripts.js","sourceRoot":"","sources":["../../src/migrations/run-migration-scripts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Custom wrapper on top of MikroORM CLI to override the issue
3
+ * they have when importing TypeScript files.
4
+ *
5
+ * They have hardcoded the module system of TypeScript to CommonJS
6
+ * and that makes it impossible to use any other module system
7
+ * like Node16 or NodeNext and so on.
8
+ *
9
+ * With this wrapper, we monkey patch the code responsible for register
10
+ * ts-node and then boot their CLI. Since, the code footprint is
11
+ * small, we should be okay with managing this wrapper.
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/mikro-orm-cli/bin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Custom wrapper on top of MikroORM CLI to override the issue
4
+ * they have when importing TypeScript files.
5
+ *
6
+ * They have hardcoded the module system of TypeScript to CommonJS
7
+ * and that makes it impossible to use any other module system
8
+ * like Node16 or NodeNext and so on.
9
+ *
10
+ * With this wrapper, we monkey patch the code responsible for register
11
+ * ts-node and then boot their CLI. Since, the code footprint is
12
+ * small, we should be okay with managing this wrapper.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const mikro_orm_cli_1 = require("../deps/mikro-orm-cli");
16
+ const mikro_orm_core_1 = require("../deps/mikro-orm-core");
17
+ const path_1 = require("path");
18
+ /**
19
+ * Monkey patching the TSNode registration of Mikro ORM to not use
20
+ * hardcoded module system with TypeScript.
21
+ */
22
+ mikro_orm_core_1.ConfigurationLoader.registerTsNode = function (configPath = "tsconfig.json") {
23
+ const tsConfigPath = (0, path_1.isAbsolute)(configPath)
24
+ ? configPath
25
+ : (0, path_1.join)(process.cwd(), configPath);
26
+ const tsNode = require(require.resolve("ts-node", { paths: [tsConfigPath] }));
27
+ if (!tsNode) {
28
+ return false;
29
+ }
30
+ const { options } = tsNode.register({
31
+ project: tsConfigPath,
32
+ transpileOnly: true,
33
+ }).config;
34
+ if (Object.entries(options?.paths ?? {}).length > 0) {
35
+ require("tsconfig-paths").register({
36
+ baseUrl: options.baseUrl ?? ".",
37
+ paths: options.paths,
38
+ });
39
+ }
40
+ return true;
41
+ };
42
+ require("@jercle/yargonaut")
43
+ .style("blue")
44
+ .style("yellow", "required")
45
+ .helpStyle("green")
46
+ .errorsStyle("red");
47
+ (async () => {
48
+ const argv = await mikro_orm_cli_1.CLIConfigurator.configure();
49
+ const args = await argv.parse(process.argv.slice(2));
50
+ if (args._.length === 0) {
51
+ mikro_orm_cli_1.CLIHelper.showHelp();
52
+ }
53
+ })();
54
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/mikro-orm-cli/bin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAEH,yDAAkE;AAClE,2DAA4D;AAC5D,+BAAuC;AAEvC;;;GAGG;AACH,oCAAmB,CAAC,cAAc,GAAG,UAAU,UAAU,GAAG,eAAe;IACzE,MAAM,YAAY,GAAG,IAAA,iBAAU,EAAC,UAAU,CAAC;QACzC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAA;IAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;QAClC,OAAO,EAAE,YAAY;QACrB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC,MAAM,CAAA;IAET,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;YACjC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,GAAG;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,OAAO,CAAC,mBAAmB,CAAC;KACzB,KAAK,CAAC,MAAM,CAAC;KACb,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC;KAC3B,SAAS,CAAC,OAAO,CAAC;KAClB,WAAW,CAAC,KAAK,CAAC,CACpB;AAAA,CAAC,KAAK,IAAI,EAAE;IACX,MAAM,IAAI,GAAG,MAAM,+BAAe,CAAC,SAAS,EAAE,CAAA;IAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,yBAAS,CAAC,QAAQ,EAAE,CAAA;IACtB,CAAC;AACH,CAAC,CAAC,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "@acmekit/modules-sdk";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules-sdk/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@acmekit/modules-sdk"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules-sdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC"}
@@ -0,0 +1,2 @@
1
+ export * from "@acmekit/orchestration";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@acmekit/orchestration"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAsC"}
@@ -0,0 +1,33 @@
1
+ import { AcmeKitContainer } from "@acmekit/types";
2
+ export type PermissionAction = {
3
+ resource: string;
4
+ operation: string | string[];
5
+ };
6
+ export type HasPermissionInput = {
7
+ roles: string | string[];
8
+ actions: PermissionAction | PermissionAction[];
9
+ container: AcmeKitContainer;
10
+ };
11
+ /**
12
+ * Checks if the given role(s) have permission to perform the specified action(s).
13
+ *
14
+ * @param input - The input containing roles, actions, and container
15
+ * @returns true if all actions are permitted, false otherwise
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * const canWrite = await hasPermission({
20
+ * roles: ['role_123'],
21
+ * actions: { resource: 'product', operation: 'write' },
22
+ * container
23
+ * })
24
+ *
25
+ * const canDeleteAndWrite = await hasPermission({
26
+ * roles: ['role_123'],
27
+ * actions: { resource: 'product', operation: ['delete', 'write'] },
28
+ * container
29
+ * })
30
+ * ```
31
+ */
32
+ export declare function hasPermission(input: HasPermissionInput): Promise<boolean>;
33
+ //# sourceMappingURL=has-permission.d.ts.map