@monolayer/sdk 1.2.0-canary.4

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 (320) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/dist/bin/cli.js +21609 -0
  4. package/dist/cjs/configuration.d.ts +65 -0
  5. package/dist/cjs/configuration.js +45 -0
  6. package/dist/cjs/index.d.ts +4 -0
  7. package/dist/cjs/index.js +20 -0
  8. package/dist/cjs/introspection.d.ts +2 -0
  9. package/dist/cjs/introspection.js +11 -0
  10. package/dist/cjs/make/broadcast.d.ts +10 -0
  11. package/dist/cjs/make/broadcast.js +37 -0
  12. package/dist/cjs/make/config.d.ts +2 -0
  13. package/dist/cjs/make/config.js +44 -0
  14. package/dist/cjs/make/cron.d.ts +9 -0
  15. package/dist/cjs/make/cron.js +30 -0
  16. package/dist/cjs/make/make.d.ts +6 -0
  17. package/dist/cjs/make/make.js +134 -0
  18. package/dist/cjs/make/manifest.d.ts +202 -0
  19. package/dist/cjs/make/manifest.js +165 -0
  20. package/dist/cjs/make/required-filtes.d.ts +1 -0
  21. package/dist/cjs/make/required-filtes.js +17 -0
  22. package/dist/cjs/make/task.d.ts +9 -0
  23. package/dist/cjs/make/task.js +30 -0
  24. package/dist/cjs/package.json +3 -0
  25. package/dist/cjs/packages/docker/df.d.ts +543 -0
  26. package/dist/cjs/packages/docker/df.js +395 -0
  27. package/dist/cjs/packages/docker/validator.d.ts +7 -0
  28. package/dist/cjs/packages/docker/validator.js +18 -0
  29. package/dist/cjs/packages/utils/create-file.d.ts +1 -0
  30. package/dist/cjs/packages/utils/create-file.js +18 -0
  31. package/dist/cjs/packages/utils/date-string.d.ts +1 -0
  32. package/dist/cjs/packages/utils/date-string.js +12 -0
  33. package/dist/cjs/packages/utils/exception.d.ts +1 -0
  34. package/dist/cjs/packages/utils/exception.js +8 -0
  35. package/dist/cjs/packages/utils/hash-value.d.ts +16 -0
  36. package/dist/cjs/packages/utils/hash-value.js +25 -0
  37. package/dist/cjs/packages/utils/import-default.d.ts +1 -0
  38. package/dist/cjs/packages/utils/import-default.js +14 -0
  39. package/dist/cjs/packages/utils/import-file.d.ts +8 -0
  40. package/dist/cjs/packages/utils/import-file.js +41 -0
  41. package/dist/cjs/packages/utils/log-with-spinner.d.ts +1 -0
  42. package/dist/cjs/packages/utils/log-with-spinner.js +24 -0
  43. package/dist/cjs/packages/utils/path.d.ts +2 -0
  44. package/dist/cjs/packages/utils/path.js +21 -0
  45. package/dist/cjs/packages/utils/playground.d.ts +1 -0
  46. package/dist/cjs/packages/utils/playground.js +35 -0
  47. package/dist/cjs/scaffolding/add-env-var.d.ts +6 -0
  48. package/dist/cjs/scaffolding/add-env-var.js +65 -0
  49. package/dist/cjs/scaffolding/add-import.d.ts +16 -0
  50. package/dist/cjs/scaffolding/add-import.js +43 -0
  51. package/dist/cjs/scaffolding/add-script.d.ts +1 -0
  52. package/dist/cjs/scaffolding/add-script.js +35 -0
  53. package/dist/cjs/scaffolding/broadcast-workload.d.ts +1 -0
  54. package/dist/cjs/scaffolding/broadcast-workload.js +36 -0
  55. package/dist/cjs/scaffolding/bucket-workload.d.ts +6 -0
  56. package/dist/cjs/scaffolding/bucket-workload.js +23 -0
  57. package/dist/cjs/scaffolding/cron-workload.d.ts +6 -0
  58. package/dist/cjs/scaffolding/cron-workload.js +28 -0
  59. package/dist/cjs/scaffolding/drizzle.d.ts +4 -0
  60. package/dist/cjs/scaffolding/drizzle.js +22 -0
  61. package/dist/cjs/scaffolding/lifecycle.d.ts +9 -0
  62. package/dist/cjs/scaffolding/lifecycle.js +61 -0
  63. package/dist/cjs/scaffolding/postgres-database-workload.d.ts +15 -0
  64. package/dist/cjs/scaffolding/postgres-database-workload.js +39 -0
  65. package/dist/cjs/scaffolding/prisma.d.ts +4 -0
  66. package/dist/cjs/scaffolding/prisma.js +40 -0
  67. package/dist/cjs/scaffolding/replace-string.d.ts +10 -0
  68. package/dist/cjs/scaffolding/replace-string.js +37 -0
  69. package/dist/cjs/scaffolding/task-workload.d.ts +6 -0
  70. package/dist/cjs/scaffolding/task-workload.js +30 -0
  71. package/dist/cjs/scaffolding/workload.d.ts +1 -0
  72. package/dist/cjs/scaffolding/workload.js +18 -0
  73. package/dist/cjs/scan/project.d.ts +23 -0
  74. package/dist/cjs/scan/project.js +79 -0
  75. package/dist/cjs/scan/workload-imports.d.ts +21 -0
  76. package/dist/cjs/scan/workload-imports.js +188 -0
  77. package/dist/cjs/test-helpers/postgres.d.ts +13 -0
  78. package/dist/cjs/test-helpers/postgres.js +52 -0
  79. package/dist/cjs/test-helpers/redis.d.ts +13 -0
  80. package/dist/cjs/test-helpers/redis.js +46 -0
  81. package/dist/cjs/test-helpers/task.d.ts +14 -0
  82. package/dist/cjs/test-helpers/task.js +18 -0
  83. package/dist/cjs/test-helpers.d.ts +3 -0
  84. package/dist/cjs/test-helpers.js +10 -0
  85. package/dist/cjs/workloads/app-lifecycle/after-rollout.d.ts +22 -0
  86. package/dist/cjs/workloads/app-lifecycle/after-rollout.js +28 -0
  87. package/dist/cjs/workloads/app-lifecycle/before-rollout.d.ts +22 -0
  88. package/dist/cjs/workloads/app-lifecycle/before-rollout.js +28 -0
  89. package/dist/cjs/workloads/app-lifecycle/bootstrap.d.ts +22 -0
  90. package/dist/cjs/workloads/app-lifecycle/bootstrap.js +28 -0
  91. package/dist/cjs/workloads/app-lifecycle/lifecycle-workload.d.ts +11 -0
  92. package/dist/cjs/workloads/app-lifecycle/lifecycle-workload.js +11 -0
  93. package/dist/cjs/workloads/assertions.d.ts +13 -0
  94. package/dist/cjs/workloads/assertions.js +14 -0
  95. package/dist/cjs/workloads/stateful/bucket.d.ts +82 -0
  96. package/dist/cjs/workloads/stateful/bucket.js +95 -0
  97. package/dist/cjs/workloads/stateful/database.d.ts +25 -0
  98. package/dist/cjs/workloads/stateful/database.js +42 -0
  99. package/dist/cjs/workloads/stateful/postgres-database.d.ts +29 -0
  100. package/dist/cjs/workloads/stateful/postgres-database.js +39 -0
  101. package/dist/cjs/workloads/stateful/redis.d.ts +30 -0
  102. package/dist/cjs/workloads/stateful/redis.js +40 -0
  103. package/dist/cjs/workloads/stateful/stateful-workload.d.ts +25 -0
  104. package/dist/cjs/workloads/stateful/stateful-workload.js +41 -0
  105. package/dist/cjs/workloads/stateless/broadcast/channel-data.d.ts +3 -0
  106. package/dist/cjs/workloads/stateless/broadcast/channel-data.js +6 -0
  107. package/dist/cjs/workloads/stateless/broadcast/client/app-sync-client.d.ts +78 -0
  108. package/dist/cjs/workloads/stateless/broadcast/client/app-sync-client.js +128 -0
  109. package/dist/cjs/workloads/stateless/broadcast/client/app-sync-publisher.d.ts +34 -0
  110. package/dist/cjs/workloads/stateless/broadcast/client/app-sync-publisher.js +78 -0
  111. package/dist/cjs/workloads/stateless/broadcast/client/authenticator.d.ts +28 -0
  112. package/dist/cjs/workloads/stateless/broadcast/client/authenticator.js +43 -0
  113. package/dist/cjs/workloads/stateless/broadcast/client/broadcast-provider.d.ts +17 -0
  114. package/dist/cjs/workloads/stateless/broadcast/client/broadcast-provider.js +34 -0
  115. package/dist/cjs/workloads/stateless/broadcast/client/client.d.ts +8 -0
  116. package/dist/cjs/workloads/stateless/broadcast/client/client.js +28 -0
  117. package/dist/cjs/workloads/stateless/broadcast/client/connectionManager.d.ts +62 -0
  118. package/dist/cjs/workloads/stateless/broadcast/client/connectionManager.js +166 -0
  119. package/dist/cjs/workloads/stateless/broadcast/client/eventEmitter.d.ts +32 -0
  120. package/dist/cjs/workloads/stateless/broadcast/client/eventEmitter.js +53 -0
  121. package/dist/cjs/workloads/stateless/broadcast/client/messageBuilder.d.ts +24 -0
  122. package/dist/cjs/workloads/stateless/broadcast/client/messageBuilder.js +43 -0
  123. package/dist/cjs/workloads/stateless/broadcast/client/parser.d.ts +12 -0
  124. package/dist/cjs/workloads/stateless/broadcast/client/parser.js +22 -0
  125. package/dist/cjs/workloads/stateless/broadcast/client/provider.d.ts +4 -0
  126. package/dist/cjs/workloads/stateless/broadcast/client/provider.js +11 -0
  127. package/dist/cjs/workloads/stateless/broadcast/client/subscriptionManager.d.ts +34 -0
  128. package/dist/cjs/workloads/stateless/broadcast/client/subscriptionManager.js +91 -0
  129. package/dist/cjs/workloads/stateless/broadcast/client/types.d.ts +72 -0
  130. package/dist/cjs/workloads/stateless/broadcast/client/types.js +6 -0
  131. package/dist/cjs/workloads/stateless/broadcast/matcher.d.ts +13 -0
  132. package/dist/cjs/workloads/stateless/broadcast/matcher.js +46 -0
  133. package/dist/cjs/workloads/stateless/broadcast/router.d.ts +103 -0
  134. package/dist/cjs/workloads/stateless/broadcast/router.js +98 -0
  135. package/dist/cjs/workloads/stateless/broadcast/types.d.ts +17 -0
  136. package/dist/cjs/workloads/stateless/broadcast/types.js +2 -0
  137. package/dist/cjs/workloads/stateless/cron.d.ts +49 -0
  138. package/dist/cjs/workloads/stateless/cron.js +55 -0
  139. package/dist/cjs/workloads/stateless/stateless-workload.d.ts +3 -0
  140. package/dist/cjs/workloads/stateless/stateless-workload.js +7 -0
  141. package/dist/cjs/workloads/stateless/task/backoffs.d.ts +9 -0
  142. package/dist/cjs/workloads/stateless/task/backoffs.js +17 -0
  143. package/dist/cjs/workloads/stateless/task/dispatcher.d.ts +3 -0
  144. package/dist/cjs/workloads/stateless/task/dispatcher.js +22 -0
  145. package/dist/cjs/workloads/stateless/task/local.d.ts +14 -0
  146. package/dist/cjs/workloads/stateless/task/local.js +54 -0
  147. package/dist/cjs/workloads/stateless/task/perform-later.d.ts +2 -0
  148. package/dist/cjs/workloads/stateless/task/perform-later.js +7 -0
  149. package/dist/cjs/workloads/stateless/task/perform-now.d.ts +5 -0
  150. package/dist/cjs/workloads/stateless/task/perform-now.js +24 -0
  151. package/dist/cjs/workloads/stateless/task/perform.d.ts +7 -0
  152. package/dist/cjs/workloads/stateless/task/perform.js +10 -0
  153. package/dist/cjs/workloads/stateless/task/task.d.ts +88 -0
  154. package/dist/cjs/workloads/stateless/task/task.js +61 -0
  155. package/dist/cjs/workloads/stateless/task/validate-data-size.d.ts +1 -0
  156. package/dist/cjs/workloads/stateless/task/validate-data-size.js +10 -0
  157. package/dist/cjs/workloads/workload.d.ts +14 -0
  158. package/dist/cjs/workloads/workload.js +16 -0
  159. package/dist/cjs/workloads.d.ts +22 -0
  160. package/dist/cjs/workloads.js +30 -0
  161. package/dist/esm/configuration.d.ts +65 -0
  162. package/dist/esm/configuration.js +15 -0
  163. package/dist/esm/index.d.ts +4 -0
  164. package/dist/esm/index.js +4 -0
  165. package/dist/esm/introspection.d.ts +2 -0
  166. package/dist/esm/introspection.js +2 -0
  167. package/dist/esm/make/broadcast.d.ts +10 -0
  168. package/dist/esm/make/broadcast.js +30 -0
  169. package/dist/esm/make/config.d.ts +2 -0
  170. package/dist/esm/make/config.js +41 -0
  171. package/dist/esm/make/cron.d.ts +9 -0
  172. package/dist/esm/make/cron.js +23 -0
  173. package/dist/esm/make/make.d.ts +6 -0
  174. package/dist/esm/make/make.js +120 -0
  175. package/dist/esm/make/manifest.d.ts +202 -0
  176. package/dist/esm/make/manifest.js +162 -0
  177. package/dist/esm/make/required-filtes.d.ts +1 -0
  178. package/dist/esm/make/required-filtes.js +11 -0
  179. package/dist/esm/make/task.d.ts +9 -0
  180. package/dist/esm/make/task.js +23 -0
  181. package/dist/esm/package.json +3 -0
  182. package/dist/esm/packages/docker/df.d.ts +543 -0
  183. package/dist/esm/packages/docker/df.js +381 -0
  184. package/dist/esm/packages/docker/validator.d.ts +7 -0
  185. package/dist/esm/packages/docker/validator.js +14 -0
  186. package/dist/esm/packages/utils/create-file.d.ts +1 -0
  187. package/dist/esm/packages/utils/create-file.js +11 -0
  188. package/dist/esm/packages/utils/date-string.d.ts +1 -0
  189. package/dist/esm/packages/utils/date-string.js +8 -0
  190. package/dist/esm/packages/utils/exception.d.ts +1 -0
  191. package/dist/esm/packages/utils/exception.js +4 -0
  192. package/dist/esm/packages/utils/hash-value.d.ts +16 -0
  193. package/dist/esm/packages/utils/hash-value.js +20 -0
  194. package/dist/esm/packages/utils/import-default.d.ts +1 -0
  195. package/dist/esm/packages/utils/import-default.js +10 -0
  196. package/dist/esm/packages/utils/import-file.d.ts +8 -0
  197. package/dist/esm/packages/utils/import-file.js +13 -0
  198. package/dist/esm/packages/utils/log-with-spinner.d.ts +1 -0
  199. package/dist/esm/packages/utils/log-with-spinner.js +17 -0
  200. package/dist/esm/packages/utils/path.d.ts +2 -0
  201. package/dist/esm/packages/utils/path.js +17 -0
  202. package/dist/esm/packages/utils/playground.d.ts +1 -0
  203. package/dist/esm/packages/utils/playground.js +11 -0
  204. package/dist/esm/scaffolding/add-env-var.d.ts +6 -0
  205. package/dist/esm/scaffolding/add-env-var.js +57 -0
  206. package/dist/esm/scaffolding/add-import.d.ts +16 -0
  207. package/dist/esm/scaffolding/add-import.js +39 -0
  208. package/dist/esm/scaffolding/add-script.d.ts +1 -0
  209. package/dist/esm/scaffolding/add-script.js +29 -0
  210. package/dist/esm/scaffolding/broadcast-workload.d.ts +1 -0
  211. package/dist/esm/scaffolding/broadcast-workload.js +30 -0
  212. package/dist/esm/scaffolding/bucket-workload.d.ts +6 -0
  213. package/dist/esm/scaffolding/bucket-workload.js +17 -0
  214. package/dist/esm/scaffolding/cron-workload.d.ts +6 -0
  215. package/dist/esm/scaffolding/cron-workload.js +22 -0
  216. package/dist/esm/scaffolding/drizzle.d.ts +4 -0
  217. package/dist/esm/scaffolding/drizzle.js +19 -0
  218. package/dist/esm/scaffolding/lifecycle.d.ts +9 -0
  219. package/dist/esm/scaffolding/lifecycle.js +53 -0
  220. package/dist/esm/scaffolding/postgres-database-workload.d.ts +15 -0
  221. package/dist/esm/scaffolding/postgres-database-workload.js +31 -0
  222. package/dist/esm/scaffolding/prisma.d.ts +4 -0
  223. package/dist/esm/scaffolding/prisma.js +34 -0
  224. package/dist/esm/scaffolding/replace-string.d.ts +10 -0
  225. package/dist/esm/scaffolding/replace-string.js +30 -0
  226. package/dist/esm/scaffolding/task-workload.d.ts +6 -0
  227. package/dist/esm/scaffolding/task-workload.js +24 -0
  228. package/dist/esm/scaffolding/workload.d.ts +1 -0
  229. package/dist/esm/scaffolding/workload.js +12 -0
  230. package/dist/esm/scan/project.d.ts +23 -0
  231. package/dist/esm/scan/project.js +69 -0
  232. package/dist/esm/scan/workload-imports.d.ts +21 -0
  233. package/dist/esm/scan/workload-imports.js +144 -0
  234. package/dist/esm/test-helpers/postgres.d.ts +13 -0
  235. package/dist/esm/test-helpers/postgres.js +26 -0
  236. package/dist/esm/test-helpers/redis.d.ts +13 -0
  237. package/dist/esm/test-helpers/redis.js +20 -0
  238. package/dist/esm/test-helpers/task.d.ts +14 -0
  239. package/dist/esm/test-helpers/task.js +14 -0
  240. package/dist/esm/test-helpers.d.ts +3 -0
  241. package/dist/esm/test-helpers.js +3 -0
  242. package/dist/esm/workloads/app-lifecycle/after-rollout.d.ts +22 -0
  243. package/dist/esm/workloads/app-lifecycle/after-rollout.js +24 -0
  244. package/dist/esm/workloads/app-lifecycle/before-rollout.d.ts +22 -0
  245. package/dist/esm/workloads/app-lifecycle/before-rollout.js +24 -0
  246. package/dist/esm/workloads/app-lifecycle/bootstrap.d.ts +22 -0
  247. package/dist/esm/workloads/app-lifecycle/bootstrap.js +24 -0
  248. package/dist/esm/workloads/app-lifecycle/lifecycle-workload.d.ts +11 -0
  249. package/dist/esm/workloads/app-lifecycle/lifecycle-workload.js +7 -0
  250. package/dist/esm/workloads/assertions.d.ts +13 -0
  251. package/dist/esm/workloads/assertions.js +6 -0
  252. package/dist/esm/workloads/stateful/bucket.d.ts +82 -0
  253. package/dist/esm/workloads/stateful/bucket.js +95 -0
  254. package/dist/esm/workloads/stateful/database.d.ts +25 -0
  255. package/dist/esm/workloads/stateful/database.js +42 -0
  256. package/dist/esm/workloads/stateful/postgres-database.d.ts +29 -0
  257. package/dist/esm/workloads/stateful/postgres-database.js +35 -0
  258. package/dist/esm/workloads/stateful/redis.d.ts +30 -0
  259. package/dist/esm/workloads/stateful/redis.js +36 -0
  260. package/dist/esm/workloads/stateful/stateful-workload.d.ts +25 -0
  261. package/dist/esm/workloads/stateful/stateful-workload.js +41 -0
  262. package/dist/esm/workloads/stateless/broadcast/channel-data.d.ts +3 -0
  263. package/dist/esm/workloads/stateless/broadcast/channel-data.js +2 -0
  264. package/dist/esm/workloads/stateless/broadcast/client/app-sync-client.d.ts +78 -0
  265. package/dist/esm/workloads/stateless/broadcast/client/app-sync-client.js +130 -0
  266. package/dist/esm/workloads/stateless/broadcast/client/app-sync-publisher.d.ts +34 -0
  267. package/dist/esm/workloads/stateless/broadcast/client/app-sync-publisher.js +76 -0
  268. package/dist/esm/workloads/stateless/broadcast/client/authenticator.d.ts +28 -0
  269. package/dist/esm/workloads/stateless/broadcast/client/authenticator.js +39 -0
  270. package/dist/esm/workloads/stateless/broadcast/client/broadcast-provider.d.ts +17 -0
  271. package/dist/esm/workloads/stateless/broadcast/client/broadcast-provider.js +29 -0
  272. package/dist/esm/workloads/stateless/broadcast/client/client.d.ts +8 -0
  273. package/dist/esm/workloads/stateless/broadcast/client/client.js +25 -0
  274. package/dist/esm/workloads/stateless/broadcast/client/connectionManager.d.ts +62 -0
  275. package/dist/esm/workloads/stateless/broadcast/client/connectionManager.js +164 -0
  276. package/dist/esm/workloads/stateless/broadcast/client/eventEmitter.d.ts +32 -0
  277. package/dist/esm/workloads/stateless/broadcast/client/eventEmitter.js +50 -0
  278. package/dist/esm/workloads/stateless/broadcast/client/messageBuilder.d.ts +24 -0
  279. package/dist/esm/workloads/stateless/broadcast/client/messageBuilder.js +39 -0
  280. package/dist/esm/workloads/stateless/broadcast/client/parser.d.ts +12 -0
  281. package/dist/esm/workloads/stateless/broadcast/client/parser.js +19 -0
  282. package/dist/esm/workloads/stateless/broadcast/client/provider.d.ts +4 -0
  283. package/dist/esm/workloads/stateless/broadcast/client/provider.js +8 -0
  284. package/dist/esm/workloads/stateless/broadcast/client/subscriptionManager.d.ts +34 -0
  285. package/dist/esm/workloads/stateless/broadcast/client/subscriptionManager.js +91 -0
  286. package/dist/esm/workloads/stateless/broadcast/client/types.d.ts +72 -0
  287. package/dist/esm/workloads/stateless/broadcast/client/types.js +5 -0
  288. package/dist/esm/workloads/stateless/broadcast/matcher.d.ts +13 -0
  289. package/dist/esm/workloads/stateless/broadcast/matcher.js +43 -0
  290. package/dist/esm/workloads/stateless/broadcast/router.d.ts +103 -0
  291. package/dist/esm/workloads/stateless/broadcast/router.js +93 -0
  292. package/dist/esm/workloads/stateless/broadcast/server/broadcast-server.d.ts +2 -0
  293. package/dist/esm/workloads/stateless/broadcast/server/broadcast-server.js +316 -0
  294. package/dist/esm/workloads/stateless/broadcast/types.d.ts +17 -0
  295. package/dist/esm/workloads/stateless/broadcast/types.js +1 -0
  296. package/dist/esm/workloads/stateless/cron.d.ts +49 -0
  297. package/dist/esm/workloads/stateless/cron.js +52 -0
  298. package/dist/esm/workloads/stateless/stateless-workload.d.ts +3 -0
  299. package/dist/esm/workloads/stateless/stateless-workload.js +8 -0
  300. package/dist/esm/workloads/stateless/task/backoffs.d.ts +9 -0
  301. package/dist/esm/workloads/stateless/task/backoffs.js +14 -0
  302. package/dist/esm/workloads/stateless/task/dispatcher.d.ts +3 -0
  303. package/dist/esm/workloads/stateless/task/dispatcher.js +18 -0
  304. package/dist/esm/workloads/stateless/task/local.d.ts +14 -0
  305. package/dist/esm/workloads/stateless/task/local.js +48 -0
  306. package/dist/esm/workloads/stateless/task/perform-later.d.ts +2 -0
  307. package/dist/esm/workloads/stateless/task/perform-later.js +4 -0
  308. package/dist/esm/workloads/stateless/task/perform-now.d.ts +5 -0
  309. package/dist/esm/workloads/stateless/task/perform-now.js +18 -0
  310. package/dist/esm/workloads/stateless/task/perform.d.ts +7 -0
  311. package/dist/esm/workloads/stateless/task/perform.js +8 -0
  312. package/dist/esm/workloads/stateless/task/task.d.ts +88 -0
  313. package/dist/esm/workloads/stateless/task/task.js +59 -0
  314. package/dist/esm/workloads/stateless/task/validate-data-size.d.ts +1 -0
  315. package/dist/esm/workloads/stateless/task/validate-data-size.js +7 -0
  316. package/dist/esm/workloads/workload.d.ts +14 -0
  317. package/dist/esm/workloads/workload.js +16 -0
  318. package/dist/esm/workloads.d.ts +22 -0
  319. package/dist/esm/workloads.js +13 -0
  320. package/package.json +155 -0
