@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,39 @@
1
+ import { Project } from "ts-morph";
2
+ /**
3
+ * Adds a named import to a TypeScript file.
4
+ *
5
+ * @param filePath The path to the file to modify.
6
+ * @param moduleSpecifier The module to import from (e.g., "react").
7
+ * @param namedImport The named import to add (e.g., "useState").
8
+ */
9
+ export async function addImport(filePath, moduleSpecifier, namedImport) {
10
+ const project = new Project();
11
+ const sourceFile = project.addSourceFileAtPath(filePath);
12
+ // This is a simple way to add an import.
13
+ // ts-morph is smart about merging with existing imports from the same module.
14
+ sourceFile.addImportDeclaration({
15
+ moduleSpecifier,
16
+ namedImports: [namedImport],
17
+ });
18
+ // Save the changes back to the file system.
19
+ await sourceFile.save();
20
+ }
21
+ /**
22
+ * Adds a named import to a TypeScript file.
23
+ *
24
+ * @param filePath The path to the file to modify.
25
+ * @param moduleSpecifier The module to import from (e.g., "react").
26
+ * @param defaultImport The default import to add.
27
+ */
28
+ export async function addDefaultImport(filePath, moduleSpecifier, defaultImport) {
29
+ const project = new Project();
30
+ const sourceFile = project.addSourceFileAtPath(filePath);
31
+ // This is a simple way to add an import.
32
+ // ts-morph is smart about merging with existing imports from the same module.
33
+ sourceFile.addImportDeclaration({
34
+ moduleSpecifier,
35
+ defaultImport,
36
+ });
37
+ // Save the changes back to the file system.
38
+ await sourceFile.save();
39
+ }
@@ -0,0 +1 @@
1
+ export declare function addScriptToPackageJson(name: string, scriptValue: string): Promise<void>;
@@ -0,0 +1,29 @@
1
+ import { readFileSync, writeFileSync } from "fs";
2
+ import ora from "ora";
3
+ import path from "path";
4
+ import { cwd } from "process";
5
+ import prompts from "prompts";
6
+ export async function addScriptToPackageJson(name, scriptValue) {
7
+ const packageJsonPath = path.join(cwd(), "package.json");
8
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
9
+ if (packageJson.scripts && packageJson.scripts[name]) {
10
+ const response = await prompts({
11
+ type: "confirm",
12
+ name: "overwrite",
13
+ message: `Script "${name}" already exists. Overwrite?`,
14
+ initial: false,
15
+ });
16
+ if (!response.overwrite) {
17
+ console.log(`Script "${name}" not overwritten.`);
18
+ return;
19
+ }
20
+ }
21
+ packageJson.scripts = {
22
+ ...(packageJson.scripts || {}),
23
+ [name]: scriptValue,
24
+ };
25
+ const spinner = ora();
26
+ spinner.start(`Add script ${name}`);
27
+ writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
28
+ spinner.succeed();
29
+ }
@@ -0,0 +1 @@
1
+ export declare function addBroadcastWorkload(): void;
@@ -0,0 +1,30 @@
1
+ import ora from "ora";
2
+ import { writeWorkload } from "./workload.js";
3
+ export function addBroadcastWorkload() {
4
+ const template = broadcastWorkload();
5
+ const spinner = ora();
6
+ spinner.start(`Create broadcast workload in ./workloads/broadcast.ts`);
7
+ writeWorkload("broadcast", template);
8
+ spinner.succeed();
9
+ }
10
+ function broadcastWorkload() {
11
+ return `import { Broadcast, ChannelData } from "@monolayer/sdk";
12
+
13
+ export type SampleChannelData = { message: string };
14
+ export type RoomChannelData = { message: string };
15
+
16
+ const broadcast = new Broadcast({
17
+ channels: {
18
+ "sample": {
19
+ data: new ChannelData<SampleChannelData>(),
20
+ },
21
+ "/room/:id": {
22
+ data: new ChannelData<RoomChannelData>(),
23
+ },
24
+ },
25
+ });
26
+
27
+ export default broadcast;
28
+ export type Channels = typeof broadcast._channelDataType;
29
+ `;
30
+ }
@@ -0,0 +1,6 @@
1
+ type Bucket = {
2
+ id: string;
3
+ name: string;
4
+ };
5
+ export declare function addBucketWorkload(bucket: Bucket): void;
6
+ export {};
@@ -0,0 +1,17 @@
1
+ import ora from "ora";
2
+ import { writeWorkload } from "./workload.js";
3
+ export function addBucketWorkload(bucket) {
4
+ const template = bucketWorkload(bucket);
5
+ const spinner = ora();
6
+ spinner.start(`Create bucket workload in ./workloads/${bucket.id}.ts`);
7
+ writeWorkload(bucket.id, template);
8
+ spinner.succeed();
9
+ }
10
+ function bucketWorkload(bucket) {
11
+ return `import { Bucket } from "@monolayer/sdk";
12
+
13
+ const ${bucket.name} = new Bucket("${bucket.id}");
14
+
15
+ export default ${bucket.name};
16
+ `;
17
+ }
@@ -0,0 +1,6 @@
1
+ type Cron = {
2
+ id: string;
3
+ name: string;
4
+ };
5
+ export declare function addCronWorkload(cron: Cron): void;
6
+ export {};
@@ -0,0 +1,22 @@
1
+ import ora from "ora";
2
+ import { writeWorkload } from "./workload.js";
3
+ export function addCronWorkload(cron) {
4
+ const template = cronWorkload(cron);
5
+ const spinner = ora();
6
+ spinner.start(`Create cron workload in ./workloads/${cron.id}.ts`);
7
+ writeWorkload(cron.id, template);
8
+ spinner.succeed();
9
+ }
10
+ function cronWorkload(task) {
11
+ return `import { Cron } from "@monolayer/sdk";
12
+
13
+ const ${task.name} = new Cron("${task.id}", {
14
+ schedule: "* * * * *",
15
+ run: async () => {
16
+ console.log("Hello, world!");
17
+ },
18
+ });
19
+
20
+ export default ${task.name};
21
+ `;
22
+ }
@@ -0,0 +1,4 @@
1
+ export declare function addDrizzlePostgres(opts: {
2
+ id: string;
3
+ name: string;
4
+ }): Promise<void>;
@@ -0,0 +1,19 @@
1
+ import { execSync } from "child_process";
2
+ import { PostgresDatabase } from "../workloads.js";
3
+ import { addEnvVar } from "./add-env-var.js";
4
+ import { addScriptToPackageJson } from "./add-script.js";
5
+ import { addDefaultImports, addPostgresWorkload, } from "./postgres-database-workload.js";
6
+ const registryJSON = "https://registry.monolayer.dev/r/drizzle-pg.json";
7
+ export async function addDrizzlePostgres(opts) {
8
+ execSync(`npx shadcn@latest add ${registryJSON}`, { stdio: "inherit" });
9
+ addPostgresWorkload(opts);
10
+ await addDefaultImports(opts, {
11
+ rootConfigFile: "drizzle.config.ts",
12
+ clientFile: "lib/drizzle/drizzle.ts",
13
+ });
14
+ await addEnvVar(new PostgresDatabase(opts.id).connectionStringEnvVar, `postgresql://postgres:postgres@localhost:5432/${opts.id}`);
15
+ await addScriptToPackageJson("db:generate", "drizzle-kit generate");
16
+ await addScriptToPackageJson("db:migrate", "npx tsx lib/drizzle/migrate.ts");
17
+ await addScriptToPackageJson("db:seed", "npx tsx lib/drizzle/seed.ts");
18
+ await addScriptToPackageJson("db:studio", "drizzle-kit studio");
19
+ }
@@ -0,0 +1,9 @@
1
+ type Lifecycle = {
2
+ id: string;
3
+ name: string;
4
+ scriptName: string;
5
+ };
6
+ export declare function addBeforeRolloutWorkload(lifecycle: Lifecycle): void;
7
+ export declare function addAfterRolloutWorkload(lifecycle: Lifecycle): void;
8
+ export declare function addBootstrapWorkload(lifecycle: Lifecycle): void;
9
+ export {};
@@ -0,0 +1,53 @@
1
+ import ora from "ora";
2
+ import { writeWorkload } from "./workload.js";
3
+ export function addBeforeRolloutWorkload(lifecycle) {
4
+ const template = beforeRolloutWorkload(lifecycle);
5
+ const spinner = ora();
6
+ spinner.start(`Create before rollout workload in ./workloads/${lifecycle.id}.ts`);
7
+ writeWorkload(`before-rollout-${lifecycle.id}`, template);
8
+ spinner.succeed();
9
+ }
10
+ function beforeRolloutWorkload(lifecycle) {
11
+ return `import { BeforeRollout } from "@monolayer/sdk";
12
+
13
+ const ${lifecycle.name} = new BeforeRollout("${lifecycle.id}", {
14
+ script: "${lifecycle.scriptName}",
15
+ });
16
+
17
+ export default ${lifecycle.name};
18
+ `;
19
+ }
20
+ export function addAfterRolloutWorkload(lifecycle) {
21
+ const template = afterRolloutWorkload(lifecycle);
22
+ const spinner = ora();
23
+ spinner.start(`Create after rollout workload in ./workloads/${lifecycle.id}.ts`);
24
+ writeWorkload(`after-rollout-${lifecycle.id}`, template);
25
+ spinner.succeed();
26
+ }
27
+ function afterRolloutWorkload(lifecycle) {
28
+ return `import { AfterRollout } from "@monolayer/sdk";
29
+
30
+ const ${lifecycle.name} = new AfterRollout("${lifecycle.id}", {
31
+ script: "${lifecycle.scriptName}",
32
+ });
33
+
34
+ export default ${lifecycle.name};
35
+ `;
36
+ }
37
+ export function addBootstrapWorkload(lifecycle) {
38
+ const template = boostrapWorkload(lifecycle);
39
+ const spinner = ora();
40
+ spinner.start(`Create before rollout workload in ./workloads/${lifecycle.id}.ts`);
41
+ writeWorkload(`bootstrap-${lifecycle.id}`, template);
42
+ spinner.succeed();
43
+ }
44
+ function boostrapWorkload(lifecycle) {
45
+ return `import { Bootstrap } from "@monolayer/sdk";
46
+
47
+ const ${lifecycle.name} = new Bootstrap("${lifecycle.id}", {
48
+ script: "${lifecycle.scriptName}",
49
+ });
50
+
51
+ export default ${lifecycle.name};
52
+ `;
53
+ }
@@ -0,0 +1,15 @@
1
+ export declare function postgresDatabaseWorkload(opts: {
2
+ id: string;
3
+ name: string;
4
+ }): string;
5
+ export declare function addPostgresWorkload(opts: {
6
+ name: string;
7
+ id: string;
8
+ }): void;
9
+ export declare function addDefaultImports(opts: {
10
+ id: string;
11
+ name: string;
12
+ }, files: {
13
+ rootConfigFile: string;
14
+ clientFile: string;
15
+ }): Promise<void>;
@@ -0,0 +1,31 @@
1
+ import ora from "ora";
2
+ import { addDefaultImport } from "./add-import.js";
3
+ import { replaceStringWithIdendentifier } from "./replace-string.js";
4
+ import { writeWorkload } from "./workload.js";
5
+ export function postgresDatabaseWorkload(opts) {
6
+ return `import { PostgresDatabase } from "@monolayer/sdk";
7
+
8
+ const ${opts.name} = new PostgresDatabase("${opts.id}");
9
+
10
+ export default ${opts.name};
11
+ `;
12
+ }
13
+ export function addPostgresWorkload(opts) {
14
+ const template = postgresDatabaseWorkload(opts);
15
+ const spinner = ora();
16
+ spinner.start(`Create postgres workload in ./workloads/${opts.id}.ts`);
17
+ writeWorkload(opts.id, template);
18
+ spinner.succeed();
19
+ }
20
+ export async function addDefaultImports(opts, files) {
21
+ const spinner = ora();
22
+ spinner.start("Adapt configuration");
23
+ await addDefaultImport(files.rootConfigFile, `./workloads/${opts.id}`, "database");
24
+ await addDefaultImport(files.clientFile, `@/workloads/${opts.id}`, "database");
25
+ replaceStringWithIdendentifier({
26
+ from: "DATABASE_URL",
27
+ to: "database.connectionStringEnvVar",
28
+ files: [files.rootConfigFile, files.clientFile],
29
+ });
30
+ spinner.succeed();
31
+ }
@@ -0,0 +1,4 @@
1
+ export declare function addPrismaPosgres(opts: {
2
+ id: string;
3
+ name: string;
4
+ }): Promise<void>;
@@ -0,0 +1,34 @@
1
+ import { execSync } from "child_process";
2
+ import ora from "ora";
3
+ import { exit } from "process";
4
+ import { PostgresDatabase } from "../workloads.js";
5
+ import { addEnvVar } from "./add-env-var.js";
6
+ import { addScriptToPackageJson } from "./add-script.js";
7
+ import { addDefaultImports, addPostgresWorkload, } from "./postgres-database-workload.js";
8
+ const registryJSON = "https://registry.monolayer.dev/r/prisma-pg.json";
9
+ export async function addPrismaPosgres(opts) {
10
+ execSync(`npx shadcn@latest add ${registryJSON}`, { stdio: "inherit" });
11
+ addPostgresWorkload(opts);
12
+ await addDefaultImports(opts, {
13
+ rootConfigFile: "prisma.config.ts",
14
+ clientFile: "lib/prisma/prisma.ts",
15
+ });
16
+ await addEnvVar(new PostgresDatabase(opts.id).connectionStringEnvVar, `postgresql://postgres:postgres@localhost:5432/${opts.id}`);
17
+ const spinner = ora();
18
+ await addScriptToPackageJson("db:migrate", "npx prisma migrate dev");
19
+ await addScriptToPackageJson("db:deploy", "npx prisma migrate deploy");
20
+ await addScriptToPackageJson("db:seed", "npx prisma db seed");
21
+ await addScriptToPackageJson("db:studio", "npx prisma studio");
22
+ spinner.start("Generate prisma client");
23
+ await new Promise((resolve) => setTimeout(() => resolve(), 1000));
24
+ try {
25
+ execSync("npx prisma generate", { stdio: "ignore" });
26
+ spinner.succeed();
27
+ }
28
+ catch (e) {
29
+ spinner.fail("Failed to generate prisma client");
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ console.error(e);
32
+ exit(1);
33
+ }
34
+ }
@@ -0,0 +1,10 @@
1
+ export declare function replaceString(opts: {
2
+ from: string;
3
+ to: string;
4
+ files: string[];
5
+ }): void;
6
+ export declare function replaceStringWithIdendentifier(opts: {
7
+ from: string;
8
+ to: string;
9
+ files: string[];
10
+ }): void;
@@ -0,0 +1,30 @@
1
+ import { readFileSync, writeFileSync } from "fs";
2
+ import path from "path";
3
+ export function replaceString(opts) {
4
+ for (const file of opts.files) {
5
+ const filePath = path.join(process.cwd(), file);
6
+ try {
7
+ const content = readFileSync(filePath, "utf-8");
8
+ const newContent = content.replace(new RegExp(opts.from, "g"), opts.to);
9
+ writeFileSync(filePath, newContent);
10
+ }
11
+ catch (e) {
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ console.error(e.message);
14
+ }
15
+ }
16
+ }
17
+ export function replaceStringWithIdendentifier(opts) {
18
+ for (const file of opts.files) {
19
+ const filePath = path.join(process.cwd(), file);
20
+ try {
21
+ const content = readFileSync(filePath, "utf-8");
22
+ const newContent = content.replace(new RegExp(`"${opts.from}"`, "g"), opts.to);
23
+ writeFileSync(filePath, newContent);
24
+ }
25
+ catch (e) {
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ console.error(e.message);
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,6 @@
1
+ type Task = {
2
+ id: string;
3
+ name: string;
4
+ };
5
+ export declare function addTaskWorkload(task: Task): void;
6
+ export {};
@@ -0,0 +1,24 @@
1
+ import { pascalCase } from "case-anything";
2
+ import ora from "ora";
3
+ import { writeWorkload } from "./workload.js";
4
+ export function addTaskWorkload(task) {
5
+ const template = taskWorkload(task);
6
+ const spinner = ora();
7
+ spinner.start(`Create task workload in ./workloads/${task.id}.ts`);
8
+ writeWorkload(task.id, template);
9
+ spinner.succeed();
10
+ }
11
+ function taskWorkload(task) {
12
+ return `import { Task } from "@monolayer/sdk";
13
+
14
+ export type ${pascalCase(task.name)}Data = {
15
+ message: string;
16
+ }
17
+
18
+ const ${task.name} = new Task<${pascalCase(task.name)}Data>("${task.id}", async ({ data }) => {
19
+ console.log("message", data.message);
20
+ });
21
+
22
+ export default ${task.name};
23
+ `;
24
+ }
@@ -0,0 +1 @@
1
+ export declare function writeWorkload(name: string, content: string): void;
@@ -0,0 +1,12 @@
1
+ import { existsSync, mkdirSync, writeFileSync } from "fs";
2
+ import path from "path";
3
+ export function writeWorkload(name, content) {
4
+ createWorkloadsDir();
5
+ writeFileSync(path.join("workloads", `${name}.ts`), content);
6
+ }
7
+ function createWorkloadsDir() {
8
+ const dir = path.join("workloads");
9
+ if (existsSync(dir))
10
+ return;
11
+ mkdirSync(dir);
12
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Returns true if the project is dependant on a package.
3
+ */
4
+ export declare function projectDependency(packageName: string, projectRoot?: string): boolean;
5
+ /**
6
+ * Returns all project dependencies
7
+ */
8
+ export declare function projectDependencies(projectRoot?: string): string[];
9
+ /**
10
+ * Returns the project name (from package.json)
11
+ */
12
+ export declare function projectName(projectRoot?: string): string | undefined;
13
+ /**
14
+ * Returns the slug (unique identifier) of the framework
15
+ * used in the current project.
16
+ *
17
+ * Frameworks are defected wirth the package: `@vercel/fs-detectors`
18
+ */
19
+ export declare function projectFramework(projectRoot?: string): Promise<string | undefined>;
20
+ /**
21
+ * Returns the installed version of a package or `undefined` if the package is not installed.
22
+ */
23
+ export declare function packageVersion(packageName: string, projectRoot?: string): Promise<string | undefined>;
@@ -0,0 +1,69 @@
1
+ import { frameworkList } from "@vercel/frameworks";
2
+ import { detectFrameworks, LocalFileSystemDetector, } from "@vercel/fs-detectors";
3
+ import { readFileSync } from "fs";
4
+ import { spawn } from "node:child_process";
5
+ import path from "node:path";
6
+ import { cwd } from "node:process";
7
+ /**
8
+ * Returns true if the project is dependant on a package.
9
+ */
10
+ export function projectDependency(packageName, projectRoot) {
11
+ return projectDependencies(projectRoot).some((dep) => dep === packageName);
12
+ }
13
+ /**
14
+ * Returns all project dependencies
15
+ */
16
+ export function projectDependencies(projectRoot) {
17
+ const packageJson = parsePackageJson(projectRoot);
18
+ return Object.keys(packageJson.dependencies ?? {});
19
+ }
20
+ /**
21
+ * Returns the project name (from package.json)
22
+ */
23
+ export function projectName(projectRoot) {
24
+ const packageJson = parsePackageJson(projectRoot);
25
+ if (packageJson.name) {
26
+ return packageJson.name;
27
+ }
28
+ }
29
+ /**
30
+ * Returns the slug (unique identifier) of the framework
31
+ * used in the current project.
32
+ *
33
+ * Frameworks are defected wirth the package: `@vercel/fs-detectors`
34
+ */
35
+ export async function projectFramework(projectRoot) {
36
+ const result = await detectFrameworks({
37
+ fs: new LocalFileSystemDetector(projectRoot ?? cwd()),
38
+ frameworkList,
39
+ });
40
+ return result[0]?.slug ?? undefined;
41
+ }
42
+ function parsePackageJson(projectRoot) {
43
+ return JSON.parse(readFileSync(path.join(projectRoot ?? cwd(), "package.json")).toString());
44
+ }
45
+ /**
46
+ * Returns the installed version of a package or `undefined` if the package is not installed.
47
+ */
48
+ export async function packageVersion(packageName, projectRoot) {
49
+ const list = await npmList(projectRoot);
50
+ return (list.dependencies ?? {})[packageName]?.version;
51
+ }
52
+ async function npmList(projectRoot) {
53
+ return new Promise((resolve, reject) => {
54
+ const lines = [];
55
+ const list = spawn("npm", ["list", "--json"], projectRoot
56
+ ? {
57
+ cwd: projectRoot,
58
+ }
59
+ : undefined);
60
+ list.stdout.on("data", (chunks) => lines.push(chunks.toString()));
61
+ list.stderr.on("data", (chunks) => reject(chunks.toString()));
62
+ list.on("close", (code) => {
63
+ if (code !== 0) {
64
+ throw new Error(`npm list command finished with code ${code}`);
65
+ }
66
+ resolve(JSON.parse(lines.join()));
67
+ });
68
+ });
69
+ }
@@ -0,0 +1,21 @@
1
+ import { type Bucket, type Cron, type PostgresDatabase, type Redis, type Task } from "../workloads.js";
2
+ import type { StatefulWorkloadWithClient } from "../workloads/stateful/stateful-workload.js";
3
+ import type { AnyBroadcast } from "../workloads/stateless/broadcast/router.js";
4
+ export declare function importWorkloads(): Promise<WorkloadImports>;
5
+ export interface WorkloadImport<I> {
6
+ src: string;
7
+ workload: I;
8
+ }
9
+ export declare class WorkloadImports {
10
+ #private;
11
+ constructor();
12
+ get workloadsWithContainers(): (PostgresDatabase | Redis | Bucket | AnyBroadcast)[];
13
+ get Redis(): WorkloadImport<Redis>[];
14
+ get PostgresDatabase(): WorkloadImport<PostgresDatabase>[];
15
+ get Bucket(): WorkloadImport<Bucket>[];
16
+ get Cron(): WorkloadImport<Cron>[];
17
+ get Task(): WorkloadImport<Task<unknown>>[];
18
+ get Broadcast(): WorkloadImport<AnyBroadcast>[];
19
+ addBroadcast(src: string, workload: any): void;
20
+ add(src: string, workload: StatefulWorkloadWithClient): void;
21
+ }