@@ -0,0 +1,49 @@
1
+ import { StatelessWorkload } from "../../workloads/stateless/stateless-workload.js";
2
+ export interface CronOptions {
3
+ /**
4
+ * Function with the code that will be executed.
5
+ */
6
+ run: () => Promise<void>;
7
+ /**
8
+ * Schedule in crontab format.
9
+ */
10
+ schedule: string;
11
+ }
12
+ /**
13
+ * Workload for recurring tasks.
14
+ *
15
+ * A Cron workload is initialized with a unique id and the following options:
16
+ *
17
+ * - `schedule` in [unix-cron](https://man7.org/linux/man-pages/man5/crontab.5.html)
18
+ * format to specify when it should run.
19
+ *
20
+ * - `run` function with the code that will be executed.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * import { Cron } from "@monolayer/sdk";
25
+ *
26
+ * const reports = new Cron("reports", {
27
+ * schedule: "* * * * *",
28
+ * run: async () => {
29
+ * // Do something;
30
+ * },
31
+ * });
32
+ *
33
+ * export default reports;
34
+ * ```
35
+ */
36
+ export declare class Cron extends StatelessWorkload {
37
+ /**
38
+ * Unique ID
39
+ */
40
+ id: string;
41
+ options: CronOptions;
42
+ run: () => Promise<void>;
43
+ schedule: string;
44
+ constructor(
45
+ /**
46
+ * Unique ID
47
+ */
48
+ id: string, options: CronOptions);
49
+ }
@@ -0,0 +1,55 @@
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.Cron = void 0;
7
+ const cron_parser_1 = __importDefault(require("cron-parser"));
8
+ const stateless_workload_js_1 = require("../../workloads/stateless/stateless-workload.js");
9
+ /**
10
+ * Workload for recurring tasks.
11
+ *
12
+ * A Cron workload is initialized with a unique id and the following options:
13
+ *
14
+ * - `schedule` in [unix-cron](https://man7.org/linux/man-pages/man5/crontab.5.html)
15
+ * format to specify when it should run.
16
+ *
17
+ * - `run` function with the code that will be executed.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { Cron } from "@monolayer/sdk";
22
+ *
23
+ * const reports = new Cron("reports", {
24
+ * schedule: "* * * * *",
25
+ * run: async () => {
26
+ * // Do something;
27
+ * },
28
+ * });
29
+ *
30
+ * export default reports;
31
+ * ```
32
+ */
33
+ class Cron extends stateless_workload_js_1.StatelessWorkload {
34
+ constructor(
35
+ /**
36
+ * Unique ID
37
+ */
38
+ id, options) {
39
+ super(id);
40
+ this.id = id;
41
+ this.options = options;
42
+ this.run = options.run;
43
+ this.schedule = parseSchedule(options.schedule);
44
+ }
45
+ }
46
+ exports.Cron = Cron;
47
+ function parseSchedule(schedule) {
48
+ try {
49
+ const parsed = cron_parser_1.default.parseExpression(schedule);
50
+ return parsed.stringify();
51
+ }
52
+ catch {
53
+ throw new Error(`Failed to parse schedule: ${schedule}`);
54
+ }
55
+ }
@@ -0,0 +1,3 @@
1
+ import { Workload } from "../../workloads/workload.js";
2
+ export declare class StatelessWorkload extends Workload {
3
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatelessWorkload = void 0;
4
+ const workload_js_1 = require("../../workloads/workload.js");
5
+ class StatelessWorkload extends workload_js_1.Workload {
6
+ }
7
+ exports.StatelessWorkload = StatelessWorkload;
@@ -0,0 +1,9 @@
1
+ export interface ConstantBackoff {
2
+ type: "constant";
3
+ delay: number;
4
+ }
5
+ export interface ExponentialBackoff {
6
+ type: "exponential";
7
+ delay: number;
8
+ }
9
+ export declare function computeBackoff(attemptsMade: number, backoff?: ExponentialBackoff | ConstantBackoff): number;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeBackoff = computeBackoff;
4
+ function computeBackoff(attemptsMade, backoff) {
5
+ if (backoff !== undefined) {
6
+ switch (backoff.type) {
7
+ case "constant":
8
+ return backoff.delay;
9
+ case "exponential":
10
+ if (backoff.delay < 0 || attemptsMade < 0) {
11
+ throw new Error("Retry number cannot be less that 0");
12
+ }
13
+ return Math.round(Math.pow(2, attemptsMade) * backoff.delay);
14
+ }
15
+ }
16
+ return 0;
17
+ }
@@ -0,0 +1,3 @@
1
+ import { developmentDispatch } from "../../../workloads/stateless/task/local.js";
2
+ export declare const dispatcherAdapterSymbol: unique symbol;
3
+ export declare function dispatcher(): Promise<typeof developmentDispatch>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dispatcherAdapterSymbol = void 0;
4
+ exports.dispatcher = dispatcher;
5
+ const local_js_1 = require("../../../workloads/stateless/task/local.js");
6
+ exports.dispatcherAdapterSymbol = Symbol.for("@monolayer/sdk-task-dispacher");
7
+ const TASK_DISPATCHER_SYMBOL = Symbol.for("@monolayer/sdk/task-dispatcher");
8
+ async function dispatcher() {
9
+ if (process.env.NODE_ENV === "production") {
10
+ // @ts-expect-error defined at runtime
11
+ const dispatcher = globalThis[TASK_DISPATCHER_SYMBOL];
12
+ if (dispatcher === undefined)
13
+ throw new Error(`undefined dispatcher`);
14
+ return dispatcher;
15
+ }
16
+ else {
17
+ if (process.env.NODE_ENV === "test") {
18
+ return local_js_1.testDispatch;
19
+ }
20
+ return local_js_1.developmentDispatch;
21
+ }
22
+ }
@@ -0,0 +1,14 @@
1
+ import { type ExecutionId } from "../../../workloads/stateless/task/perform-now.js";
2
+ import type { PerformOptions, Task } from "../../../workloads/stateless/task/task.js";
3
+ export declare function developmentDispatch<P>(task: Task<P>, data: P | P[], options?: PerformOptions): Promise<ExecutionId | ExecutionId[]>;
4
+ export declare function testDispatch<P>(task: Task<P>, data: P | P[], options?: PerformOptions): Promise<ExecutionId | ExecutionId[]>;
5
+ export declare const testDispatchers: Record<string, {
6
+ executionId: ExecutionId;
7
+ data: unknown;
8
+ }[]>;
9
+ export declare function dispatcherForTask<P>(task: Task<P>): DispatcherTask<P>[];
10
+ interface DispatcherTask<P> {
11
+ executionId: ExecutionId;
12
+ data: P;
13
+ }
14
+ export {};
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.testDispatchers = void 0;
4
+ exports.developmentDispatch = developmentDispatch;
5
+ exports.testDispatch = testDispatch;
6
+ exports.dispatcherForTask = dispatcherForTask;
7
+ const remember_1 = require("@epic-web/remember");
8
+ const crypto_1 = require("crypto");
9
+ const perform_now_js_1 = require("../../../workloads/stateless/task/perform-now.js");
10
+ async function developmentDispatch(task, data,
11
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
12
+ options) {
13
+ if (Array.isArray(data)) {
14
+ const executionId = [];
15
+ for (const single of data) {
16
+ await (0, perform_now_js_1.performNow)(task, single);
17
+ executionId.push((0, crypto_1.randomUUID)());
18
+ }
19
+ return executionId;
20
+ }
21
+ await (0, perform_now_js_1.performNow)(task, data);
22
+ return (0, crypto_1.randomUUID)();
23
+ }
24
+ async function testDispatch(task, data,
25
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
+ options) {
27
+ const testDispather = dispatcherForTask(task);
28
+ if (Array.isArray(data)) {
29
+ const executionIds = [];
30
+ const executionId = (0, crypto_1.randomUUID)();
31
+ for (const single of data) {
32
+ testDispather.push({
33
+ executionId,
34
+ data: single,
35
+ });
36
+ executionIds.push(executionId);
37
+ }
38
+ return executionIds;
39
+ }
40
+ const executionId = (0, crypto_1.randomUUID)();
41
+ testDispather.push({
42
+ executionId: executionId,
43
+ data: data,
44
+ });
45
+ return executionId;
46
+ }
47
+ exports.testDispatchers = (0, remember_1.remember)("TestDispatchers", () => ({}));
48
+ function dispatcherForTask(task) {
49
+ const queueKey = task.id;
50
+ if (exports.testDispatchers[queueKey] === undefined) {
51
+ exports.testDispatchers[queueKey] = [];
52
+ }
53
+ return exports.testDispatchers[queueKey];
54
+ }
@@ -0,0 +1,2 @@
1
+ import type { PerformOptions, Task } from "../../../workloads/stateless/task/task.js";
2
+ export declare function performLater<P>(task: Task<P>, data: P | P[], options?: PerformOptions): Promise<import("./perform-now").ExecutionId | import("./perform-now").ExecutionId[]>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.performLater = performLater;
4
+ const dispatcher_js_1 = require("../../../workloads/stateless/task/dispatcher.js");
5
+ async function performLater(task, data, options) {
6
+ return await (await (0, dispatcher_js_1.dispatcher)())(task, data, options);
7
+ }
@@ -0,0 +1,5 @@
1
+ import type { Task } from "../../../workloads/stateless/task/task.js";
2
+ export declare function performNow<P>(task: Task<P>, data: P | P[]): Promise<ExecutionId | ExecutionId[]>;
3
+ export type ExecutionId = string & {
4
+ _brand: "ExecutionId";
5
+ };
@@ -0,0 +1,24 @@
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.performNow = performNow;
7
+ const crypto_1 = require("crypto");
8
+ const perform_js_1 = __importDefault(require("../../../workloads/stateless/task/perform.js"));
9
+ async function performNow(task, data) {
10
+ if (!Array.isArray(data)) {
11
+ const taskId = (0, crypto_1.randomUUID)();
12
+ await (0, perform_js_1.default)({ task, taskId, data });
13
+ return taskId;
14
+ }
15
+ else {
16
+ const taskIds = [];
17
+ for (const singlePayload of data) {
18
+ const taskId = (0, crypto_1.randomUUID)();
19
+ await (0, perform_js_1.default)({ task, taskId, data: singlePayload });
20
+ taskIds.push(taskId);
21
+ }
22
+ return taskIds;
23
+ }
24
+ }
@@ -0,0 +1,7 @@
1
+ import { type Task } from "../../../workloads/stateless/task/task.js";
2
+ declare const _default: <P>({ task, taskId, data, }: {
3
+ task: Task<P>;
4
+ taskId: string;
5
+ data: P;
6
+ }) => Promise<void>;
7
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = async ({ task, taskId, data, }) => {
4
+ try {
5
+ await task.work({ taskId, data });
6
+ }
7
+ catch (error) {
8
+ task.handleError(error, data, taskId);
9
+ }
10
+ };
@@ -0,0 +1,88 @@
1
+ import type { ConstantBackoff, ExponentialBackoff } from "../../../workloads/stateless/task/backoffs.js";
2
+ import { Workload } from "../../../workloads/workload.js";
3
+ export declare class Task<P> extends Workload {
4
+ /**
5
+ * Name of the task.
6
+ */
7
+ name: string;
8
+ /**
9
+ * Function that processes a task.
10
+ */
11
+ work: (task: {
12
+ taskId: string;
13
+ data: P;
14
+ }) => Promise<void>;
15
+ options?: TaskOptions<P> | undefined;
16
+ constructor(
17
+ /**
18
+ * Name of the task.
19
+ */
20
+ name: string,
21
+ /**
22
+ * Function that processes a task.
23
+ */
24
+ work: (task: {
25
+ taskId: string;
26
+ data: P;
27
+ }) => Promise<void>, options?: TaskOptions<P> | undefined);
28
+ /**
29
+ * Performs the task immediately in the current processs.
30
+ */
31
+ performNow(data: P | P[]): Promise<void>;
32
+ /**
33
+ * Performs the task later, dispatching the task to a queue.
34
+ *
35
+ * **NOTES**
36
+ *
37
+ * In development, the task will be performed immediately.
38
+ *
39
+ * In test, the task will collected ans can be retrieved with the `performedTasks` test helper.
40
+ */
41
+ performLater(data: P | P[], options?: PerformOptions): Promise<import("../../../workloads/stateless/task/perform-now.js").ExecutionId | import("../../../workloads/stateless/task/perform-now.js").ExecutionId[]>;
42
+ handleError(error?: unknown, data?: P, executionId?: string): void;
43
+ }
44
+ export interface TaskOptions<P> {
45
+ onError?: (error: TaskError<P>) => void;
46
+ retry?: RetryOptions;
47
+ }
48
+ export declare class TaskError<P> extends Error {
49
+ cause: TaskErrorCause<P>;
50
+ constructor(message: string, cause: TaskErrorCause<P>);
51
+ }
52
+ export type TaskErrorCause<P> = {
53
+ task: string;
54
+ executionId?: string;
55
+ data?: P;
56
+ error: unknown;
57
+ };
58
+ export interface RetryOptions {
59
+ /**
60
+ * The total number of attempts to try the job until it completes.
61
+ * @defaultValue 0
62
+ */
63
+ times: number;
64
+ /**
65
+ * Backoff setting for automatic retries if the job fails.
66
+ *
67
+ * **Important**
68
+ *
69
+ * This setting does not have any effect on Tasks backed by an `SQS` queue in production.
70
+ *
71
+ * Retries will happen after the `VisibilityTimeout` of the message expires (30 seconds by default).
72
+ * See: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html#consumer-fails-to-process-message
73
+ *
74
+ * You can to implement an custom backoff strategy using a dead-letter queue to handle retries
75
+ * and a Lambda function.
76
+ *
77
+ * @defaultValue { type: "constant", delay: 0 }
78
+ */
79
+ backoff?: ExponentialBackoff | ConstantBackoff;
80
+ }
81
+ export interface PerformOptions {
82
+ /**
83
+ * Amount in milliseconds to wait until this task can be processed.
84
+ *
85
+ * @defaultValue 0
86
+ */
87
+ delay?: number;
88
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskError = exports.Task = void 0;
4
+ const case_anything_1 = require("case-anything");
5
+ const perform_later_js_1 = require("../../../workloads/stateless/task/perform-later.js");
6
+ const perform_now_js_1 = require("../../../workloads/stateless/task/perform-now.js");
7
+ const workload_js_1 = require("../../../workloads/workload.js");
8
+ class Task extends workload_js_1.Workload {
9
+ constructor(
10
+ /**
11
+ * Name of the task.
12
+ */
13
+ name,
14
+ /**
15
+ * Function that processes a task.
16
+ */
17
+ work, options) {
18
+ super((0, case_anything_1.kebabCase)(name));
19
+ this.name = name;
20
+ this.work = work;
21
+ this.options = options;
22
+ }
23
+ /**
24
+ * Performs the task immediately in the current processs.
25
+ */
26
+ async performNow(data) {
27
+ await (0, perform_now_js_1.performNow)(this, data);
28
+ }
29
+ /**
30
+ * Performs the task later, dispatching the task to a queue.
31
+ *
32
+ * **NOTES**
33
+ *
34
+ * In development, the task will be performed immediately.
35
+ *
36
+ * In test, the task will collected ans can be retrieved with the `performedTasks` test helper.
37
+ */
38
+ async performLater(data, options) {
39
+ return await (0, perform_later_js_1.performLater)(this, data, options);
40
+ }
41
+ handleError(error, data, executionId) {
42
+ if (this.options?.onError) {
43
+ this.options?.onError(new TaskError("Error while performing tasks", {
44
+ task: this.id,
45
+ executionId,
46
+ data,
47
+ error,
48
+ }));
49
+ }
50
+ else {
51
+ console.log(`An error was thrown in ${this.id} and the onError callback function is undefined.`);
52
+ }
53
+ }
54
+ }
55
+ exports.Task = Task;
56
+ class TaskError extends Error {
57
+ constructor(message, cause) {
58
+ super(message, { cause });
59
+ }
60
+ }
61
+ exports.TaskError = TaskError;
@@ -0,0 +1 @@
1
+ export declare function validateJsonStringified<P>(data: P, max?: number): void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateJsonStringified = validateJsonStringified;
4
+ function validateJsonStringified(data, max = 256000) {
5
+ const dataString = JSON.stringify(typeof data === "undefined" ? {} : data);
6
+ const byteLength = Buffer.byteLength(dataString, "utf8");
7
+ if (byteLength > max) {
8
+ throw new Error(`Data size exceeds the limit (${max} bytes)`);
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @group Abstract Classes
3
+ */
4
+ export declare abstract class Workload {
5
+ /**
6
+ * Unique ID
7
+ */
8
+ readonly id: string;
9
+ constructor(
10
+ /**
11
+ * Unique ID.
12
+ */
13
+ id: string);
14
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Workload = void 0;
4
+ /**
5
+ * @group Abstract Classes
6
+ */
7
+ class Workload {
8
+ constructor(
9
+ /**
10
+ * Unique ID.
11
+ */
12
+ id) {
13
+ this.id = id;
14
+ }
15
+ }
16
+ exports.Workload = Workload;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module main
3
+ */
4
+ export { ContainerConfig, type Configuration, } from "./configuration.js";
5
+ export { AfterRollout } from "./workloads/app-lifecycle/after-rollout.js";
6
+ export { BeforeRollout } from "./workloads/app-lifecycle/before-rollout.js";
7
+ export { Bootstrap } from "./workloads/app-lifecycle/bootstrap.js";
8
+ export { type LifecycleWorkload } from "./workloads/app-lifecycle/lifecycle-workload.js";
9
+ export { Bucket, BucketOptions, bucketLocalConfiguration, type AccessGrant, type PublicAccess, } from "./workloads/stateful/bucket.js";
10
+ export type { Database } from "./workloads/stateful/database.js";
11
+ export { PostgresDatabase } from "./workloads/stateful/postgres-database.js";
12
+ export { Redis } from "./workloads/stateful/redis.js";
13
+ export type { StatefulWorkload, StatefulWorkloadWithClient, } from "./workloads/stateful/stateful-workload.js";
14
+ export { ChannelData } from "./workloads/stateless/broadcast/channel-data.js";
15
+ export { broadcastClient } from "./workloads/stateless/broadcast/client/client.js";
16
+ export { Broadcast } from "./workloads/stateless/broadcast/router.js";
17
+ export type { StatelessWorkload } from "./workloads/stateless/stateless-workload.js";
18
+ export { Task, type RetryOptions, type TaskOptions, } from "./workloads/stateless/task/task.js";
19
+ export type { Workload } from "./workloads/workload.js";
20
+ export { Cron, type CronOptions } from "./workloads/stateless/cron.js";
21
+ export { BroadcastPublisher } from "./workloads/stateless/broadcast/client/app-sync-publisher.js";
22
+ export { Broadcast as BroadcastProvider } from "./workloads/stateless/broadcast/client/provider.js";
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BroadcastProvider = exports.BroadcastPublisher = exports.Cron = exports.Task = exports.Broadcast = exports.broadcastClient = exports.ChannelData = exports.Redis = exports.PostgresDatabase = exports.bucketLocalConfiguration = exports.Bucket = exports.Bootstrap = exports.BeforeRollout = exports.AfterRollout = void 0;
4
+ var after_rollout_js_1 = require("./workloads/app-lifecycle/after-rollout.js");
5
+ Object.defineProperty(exports, "AfterRollout", { enumerable: true, get: function () { return after_rollout_js_1.AfterRollout; } });
6
+ var before_rollout_js_1 = require("./workloads/app-lifecycle/before-rollout.js");
7
+ Object.defineProperty(exports, "BeforeRollout", { enumerable: true, get: function () { return before_rollout_js_1.BeforeRollout; } });
8
+ var bootstrap_js_1 = require("./workloads/app-lifecycle/bootstrap.js");
9
+ Object.defineProperty(exports, "Bootstrap", { enumerable: true, get: function () { return bootstrap_js_1.Bootstrap; } });
10
+ var bucket_js_1 = require("./workloads/stateful/bucket.js");
11
+ Object.defineProperty(exports, "Bucket", { enumerable: true, get: function () { return bucket_js_1.Bucket; } });
12
+ Object.defineProperty(exports, "bucketLocalConfiguration", { enumerable: true, get: function () { return bucket_js_1.bucketLocalConfiguration; } });
13
+ var postgres_database_js_1 = require("./workloads/stateful/postgres-database.js");
14
+ Object.defineProperty(exports, "PostgresDatabase", { enumerable: true, get: function () { return postgres_database_js_1.PostgresDatabase; } });
15
+ var redis_js_1 = require("./workloads/stateful/redis.js");
16
+ Object.defineProperty(exports, "Redis", { enumerable: true, get: function () { return redis_js_1.Redis; } });
17
+ var channel_data_js_1 = require("./workloads/stateless/broadcast/channel-data.js");
18
+ Object.defineProperty(exports, "ChannelData", { enumerable: true, get: function () { return channel_data_js_1.ChannelData; } });
19
+ var client_js_1 = require("./workloads/stateless/broadcast/client/client.js");
20
+ Object.defineProperty(exports, "broadcastClient", { enumerable: true, get: function () { return client_js_1.broadcastClient; } });
21
+ var router_js_1 = require("./workloads/stateless/broadcast/router.js");
22
+ Object.defineProperty(exports, "Broadcast", { enumerable: true, get: function () { return router_js_1.Broadcast; } });
23
+ var task_js_1 = require("./workloads/stateless/task/task.js");
24
+ Object.defineProperty(exports, "Task", { enumerable: true, get: function () { return task_js_1.Task; } });
25
+ var cron_js_1 = require("./workloads/stateless/cron.js");
26
+ Object.defineProperty(exports, "Cron", { enumerable: true, get: function () { return cron_js_1.Cron; } });
27
+ var app_sync_publisher_js_1 = require("./workloads/stateless/broadcast/client/app-sync-publisher.js");
28
+ Object.defineProperty(exports, "BroadcastPublisher", { enumerable: true, get: function () { return app_sync_publisher_js_1.BroadcastPublisher; } });
29
+ var provider_js_1 = require("./workloads/stateless/broadcast/client/provider.js");
30
+ Object.defineProperty(exports, "BroadcastProvider", { enumerable: true, get: function () { return provider_js_1.Broadcast; } });
@@ -0,0 +1,65 @@
1
+ export interface Configuration {
2
+ /**
3
+ * Path to a folder with workloads.
4
+ *
5
+ */
6
+ workloadsPath: string;
7
+ /**
8
+ * Container configurations.
9
+ */
10
+ containers?: {
11
+ /**
12
+ * @default { imageName: "postgres:16.5-alpine3.20", exposedPorts: [ { container: 5432, host: 5432 } ] }
13
+ */
14
+ postgresDatabase?: ContainerConfig;
15
+ /**
16
+ * @default
17
+ * { imageName: "redis:7.4.1-alpine3.20", exposedPorts: [ { container: 6379, host: 6379 } ] }
18
+ */
19
+ redis?: ContainerConfig;
20
+ /**
21
+ * @default
22
+ * { imageName: "mysql:8.4.3", exposedPorts: [ { container: 3306, host: 3306 } ] }
23
+ */
24
+ mySqlDatabase?: ContainerConfig;
25
+ /**
26
+ * @default
27
+ * { imageName: "localstack/localstack:3.8.1", exposedPorts: [ { container: 4566, host: 4566 } ] }
28
+ */
29
+ minio?: ContainerConfig;
30
+ };
31
+ /**
32
+ * Names of the dotenv files to write the workloads' connection strings.
33
+ */
34
+ envFileName?: {
35
+ /**
36
+ * File name for development.
37
+ *
38
+ * @default
39
+ * .env.local
40
+ */
41
+ development?: string;
42
+ /**
43
+ * File name for test.
44
+ *
45
+ * @default
46
+ * .env.test.local
47
+ */
48
+ test?: string;
49
+ };
50
+ }
51
+ export interface ContainerConfig {
52
+ /**
53
+ * Docker image name.
54
+ */
55
+ imageName?: string;
56
+ /**
57
+ * Host port to publish the exposed container port.
58
+ */
59
+ exposedPorts?: {
60
+ container: number;
61
+ host: number;
62
+ }[];
63
+ }
64
+ export declare const workloadsConfiguration: () => Promise<Configuration>;
65
+ export declare const packageName: any;
@@ -0,0 +1,15 @@
1
+ import { remember } from "@epic-web/remember";
2
+ import { readFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import { cwd } from "node:process";
5
+ async function importConfig() {
6
+ const imported = await import(path.join(cwd(), "monolayer.config.ts"));
7
+ return imported.default && imported.default.default
8
+ ? imported.default.default
9
+ : imported.default;
10
+ }
11
+ export const workloadsConfiguration = () => remember("workloadsConfiguration", async () => await importConfig());
12
+ export const packageName = remember("packageName", () => {
13
+ const packageJSON = JSON.parse(readFileSync("package.json").toString());
14
+ return packageJSON.name;
15
+ });
@@ -0,0 +1,4 @@
1
+ export * from "./configuration.js";
2
+ export * from "./introspection.js";
3
+ export * from "./test-helpers.js";
4
+ export * from "./workloads.js";
@@ -0,0 +1,4 @@
1
+ export * from "./configuration.js";
2
+ export * from "./introspection.js";
3
+ export * from "./test-helpers.js";
4
+ export * from "./workloads.js";