@justscale/core 0.1.0

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 (784) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +261 -0
  3. package/bin/just.js +34 -0
  4. package/dist/app.d.ts +56 -0
  5. package/dist/app.d.ts.map +1 -0
  6. package/dist/app.js +182 -0
  7. package/dist/app.js.map +1 -0
  8. package/dist/builder/build-context.d.ts +8 -0
  9. package/dist/builder/build-context.d.ts.map +1 -0
  10. package/dist/builder/build-context.js +4 -0
  11. package/dist/builder/build-context.js.map +1 -0
  12. package/dist/builder/builder.d.ts +60 -0
  13. package/dist/builder/builder.d.ts.map +1 -0
  14. package/dist/builder/builder.js +72 -0
  15. package/dist/builder/builder.js.map +1 -0
  16. package/dist/builder/create-builder.d.ts +36 -0
  17. package/dist/builder/create-builder.d.ts.map +1 -0
  18. package/dist/builder/create-builder.js +66 -0
  19. package/dist/builder/create-builder.js.map +1 -0
  20. package/dist/builder/execute.d.ts +37 -0
  21. package/dist/builder/execute.d.ts.map +1 -0
  22. package/dist/builder/execute.js +62 -0
  23. package/dist/builder/execute.js.map +1 -0
  24. package/dist/builder/feature-builder.d.ts +147 -0
  25. package/dist/builder/feature-builder.d.ts.map +1 -0
  26. package/dist/builder/feature-builder.js +138 -0
  27. package/dist/builder/feature-builder.js.map +1 -0
  28. package/dist/builder/index.d.ts +35 -0
  29. package/dist/builder/index.d.ts.map +1 -0
  30. package/dist/builder/index.js +37 -0
  31. package/dist/builder/index.js.map +1 -0
  32. package/dist/builder/plugin.d.ts +90 -0
  33. package/dist/builder/plugin.d.ts.map +1 -0
  34. package/dist/builder/plugin.js +101 -0
  35. package/dist/builder/plugin.js.map +1 -0
  36. package/dist/builder/plugins/query.d.ts +31 -0
  37. package/dist/builder/plugins/query.d.ts.map +1 -0
  38. package/dist/builder/plugins/query.js +42 -0
  39. package/dist/builder/plugins/query.js.map +1 -0
  40. package/dist/builder/plugins/validation.d.ts +12 -0
  41. package/dist/builder/plugins/validation.d.ts.map +1 -0
  42. package/dist/builder/plugins/validation.js +12 -0
  43. package/dist/builder/plugins/validation.js.map +1 -0
  44. package/dist/builder/sort.d.ts +27 -0
  45. package/dist/builder/sort.d.ts.map +1 -0
  46. package/dist/builder/sort.js +210 -0
  47. package/dist/builder/sort.js.map +1 -0
  48. package/dist/builder/stop.d.ts +24 -0
  49. package/dist/builder/stop.d.ts.map +1 -0
  50. package/dist/builder/stop.js +27 -0
  51. package/dist/builder/stop.js.map +1 -0
  52. package/dist/builder/test/permits-type-spike.d.ts +8 -0
  53. package/dist/builder/test/permits-type-spike.d.ts.map +1 -0
  54. package/dist/builder/test/permits-type-spike.js +117 -0
  55. package/dist/builder/test/permits-type-spike.js.map +1 -0
  56. package/dist/builder/types.d.ts +678 -0
  57. package/dist/builder/types.d.ts.map +1 -0
  58. package/dist/builder/types.js +98 -0
  59. package/dist/builder/types.js.map +1 -0
  60. package/dist/builder/validation.d.ts +101 -0
  61. package/dist/builder/validation.d.ts.map +1 -0
  62. package/dist/builder/validation.js +335 -0
  63. package/dist/builder/validation.js.map +1 -0
  64. package/dist/cli/adapter.d.ts +23 -0
  65. package/dist/cli/adapter.d.ts.map +1 -0
  66. package/dist/cli/adapter.js +26 -0
  67. package/dist/cli/adapter.js.map +1 -0
  68. package/dist/cli/args.d.ts +150 -0
  69. package/dist/cli/args.d.ts.map +1 -0
  70. package/dist/cli/args.js +172 -0
  71. package/dist/cli/args.js.map +1 -0
  72. package/dist/cli/assemble.d.ts +20 -0
  73. package/dist/cli/assemble.d.ts.map +1 -0
  74. package/dist/cli/assemble.js +55 -0
  75. package/dist/cli/assemble.js.map +1 -0
  76. package/dist/cli/bin/main.d.ts +26 -0
  77. package/dist/cli/bin/main.d.ts.map +1 -0
  78. package/dist/cli/bin/main.js +475 -0
  79. package/dist/cli/bin/main.js.map +1 -0
  80. package/dist/cli/build/migrations-plugin.d.ts +21 -0
  81. package/dist/cli/build/migrations-plugin.d.ts.map +1 -0
  82. package/dist/cli/build/migrations-plugin.js +41 -0
  83. package/dist/cli/build/migrations-plugin.js.map +1 -0
  84. package/dist/cli/build/process-plugin.d.ts +29 -0
  85. package/dist/cli/build/process-plugin.d.ts.map +1 -0
  86. package/dist/cli/build/process-plugin.js +66 -0
  87. package/dist/cli/build/process-plugin.js.map +1 -0
  88. package/dist/cli/builder/create-cli-builder.d.ts +42 -0
  89. package/dist/cli/builder/create-cli-builder.d.ts.map +1 -0
  90. package/dist/cli/builder/create-cli-builder.js +104 -0
  91. package/dist/cli/builder/create-cli-builder.js.map +1 -0
  92. package/dist/cli/builder/index.d.ts +8 -0
  93. package/dist/cli/builder/index.d.ts.map +1 -0
  94. package/dist/cli/builder/index.js +7 -0
  95. package/dist/cli/builder/index.js.map +1 -0
  96. package/dist/cli/builder/types.d.ts +113 -0
  97. package/dist/cli/builder/types.d.ts.map +1 -0
  98. package/dist/cli/builder/types.js +7 -0
  99. package/dist/cli/builder/types.js.map +1 -0
  100. package/dist/cli/cluster.d.ts +8 -0
  101. package/dist/cli/cluster.d.ts.map +1 -0
  102. package/dist/cli/cluster.js +145 -0
  103. package/dist/cli/cluster.js.map +1 -0
  104. package/dist/cli/current-app.d.ts +36 -0
  105. package/dist/cli/current-app.d.ts.map +1 -0
  106. package/dist/cli/current-app.js +21 -0
  107. package/dist/cli/current-app.js.map +1 -0
  108. package/dist/cli/define-app.d.ts +35 -0
  109. package/dist/cli/define-app.d.ts.map +1 -0
  110. package/dist/cli/define-app.js +79 -0
  111. package/dist/cli/define-app.js.map +1 -0
  112. package/dist/cli/define-main.d.ts +33 -0
  113. package/dist/cli/define-main.d.ts.map +1 -0
  114. package/dist/cli/define-main.js +67 -0
  115. package/dist/cli/define-main.js.map +1 -0
  116. package/dist/cli/define-project.d.ts +93 -0
  117. package/dist/cli/define-project.d.ts.map +1 -0
  118. package/dist/cli/define-project.js +85 -0
  119. package/dist/cli/define-project.js.map +1 -0
  120. package/dist/cli/dev-server.d.ts +20 -0
  121. package/dist/cli/dev-server.d.ts.map +1 -0
  122. package/dist/cli/dev-server.js +131 -0
  123. package/dist/cli/dev-server.js.map +1 -0
  124. package/dist/cli/discovery.d.ts +29 -0
  125. package/dist/cli/discovery.d.ts.map +1 -0
  126. package/dist/cli/discovery.js +142 -0
  127. package/dist/cli/discovery.js.map +1 -0
  128. package/dist/cli/factory.d.ts +43 -0
  129. package/dist/cli/factory.d.ts.map +1 -0
  130. package/dist/cli/factory.js +52 -0
  131. package/dist/cli/factory.js.map +1 -0
  132. package/dist/cli/generators/ai.d.ts +3 -0
  133. package/dist/cli/generators/ai.d.ts.map +1 -0
  134. package/dist/cli/generators/ai.js +65 -0
  135. package/dist/cli/generators/ai.js.map +1 -0
  136. package/dist/cli/generators/ci.d.ts +5 -0
  137. package/dist/cli/generators/ci.d.ts.map +1 -0
  138. package/dist/cli/generators/ci.js +102 -0
  139. package/dist/cli/generators/ci.js.map +1 -0
  140. package/dist/cli/generators/detect.d.ts +15 -0
  141. package/dist/cli/generators/detect.d.ts.map +1 -0
  142. package/dist/cli/generators/detect.js +75 -0
  143. package/dist/cli/generators/detect.js.map +1 -0
  144. package/dist/cli/generators/ide.d.ts +3 -0
  145. package/dist/cli/generators/ide.d.ts.map +1 -0
  146. package/dist/cli/generators/ide.js +179 -0
  147. package/dist/cli/generators/ide.js.map +1 -0
  148. package/dist/cli/generators/index.d.ts +5 -0
  149. package/dist/cli/generators/index.d.ts.map +1 -0
  150. package/dist/cli/generators/index.js +5 -0
  151. package/dist/cli/generators/index.js.map +1 -0
  152. package/dist/cli/index.d.ts +81 -0
  153. package/dist/cli/index.d.ts.map +1 -0
  154. package/dist/cli/index.js +88 -0
  155. package/dist/cli/index.js.map +1 -0
  156. package/dist/cli/io.d.ts +131 -0
  157. package/dist/cli/io.d.ts.map +1 -0
  158. package/dist/cli/io.js +373 -0
  159. package/dist/cli/io.js.map +1 -0
  160. package/dist/cli/mcp/server.d.ts +23 -0
  161. package/dist/cli/mcp/server.d.ts.map +1 -0
  162. package/dist/cli/mcp/server.js +148 -0
  163. package/dist/cli/mcp/server.js.map +1 -0
  164. package/dist/cli/parser.d.ts +106 -0
  165. package/dist/cli/parser.d.ts.map +1 -0
  166. package/dist/cli/parser.js +520 -0
  167. package/dist/cli/parser.js.map +1 -0
  168. package/dist/cli/runner.d.ts +75 -0
  169. package/dist/cli/runner.d.ts.map +1 -0
  170. package/dist/cli/runner.js +422 -0
  171. package/dist/cli/runner.js.map +1 -0
  172. package/dist/cli/service.d.ts +61 -0
  173. package/dist/cli/service.d.ts.map +1 -0
  174. package/dist/cli/service.js +95 -0
  175. package/dist/cli/service.js.map +1 -0
  176. package/dist/cli/types.d.ts +47 -0
  177. package/dist/cli/types.d.ts.map +1 -0
  178. package/dist/cli/types.js +20 -0
  179. package/dist/cli/types.js.map +1 -0
  180. package/dist/cli/wizard.d.ts +11 -0
  181. package/dist/cli/wizard.d.ts.map +1 -0
  182. package/dist/cli/wizard.js +2 -0
  183. package/dist/cli/wizard.js.map +1 -0
  184. package/dist/cli/workspace-controller.d.ts +36 -0
  185. package/dist/cli/workspace-controller.d.ts.map +1 -0
  186. package/dist/cli/workspace-controller.js +896 -0
  187. package/dist/cli/workspace-controller.js.map +1 -0
  188. package/dist/cluster/client.d.ts +101 -0
  189. package/dist/cluster/client.d.ts.map +1 -0
  190. package/dist/cluster/client.js +256 -0
  191. package/dist/cluster/client.js.map +1 -0
  192. package/dist/cluster/cluster.d.ts +82 -0
  193. package/dist/cluster/cluster.d.ts.map +1 -0
  194. package/dist/cluster/cluster.js +27 -0
  195. package/dist/cluster/cluster.js.map +1 -0
  196. package/dist/cluster/coordinator/cluster-node.model.d.ts +14 -0
  197. package/dist/cluster/coordinator/cluster-node.model.d.ts.map +1 -0
  198. package/dist/cluster/coordinator/cluster-node.model.js +15 -0
  199. package/dist/cluster/coordinator/cluster-node.model.js.map +1 -0
  200. package/dist/cluster/coordinator/cluster-signals.d.ts +45 -0
  201. package/dist/cluster/coordinator/cluster-signals.d.ts.map +1 -0
  202. package/dist/cluster/coordinator/cluster-signals.js +24 -0
  203. package/dist/cluster/coordinator/cluster-signals.js.map +1 -0
  204. package/dist/cluster/coordinator/coordinator.process.d.ts +21 -0
  205. package/dist/cluster/coordinator/coordinator.process.d.ts.map +1 -0
  206. package/dist/cluster/coordinator/coordinator.process.js +221 -0
  207. package/dist/cluster/coordinator/coordinator.process.js.map +1 -0
  208. package/dist/cluster/coordinator/index.d.ts +13 -0
  209. package/dist/cluster/coordinator/index.d.ts.map +1 -0
  210. package/dist/cluster/coordinator/index.js +13 -0
  211. package/dist/cluster/coordinator/index.js.map +1 -0
  212. package/dist/cluster/coordinator/node-lifecycle.d.ts +31 -0
  213. package/dist/cluster/coordinator/node-lifecycle.d.ts.map +1 -0
  214. package/dist/cluster/coordinator/node-lifecycle.js +178 -0
  215. package/dist/cluster/coordinator/node-lifecycle.js.map +1 -0
  216. package/dist/cluster/index.d.ts +45 -0
  217. package/dist/cluster/index.d.ts.map +1 -0
  218. package/dist/cluster/index.js +57 -0
  219. package/dist/cluster/index.js.map +1 -0
  220. package/dist/cluster/protocol.d.ts +204 -0
  221. package/dist/cluster/protocol.d.ts.map +1 -0
  222. package/dist/cluster/protocol.js +274 -0
  223. package/dist/cluster/protocol.js.map +1 -0
  224. package/dist/cluster/scheduled-task/builder.d.ts +24 -0
  225. package/dist/cluster/scheduled-task/builder.d.ts.map +1 -0
  226. package/dist/cluster/scheduled-task/builder.js +63 -0
  227. package/dist/cluster/scheduled-task/builder.js.map +1 -0
  228. package/dist/cluster/scheduled-task/factory.d.ts +76 -0
  229. package/dist/cluster/scheduled-task/factory.d.ts.map +1 -0
  230. package/dist/cluster/scheduled-task/factory.js +64 -0
  231. package/dist/cluster/scheduled-task/factory.js.map +1 -0
  232. package/dist/cluster/scheduled-task/index.d.ts +43 -0
  233. package/dist/cluster/scheduled-task/index.d.ts.map +1 -0
  234. package/dist/cluster/scheduled-task/index.js +45 -0
  235. package/dist/cluster/scheduled-task/index.js.map +1 -0
  236. package/dist/cluster/scheduled-task/transport.d.ts +12 -0
  237. package/dist/cluster/scheduled-task/transport.d.ts.map +1 -0
  238. package/dist/cluster/scheduled-task/transport.js +146 -0
  239. package/dist/cluster/scheduled-task/transport.js.map +1 -0
  240. package/dist/cluster/scheduled-task/types.d.ts +89 -0
  241. package/dist/cluster/scheduled-task/types.d.ts.map +1 -0
  242. package/dist/cluster/scheduled-task/types.js +7 -0
  243. package/dist/cluster/scheduled-task/types.js.map +1 -0
  244. package/dist/cluster/server.d.ts +87 -0
  245. package/dist/cluster/server.d.ts.map +1 -0
  246. package/dist/cluster/server.js +290 -0
  247. package/dist/cluster/server.js.map +1 -0
  248. package/dist/cluster/transport.d.ts +86 -0
  249. package/dist/cluster/transport.d.ts.map +1 -0
  250. package/dist/cluster/transport.js +138 -0
  251. package/dist/cluster/transport.js.map +1 -0
  252. package/dist/core/container-hooks.d.ts +22 -0
  253. package/dist/core/container-hooks.d.ts.map +1 -0
  254. package/dist/core/container-hooks.js +29 -0
  255. package/dist/core/container-hooks.js.map +1 -0
  256. package/dist/core/container-reflection.d.ts +71 -0
  257. package/dist/core/container-reflection.d.ts.map +1 -0
  258. package/dist/core/container-reflection.js +60 -0
  259. package/dist/core/container-reflection.js.map +1 -0
  260. package/dist/core/context.d.ts +146 -0
  261. package/dist/core/context.d.ts.map +1 -0
  262. package/dist/core/context.js +155 -0
  263. package/dist/core/context.js.map +1 -0
  264. package/dist/core/contribution.d.ts +152 -0
  265. package/dist/core/contribution.d.ts.map +1 -0
  266. package/dist/core/contribution.js +213 -0
  267. package/dist/core/contribution.js.map +1 -0
  268. package/dist/core/controller.contextual.d.ts +193 -0
  269. package/dist/core/controller.contextual.d.ts.map +1 -0
  270. package/dist/core/controller.contextual.js +459 -0
  271. package/dist/core/controller.contextual.js.map +1 -0
  272. package/dist/core/controller.d.ts +510 -0
  273. package/dist/core/controller.d.ts.map +1 -0
  274. package/dist/core/controller.js +411 -0
  275. package/dist/core/controller.js.map +1 -0
  276. package/dist/core/controller.procedure.d.ts +147 -0
  277. package/dist/core/controller.procedure.d.ts.map +1 -0
  278. package/dist/core/controller.procedure.js +115 -0
  279. package/dist/core/controller.procedure.js.map +1 -0
  280. package/dist/core/disposable.d.ts +126 -0
  281. package/dist/core/disposable.d.ts.map +1 -0
  282. package/dist/core/disposable.js +179 -0
  283. package/dist/core/disposable.js.map +1 -0
  284. package/dist/core/hmr.d.ts +83 -0
  285. package/dist/core/hmr.d.ts.map +1 -0
  286. package/dist/core/hmr.js +211 -0
  287. package/dist/core/hmr.js.map +1 -0
  288. package/dist/core/index.d.ts +17 -0
  289. package/dist/core/index.d.ts.map +1 -0
  290. package/dist/core/index.js +25 -0
  291. package/dist/core/index.js.map +1 -0
  292. package/dist/core/internal/routes.d.ts +26 -0
  293. package/dist/core/internal/routes.d.ts.map +1 -0
  294. package/dist/core/internal/routes.js +48 -0
  295. package/dist/core/internal/routes.js.map +1 -0
  296. package/dist/core/lifecycle-impl.d.ts +45 -0
  297. package/dist/core/lifecycle-impl.d.ts.map +1 -0
  298. package/dist/core/lifecycle-impl.js +102 -0
  299. package/dist/core/lifecycle-impl.js.map +1 -0
  300. package/dist/core/lifecycle.d.ts +86 -0
  301. package/dist/core/lifecycle.d.ts.map +1 -0
  302. package/dist/core/lifecycle.js +38 -0
  303. package/dist/core/lifecycle.js.map +1 -0
  304. package/dist/core/logger.d.ts +282 -0
  305. package/dist/core/logger.d.ts.map +1 -0
  306. package/dist/core/logger.js +368 -0
  307. package/dist/core/logger.js.map +1 -0
  308. package/dist/core/middleware.d.ts +108 -0
  309. package/dist/core/middleware.d.ts.map +1 -0
  310. package/dist/core/middleware.js +60 -0
  311. package/dist/core/middleware.js.map +1 -0
  312. package/dist/core/openapi-methods.d.ts +61 -0
  313. package/dist/core/openapi-methods.d.ts.map +1 -0
  314. package/dist/core/openapi-methods.js +53 -0
  315. package/dist/core/openapi-methods.js.map +1 -0
  316. package/dist/core/plugin.d.ts +209 -0
  317. package/dist/core/plugin.d.ts.map +1 -0
  318. package/dist/core/plugin.js +36 -0
  319. package/dist/core/plugin.js.map +1 -0
  320. package/dist/core/scope-bridge.d.ts +19 -0
  321. package/dist/core/scope-bridge.d.ts.map +1 -0
  322. package/dist/core/scope-bridge.js +34 -0
  323. package/dist/core/scope-bridge.js.map +1 -0
  324. package/dist/core/service.d.ts +429 -0
  325. package/dist/core/service.d.ts.map +1 -0
  326. package/dist/core/service.js +875 -0
  327. package/dist/core/service.js.map +1 -0
  328. package/dist/features/channel/backend.d.ts +98 -0
  329. package/dist/features/channel/backend.d.ts.map +1 -0
  330. package/dist/features/channel/backend.js +75 -0
  331. package/dist/features/channel/backend.js.map +1 -0
  332. package/dist/features/channel/channel.d.ts +18 -0
  333. package/dist/features/channel/channel.d.ts.map +1 -0
  334. package/dist/features/channel/channel.js +219 -0
  335. package/dist/features/channel/channel.js.map +1 -0
  336. package/dist/features/channel/channels.d.ts +87 -0
  337. package/dist/features/channel/channels.d.ts.map +1 -0
  338. package/dist/features/channel/channels.js +252 -0
  339. package/dist/features/channel/channels.js.map +1 -0
  340. package/dist/features/channel/feature.d.ts +40 -0
  341. package/dist/features/channel/feature.d.ts.map +1 -0
  342. package/dist/features/channel/feature.js +44 -0
  343. package/dist/features/channel/feature.js.map +1 -0
  344. package/dist/features/channel/index.d.ts +41 -0
  345. package/dist/features/channel/index.d.ts.map +1 -0
  346. package/dist/features/channel/index.js +41 -0
  347. package/dist/features/channel/index.js.map +1 -0
  348. package/dist/features/channel/types.d.ts +165 -0
  349. package/dist/features/channel/types.d.ts.map +1 -0
  350. package/dist/features/channel/types.js +10 -0
  351. package/dist/features/channel/types.js.map +1 -0
  352. package/dist/features/config/cli/config-controller.d.ts +77 -0
  353. package/dist/features/config/cli/config-controller.d.ts.map +1 -0
  354. package/dist/features/config/cli/config-controller.js +209 -0
  355. package/dist/features/config/cli/config-controller.js.map +1 -0
  356. package/dist/features/config/cli/index.d.ts +9 -0
  357. package/dist/features/config/cli/index.d.ts.map +1 -0
  358. package/dist/features/config/cli/index.js +9 -0
  359. package/dist/features/config/cli/index.js.map +1 -0
  360. package/dist/features/config/cli/profile-controller.d.ts +87 -0
  361. package/dist/features/config/cli/profile-controller.d.ts.map +1 -0
  362. package/dist/features/config/cli/profile-controller.js +223 -0
  363. package/dist/features/config/cli/profile-controller.js.map +1 -0
  364. package/dist/features/config/cli/utils.d.ts +14 -0
  365. package/dist/features/config/cli/utils.d.ts.map +1 -0
  366. package/dist/features/config/cli/utils.js +29 -0
  367. package/dist/features/config/cli/utils.js.map +1 -0
  368. package/dist/features/config/config-of.d.ts +36 -0
  369. package/dist/features/config/config-of.d.ts.map +1 -0
  370. package/dist/features/config/config-of.js +36 -0
  371. package/dist/features/config/config-of.js.map +1 -0
  372. package/dist/features/config/config-service.d.ts +54 -0
  373. package/dist/features/config/config-service.d.ts.map +1 -0
  374. package/dist/features/config/config-service.js +184 -0
  375. package/dist/features/config/config-service.js.map +1 -0
  376. package/dist/features/config/create-config.d.ts +21 -0
  377. package/dist/features/config/create-config.d.ts.map +1 -0
  378. package/dist/features/config/create-config.js +16 -0
  379. package/dist/features/config/create-config.js.map +1 -0
  380. package/dist/features/config/define-config-partial.d.ts +13 -0
  381. package/dist/features/config/define-config-partial.d.ts.map +1 -0
  382. package/dist/features/config/define-config-partial.js +19 -0
  383. package/dist/features/config/define-config-partial.js.map +1 -0
  384. package/dist/features/config/env-service.d.ts +54 -0
  385. package/dist/features/config/env-service.d.ts.map +1 -0
  386. package/dist/features/config/env-service.js +115 -0
  387. package/dist/features/config/env-service.js.map +1 -0
  388. package/dist/features/config/file-watcher.d.ts +13 -0
  389. package/dist/features/config/file-watcher.d.ts.map +1 -0
  390. package/dist/features/config/file-watcher.js +98 -0
  391. package/dist/features/config/file-watcher.js.map +1 -0
  392. package/dist/features/config/index.d.ts +21 -0
  393. package/dist/features/config/index.d.ts.map +1 -0
  394. package/dist/features/config/index.js +24 -0
  395. package/dist/features/config/index.js.map +1 -0
  396. package/dist/features/config/profile-service.d.ts +59 -0
  397. package/dist/features/config/profile-service.d.ts.map +1 -0
  398. package/dist/features/config/profile-service.js +114 -0
  399. package/dist/features/config/profile-service.js.map +1 -0
  400. package/dist/features/config/types.d.ts +38 -0
  401. package/dist/features/config/types.d.ts.map +1 -0
  402. package/dist/features/config/types.js +17 -0
  403. package/dist/features/config/types.js.map +1 -0
  404. package/dist/features/contract/contract.d.ts +264 -0
  405. package/dist/features/contract/contract.d.ts.map +1 -0
  406. package/dist/features/contract/contract.js +183 -0
  407. package/dist/features/contract/contract.js.map +1 -0
  408. package/dist/features/contract/index.d.ts +2 -0
  409. package/dist/features/contract/index.d.ts.map +1 -0
  410. package/dist/features/contract/index.js +2 -0
  411. package/dist/features/contract/index.js.map +1 -0
  412. package/dist/features/env/contribute.d.ts +70 -0
  413. package/dist/features/env/contribute.d.ts.map +1 -0
  414. package/dist/features/env/contribute.js +195 -0
  415. package/dist/features/env/contribute.js.map +1 -0
  416. package/dist/features/environment/create-environment.d.ts +58 -0
  417. package/dist/features/environment/create-environment.d.ts.map +1 -0
  418. package/dist/features/environment/create-environment.js +22 -0
  419. package/dist/features/environment/create-environment.js.map +1 -0
  420. package/dist/features/environment/index.d.ts +12 -0
  421. package/dist/features/environment/index.d.ts.map +1 -0
  422. package/dist/features/environment/index.js +10 -0
  423. package/dist/features/environment/index.js.map +1 -0
  424. package/dist/features/environment/load.d.ts +59 -0
  425. package/dist/features/environment/load.d.ts.map +1 -0
  426. package/dist/features/environment/load.js +117 -0
  427. package/dist/features/environment/load.js.map +1 -0
  428. package/dist/features/environment/types.d.ts +165 -0
  429. package/dist/features/environment/types.d.ts.map +1 -0
  430. package/dist/features/environment/types.js +18 -0
  431. package/dist/features/environment/types.js.map +1 -0
  432. package/dist/features/feature-flags/create-feature-flag-provider.d.ts +21 -0
  433. package/dist/features/feature-flags/create-feature-flag-provider.d.ts.map +1 -0
  434. package/dist/features/feature-flags/create-feature-flag-provider.js +16 -0
  435. package/dist/features/feature-flags/create-feature-flag-provider.js.map +1 -0
  436. package/dist/features/feature-flags/define-feature-flag-partial.d.ts +20 -0
  437. package/dist/features/feature-flags/define-feature-flag-partial.d.ts.map +1 -0
  438. package/dist/features/feature-flags/define-feature-flag-partial.js +26 -0
  439. package/dist/features/feature-flags/define-feature-flag-partial.js.map +1 -0
  440. package/dist/features/feature-flags/feature-flag-of.d.ts +16 -0
  441. package/dist/features/feature-flags/feature-flag-of.d.ts.map +1 -0
  442. package/dist/features/feature-flags/feature-flag-of.js +16 -0
  443. package/dist/features/feature-flags/feature-flag-of.js.map +1 -0
  444. package/dist/features/feature-flags/feature-flag-service.d.ts +22 -0
  445. package/dist/features/feature-flags/feature-flag-service.d.ts.map +1 -0
  446. package/dist/features/feature-flags/feature-flag-service.js +112 -0
  447. package/dist/features/feature-flags/feature-flag-service.js.map +1 -0
  448. package/dist/features/feature-flags/index.d.ts +15 -0
  449. package/dist/features/feature-flags/index.d.ts.map +1 -0
  450. package/dist/features/feature-flags/index.js +12 -0
  451. package/dist/features/feature-flags/index.js.map +1 -0
  452. package/dist/features/feature-flags/types.d.ts +30 -0
  453. package/dist/features/feature-flags/types.d.ts.map +1 -0
  454. package/dist/features/feature-flags/types.js +8 -0
  455. package/dist/features/feature-flags/types.js.map +1 -0
  456. package/dist/features/index.d.ts +6 -0
  457. package/dist/features/index.d.ts.map +1 -0
  458. package/dist/features/index.js +7 -0
  459. package/dist/features/index.js.map +1 -0
  460. package/dist/features/lock/index.d.ts +4 -0
  461. package/dist/features/lock/index.d.ts.map +1 -0
  462. package/dist/features/lock/index.js +4 -0
  463. package/dist/features/lock/index.js.map +1 -0
  464. package/dist/features/lock/lock-service.d.ts +74 -0
  465. package/dist/features/lock/lock-service.d.ts.map +1 -0
  466. package/dist/features/lock/lock-service.js +210 -0
  467. package/dist/features/lock/lock-service.js.map +1 -0
  468. package/dist/features/lock/memory.d.ts +60 -0
  469. package/dist/features/lock/memory.d.ts.map +1 -0
  470. package/dist/features/lock/memory.js +194 -0
  471. package/dist/features/lock/memory.js.map +1 -0
  472. package/dist/features/lock/types.d.ts +151 -0
  473. package/dist/features/lock/types.d.ts.map +1 -0
  474. package/dist/features/lock/types.js +17 -0
  475. package/dist/features/lock/types.js.map +1 -0
  476. package/dist/features/memory/index.d.ts +18 -0
  477. package/dist/features/memory/index.d.ts.map +1 -0
  478. package/dist/features/memory/index.js +18 -0
  479. package/dist/features/memory/index.js.map +1 -0
  480. package/dist/features/memory/lock-feature.d.ts +21 -0
  481. package/dist/features/memory/lock-feature.d.ts.map +1 -0
  482. package/dist/features/memory/lock-feature.js +24 -0
  483. package/dist/features/memory/lock-feature.js.map +1 -0
  484. package/dist/features/secrets/create-secret-provider.d.ts +31 -0
  485. package/dist/features/secrets/create-secret-provider.d.ts.map +1 -0
  486. package/dist/features/secrets/create-secret-provider.js +26 -0
  487. package/dist/features/secrets/create-secret-provider.js.map +1 -0
  488. package/dist/features/secrets/define-secret-partial.d.ts +16 -0
  489. package/dist/features/secrets/define-secret-partial.d.ts.map +1 -0
  490. package/dist/features/secrets/define-secret-partial.js +26 -0
  491. package/dist/features/secrets/define-secret-partial.js.map +1 -0
  492. package/dist/features/secrets/index.d.ts +17 -0
  493. package/dist/features/secrets/index.d.ts.map +1 -0
  494. package/dist/features/secrets/index.js +14 -0
  495. package/dist/features/secrets/index.js.map +1 -0
  496. package/dist/features/secrets/secret-of.d.ts +19 -0
  497. package/dist/features/secrets/secret-of.d.ts.map +1 -0
  498. package/dist/features/secrets/secret-of.js +21 -0
  499. package/dist/features/secrets/secret-of.js.map +1 -0
  500. package/dist/features/secrets/secret-service.d.ts +21 -0
  501. package/dist/features/secrets/secret-service.d.ts.map +1 -0
  502. package/dist/features/secrets/secret-service.js +28 -0
  503. package/dist/features/secrets/secret-service.js.map +1 -0
  504. package/dist/features/secrets/types.d.ts +30 -0
  505. package/dist/features/secrets/types.d.ts.map +1 -0
  506. package/dist/features/secrets/types.js +8 -0
  507. package/dist/features/secrets/types.js.map +1 -0
  508. package/dist/features/vault/env-var-vault.d.ts +24 -0
  509. package/dist/features/vault/env-var-vault.d.ts.map +1 -0
  510. package/dist/features/vault/env-var-vault.js +43 -0
  511. package/dist/features/vault/env-var-vault.js.map +1 -0
  512. package/dist/features/vault/hardcoded-vault.d.ts +34 -0
  513. package/dist/features/vault/hardcoded-vault.d.ts.map +1 -0
  514. package/dist/features/vault/hardcoded-vault.js +46 -0
  515. package/dist/features/vault/hardcoded-vault.js.map +1 -0
  516. package/dist/features/vault/hashicorp-vault.d.ts +32 -0
  517. package/dist/features/vault/hashicorp-vault.d.ts.map +1 -0
  518. package/dist/features/vault/hashicorp-vault.js +69 -0
  519. package/dist/features/vault/hashicorp-vault.js.map +1 -0
  520. package/dist/features/vault/index.d.ts +13 -0
  521. package/dist/features/vault/index.d.ts.map +1 -0
  522. package/dist/features/vault/index.js +12 -0
  523. package/dist/features/vault/index.js.map +1 -0
  524. package/dist/features/vault/kubernetes-vault.d.ts +27 -0
  525. package/dist/features/vault/kubernetes-vault.d.ts.map +1 -0
  526. package/dist/features/vault/kubernetes-vault.js +51 -0
  527. package/dist/features/vault/kubernetes-vault.js.map +1 -0
  528. package/dist/features/vault/types.d.ts +41 -0
  529. package/dist/features/vault/types.d.ts.map +1 -0
  530. package/dist/features/vault/types.js +21 -0
  531. package/dist/features/vault/types.js.map +1 -0
  532. package/dist/index.d.ts +78 -0
  533. package/dist/index.d.ts.map +1 -0
  534. package/dist/index.js +48 -0
  535. package/dist/index.js.map +1 -0
  536. package/dist/justscale.d.ts +63 -0
  537. package/dist/justscale.d.ts.map +1 -0
  538. package/dist/justscale.js +501 -0
  539. package/dist/justscale.js.map +1 -0
  540. package/dist/kernel/adapter.d.ts +9 -0
  541. package/dist/kernel/adapter.d.ts.map +1 -0
  542. package/dist/kernel/adapter.js +2 -0
  543. package/dist/kernel/adapter.js.map +1 -0
  544. package/dist/kernel/kernel.d.ts +15 -0
  545. package/dist/kernel/kernel.d.ts.map +1 -0
  546. package/dist/kernel/kernel.js +134 -0
  547. package/dist/kernel/kernel.js.map +1 -0
  548. package/dist/models/access.d.ts +26 -0
  549. package/dist/models/access.d.ts.map +1 -0
  550. package/dist/models/access.js +126 -0
  551. package/dist/models/access.js.map +1 -0
  552. package/dist/models/apply-types-config.d.ts +52 -0
  553. package/dist/models/apply-types-config.d.ts.map +1 -0
  554. package/dist/models/apply-types-config.js +47 -0
  555. package/dist/models/apply-types-config.js.map +1 -0
  556. package/dist/models/define-model.d.ts +249 -0
  557. package/dist/models/define-model.d.ts.map +1 -0
  558. package/dist/models/define-model.js +388 -0
  559. package/dist/models/define-model.js.map +1 -0
  560. package/dist/models/field.d.ts +309 -0
  561. package/dist/models/field.d.ts.map +1 -0
  562. package/dist/models/field.js +312 -0
  563. package/dist/models/field.js.map +1 -0
  564. package/dist/models/in-memory/condition-evaluator.d.ts +53 -0
  565. package/dist/models/in-memory/condition-evaluator.d.ts.map +1 -0
  566. package/dist/models/in-memory/condition-evaluator.js +593 -0
  567. package/dist/models/in-memory/condition-evaluator.js.map +1 -0
  568. package/dist/models/in-memory/in-memory-model.d.ts +89 -0
  569. package/dist/models/in-memory/in-memory-model.d.ts.map +1 -0
  570. package/dist/models/in-memory/in-memory-model.js +101 -0
  571. package/dist/models/in-memory/in-memory-model.js.map +1 -0
  572. package/dist/models/in-memory/in-memory-repository.d.ts +208 -0
  573. package/dist/models/in-memory/in-memory-repository.d.ts.map +1 -0
  574. package/dist/models/in-memory/in-memory-repository.js +618 -0
  575. package/dist/models/in-memory/in-memory-repository.js.map +1 -0
  576. package/dist/models/in-memory/in-memory-scheduled-task.repository.d.ts +92 -0
  577. package/dist/models/in-memory/in-memory-scheduled-task.repository.d.ts.map +1 -0
  578. package/dist/models/in-memory/in-memory-scheduled-task.repository.js +395 -0
  579. package/dist/models/in-memory/in-memory-scheduled-task.repository.js.map +1 -0
  580. package/dist/models/in-memory/index.d.ts +35 -0
  581. package/dist/models/in-memory/index.d.ts.map +1 -0
  582. package/dist/models/in-memory/index.js +36 -0
  583. package/dist/models/in-memory/index.js.map +1 -0
  584. package/dist/models/index.d.ts +52 -0
  585. package/dist/models/index.d.ts.map +1 -0
  586. package/dist/models/index.js +86 -0
  587. package/dist/models/index.js.map +1 -0
  588. package/dist/models/model-name-registry.d.ts +16 -0
  589. package/dist/models/model-name-registry.d.ts.map +1 -0
  590. package/dist/models/model-name-registry.js +19 -0
  591. package/dist/models/model-name-registry.js.map +1 -0
  592. package/dist/models/model.d.ts +15 -0
  593. package/dist/models/model.d.ts.map +1 -0
  594. package/dist/models/model.js +114 -0
  595. package/dist/models/model.js.map +1 -0
  596. package/dist/models/model.repository.d.ts +318 -0
  597. package/dist/models/model.repository.d.ts.map +1 -0
  598. package/dist/models/model.repository.js +146 -0
  599. package/dist/models/model.repository.js.map +1 -0
  600. package/dist/models/observable.d.ts +15 -0
  601. package/dist/models/observable.d.ts.map +1 -0
  602. package/dist/models/observable.js +64 -0
  603. package/dist/models/observable.js.map +1 -0
  604. package/dist/models/proxy.d.ts +5 -0
  605. package/dist/models/proxy.d.ts.map +1 -0
  606. package/dist/models/proxy.js +407 -0
  607. package/dist/models/proxy.js.map +1 -0
  608. package/dist/models/query.d.ts +574 -0
  609. package/dist/models/query.d.ts.map +1 -0
  610. package/dist/models/query.js +701 -0
  611. package/dist/models/query.js.map +1 -0
  612. package/dist/models/reference/reference.d.ts +229 -0
  613. package/dist/models/reference/reference.d.ts.map +1 -0
  614. package/dist/models/reference/reference.js +331 -0
  615. package/dist/models/reference/reference.js.map +1 -0
  616. package/dist/models/reference/transient-ref.d.ts +123 -0
  617. package/dist/models/reference/transient-ref.d.ts.map +1 -0
  618. package/dist/models/reference/transient-ref.js +152 -0
  619. package/dist/models/reference/transient-ref.js.map +1 -0
  620. package/dist/models/repository.d.ts +53 -0
  621. package/dist/models/repository.d.ts.map +1 -0
  622. package/dist/models/repository.js +37 -0
  623. package/dist/models/repository.js.map +1 -0
  624. package/dist/models/scheduled-task/index.d.ts +13 -0
  625. package/dist/models/scheduled-task/index.d.ts.map +1 -0
  626. package/dist/models/scheduled-task/index.js +12 -0
  627. package/dist/models/scheduled-task/index.js.map +1 -0
  628. package/dist/models/scheduled-task/scheduled-task.d.ts +73 -0
  629. package/dist/models/scheduled-task/scheduled-task.d.ts.map +1 -0
  630. package/dist/models/scheduled-task/scheduled-task.js +95 -0
  631. package/dist/models/scheduled-task/scheduled-task.js.map +1 -0
  632. package/dist/models/scheduled-task/scheduled-task.repository.d.ts +150 -0
  633. package/dist/models/scheduled-task/scheduled-task.repository.d.ts.map +1 -0
  634. package/dist/models/scheduled-task/scheduled-task.repository.js +40 -0
  635. package/dist/models/scheduled-task/scheduled-task.repository.js.map +1 -0
  636. package/dist/models/stream.d.ts +139 -0
  637. package/dist/models/stream.d.ts.map +1 -0
  638. package/dist/models/stream.js +153 -0
  639. package/dist/models/stream.js.map +1 -0
  640. package/dist/models/symbols.d.ts +73 -0
  641. package/dist/models/symbols.d.ts.map +1 -0
  642. package/dist/models/symbols.js +97 -0
  643. package/dist/models/symbols.js.map +1 -0
  644. package/dist/models/types.d.ts +291 -0
  645. package/dist/models/types.d.ts.map +1 -0
  646. package/dist/models/types.js +50 -0
  647. package/dist/models/types.js.map +1 -0
  648. package/dist/models/watch.d.ts +27 -0
  649. package/dist/models/watch.d.ts.map +1 -0
  650. package/dist/models/watch.js +124 -0
  651. package/dist/models/watch.js.map +1 -0
  652. package/dist/models/zod-ref.d.ts +46 -0
  653. package/dist/models/zod-ref.d.ts.map +1 -0
  654. package/dist/models/zod-ref.js +31 -0
  655. package/dist/models/zod-ref.js.map +1 -0
  656. package/dist/process/builtin-serializers.d.ts +19 -0
  657. package/dist/process/builtin-serializers.d.ts.map +1 -0
  658. package/dist/process/builtin-serializers.js +213 -0
  659. package/dist/process/builtin-serializers.js.map +1 -0
  660. package/dist/process/cluster-plugin.d.ts +129 -0
  661. package/dist/process/cluster-plugin.d.ts.map +1 -0
  662. package/dist/process/cluster-plugin.js +175 -0
  663. package/dist/process/cluster-plugin.js.map +1 -0
  664. package/dist/process/createProcess.d.ts +67 -0
  665. package/dist/process/createProcess.d.ts.map +1 -0
  666. package/dist/process/createProcess.js +111 -0
  667. package/dist/process/createProcess.js.map +1 -0
  668. package/dist/process/define-signals.d.ts +113 -0
  669. package/dist/process/define-signals.d.ts.map +1 -0
  670. package/dist/process/define-signals.js +222 -0
  671. package/dist/process/define-signals.js.map +1 -0
  672. package/dist/process/delay-controller.d.ts +35 -0
  673. package/dist/process/delay-controller.d.ts.map +1 -0
  674. package/dist/process/delay-controller.js +55 -0
  675. package/dist/process/delay-controller.js.map +1 -0
  676. package/dist/process/index.d.ts +38 -0
  677. package/dist/process/index.d.ts.map +1 -0
  678. package/dist/process/index.js +47 -0
  679. package/dist/process/index.js.map +1 -0
  680. package/dist/process/primitives.d.ts +393 -0
  681. package/dist/process/primitives.d.ts.map +1 -0
  682. package/dist/process/primitives.js +325 -0
  683. package/dist/process/primitives.js.map +1 -0
  684. package/dist/process/serialization.d.ts +58 -0
  685. package/dist/process/serialization.d.ts.map +1 -0
  686. package/dist/process/serialization.js +220 -0
  687. package/dist/process/serialization.js.map +1 -0
  688. package/dist/process/stream-utils.d.ts +123 -0
  689. package/dist/process/stream-utils.d.ts.map +1 -0
  690. package/dist/process/stream-utils.js +247 -0
  691. package/dist/process/stream-utils.js.map +1 -0
  692. package/dist/process/testing/clock.d.ts +115 -0
  693. package/dist/process/testing/clock.d.ts.map +1 -0
  694. package/dist/process/testing/clock.js +166 -0
  695. package/dist/process/testing/clock.js.map +1 -0
  696. package/dist/process/testing/index.d.ts +9 -0
  697. package/dist/process/testing/index.d.ts.map +1 -0
  698. package/dist/process/testing/index.js +9 -0
  699. package/dist/process/testing/index.js.map +1 -0
  700. package/dist/process/testing.d.ts +50 -0
  701. package/dist/process/testing.d.ts.map +1 -0
  702. package/dist/process/testing.js +59 -0
  703. package/dist/process/testing.js.map +1 -0
  704. package/dist/process/types.d.ts +540 -0
  705. package/dist/process/types.d.ts.map +1 -0
  706. package/dist/process/types.js +21 -0
  707. package/dist/process/types.js.map +1 -0
  708. package/dist/queue/index.d.ts +2 -0
  709. package/dist/queue/index.d.ts.map +1 -0
  710. package/dist/queue/index.js +2 -0
  711. package/dist/queue/index.js.map +1 -0
  712. package/dist/queue/queue.d.ts +34 -0
  713. package/dist/queue/queue.d.ts.map +1 -0
  714. package/dist/queue/queue.js +108 -0
  715. package/dist/queue/queue.js.map +1 -0
  716. package/dist/runtime/process/compiled.d.ts +56 -0
  717. package/dist/runtime/process/compiled.d.ts.map +1 -0
  718. package/dist/runtime/process/compiled.js +221 -0
  719. package/dist/runtime/process/compiled.js.map +1 -0
  720. package/dist/runtime/process/executor.d.ts +279 -0
  721. package/dist/runtime/process/executor.d.ts.map +1 -0
  722. package/dist/runtime/process/executor.js +1941 -0
  723. package/dist/runtime/process/executor.js.map +1 -0
  724. package/dist/runtime/process/factory.d.ts +72 -0
  725. package/dist/runtime/process/factory.d.ts.map +1 -0
  726. package/dist/runtime/process/factory.js +78 -0
  727. package/dist/runtime/process/factory.js.map +1 -0
  728. package/dist/runtime/process/freeze.d.ts +5 -0
  729. package/dist/runtime/process/freeze.d.ts.map +1 -0
  730. package/dist/runtime/process/freeze.js +94 -0
  731. package/dist/runtime/process/freeze.js.map +1 -0
  732. package/dist/runtime/process/scheduled-task-timer.d.ts +52 -0
  733. package/dist/runtime/process/scheduled-task-timer.d.ts.map +1 -0
  734. package/dist/runtime/process/scheduled-task-timer.js +104 -0
  735. package/dist/runtime/process/scheduled-task-timer.js.map +1 -0
  736. package/dist/runtime/process/signal-bus.d.ts +186 -0
  737. package/dist/runtime/process/signal-bus.d.ts.map +1 -0
  738. package/dist/runtime/process/signal-bus.js +256 -0
  739. package/dist/runtime/process/signal-bus.js.map +1 -0
  740. package/dist/runtime/process/state-serializer.d.ts +30 -0
  741. package/dist/runtime/process/state-serializer.d.ts.map +1 -0
  742. package/dist/runtime/process/state-serializer.js +244 -0
  743. package/dist/runtime/process/state-serializer.js.map +1 -0
  744. package/dist/runtime/process/storage.d.ts +96 -0
  745. package/dist/runtime/process/storage.d.ts.map +1 -0
  746. package/dist/runtime/process/storage.js +165 -0
  747. package/dist/runtime/process/storage.js.map +1 -0
  748. package/dist/runtime/process/timer-scheduler.d.ts +115 -0
  749. package/dist/runtime/process/timer-scheduler.d.ts.map +1 -0
  750. package/dist/runtime/process/timer-scheduler.js +192 -0
  751. package/dist/runtime/process/timer-scheduler.js.map +1 -0
  752. package/dist/runtime/process/trace.d.ts +17 -0
  753. package/dist/runtime/process/trace.d.ts.map +1 -0
  754. package/dist/runtime/process/trace.js +26 -0
  755. package/dist/runtime/process/trace.js.map +1 -0
  756. package/dist/runtime/protobuf/encoding/index.d.ts +26 -0
  757. package/dist/runtime/protobuf/encoding/index.d.ts.map +1 -0
  758. package/dist/runtime/protobuf/encoding/index.js +30 -0
  759. package/dist/runtime/protobuf/encoding/index.js.map +1 -0
  760. package/dist/runtime/protobuf/encoding/reader.d.ts +182 -0
  761. package/dist/runtime/protobuf/encoding/reader.d.ts.map +1 -0
  762. package/dist/runtime/protobuf/encoding/reader.js +353 -0
  763. package/dist/runtime/protobuf/encoding/reader.js.map +1 -0
  764. package/dist/runtime/protobuf/encoding/varint.d.ts +67 -0
  765. package/dist/runtime/protobuf/encoding/varint.d.ts.map +1 -0
  766. package/dist/runtime/protobuf/encoding/varint.js +117 -0
  767. package/dist/runtime/protobuf/encoding/varint.js.map +1 -0
  768. package/dist/runtime/protobuf/encoding/wire-types.d.ts +62 -0
  769. package/dist/runtime/protobuf/encoding/wire-types.d.ts.map +1 -0
  770. package/dist/runtime/protobuf/encoding/wire-types.js +103 -0
  771. package/dist/runtime/protobuf/encoding/wire-types.js.map +1 -0
  772. package/dist/runtime/protobuf/encoding/writer.d.ts +147 -0
  773. package/dist/runtime/protobuf/encoding/writer.d.ts.map +1 -0
  774. package/dist/runtime/protobuf/encoding/writer.js +214 -0
  775. package/dist/runtime/protobuf/encoding/writer.js.map +1 -0
  776. package/dist/runtime/protobuf/index.d.ts +3 -0
  777. package/dist/runtime/protobuf/index.d.ts.map +1 -0
  778. package/dist/runtime/protobuf/index.js +3 -0
  779. package/dist/runtime/protobuf/index.js.map +1 -0
  780. package/dist/runtime/protobuf/serialized.d.ts +48 -0
  781. package/dist/runtime/protobuf/serialized.d.ts.map +1 -0
  782. package/dist/runtime/protobuf/serialized.js +517 -0
  783. package/dist/runtime/protobuf/serialized.js.map +1 -0
  784. package/package.json +209 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 JustScale
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,261 @@
1
+ # @justscale/core
2
+
3
+ The foundation every JustScale app sits on. `@justscale/core` is the DI container, the service/controller/feature primitives, the composition builder (`JustScale()`), the durable-process runtime, the model layer, and the distributed primitives (locks + channels). It also ships the `just` binary.
4
+
5
+ The distinguishing idea: **composition is validated at compile time.** A missing dependency is a type error, not a runtime crash. You get that by describing services, controllers, and features as values with typed dependency tokens and letting `build()` check the graph.
6
+
7
+ Full docs: [justscale.sh](https://justscale.sh) — start at [overview/philosophy](https://justscale.sh/overview/philosophy).
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ pnpm add @justscale/core
13
+ ```
14
+
15
+ Peer deps: `zod` (required for schemas), `@justscale/typescript` (optional; installs `ptsc` for the durable-process compiler), `esbuild` (optional; used by parts of the CLI).
16
+
17
+ ## Hello world
18
+
19
+ ```ts
20
+ import JustScale, { defineService, createController } from '@justscale/core';
21
+ import { Get } from '@justscale/http';
22
+
23
+ class Greeter extends defineService({
24
+ factory: () => ({ hello: (name: string) => `Hello, ${name}!` }),
25
+ }) {}
26
+
27
+ const GreetController = createController({
28
+ inject: { greeter: Greeter },
29
+ routes: ({ greeter }) => ({
30
+ greet: Get('/greet/:name').handle(({ params, res }) =>
31
+ res.json({ message: greeter.hello(params.name) }),
32
+ ),
33
+ }),
34
+ });
35
+
36
+ const app = JustScale()
37
+ .add(Greeter)
38
+ .add(GreetController)
39
+ .build();
40
+
41
+ await app.serve();
42
+ ```
43
+
44
+ `.add(...)` composes services, controllers, and features into a scope. `build()` type-checks the DI graph — forget `.add(Greeter)` and `GreetController` won't compile. `serve()` pulls `HttpConfig` from the scope (default port `6142`) and opens the sockets.
45
+
46
+ Real apps usually declare per-environment config through `createEnvironment` + an env contract and boot via `just dev` / `just test`; see [examples/simple-app](https://github.com/justscale/justscale/tree/main/examples/simple-app) for the canonical shape.
47
+
48
+ ## Primitives
49
+
50
+ ### Services — [justscale.sh/fundamentals/services](https://justscale.sh/fundamentals/services)
51
+
52
+ ```ts
53
+ class UserService extends defineService({
54
+ inject: { users: UserRepository },
55
+ factory: ({ users }) => ({
56
+ findByEmail: (email: string) =>
57
+ users.findOne(User.fields.email.eq(email)),
58
+ }),
59
+ }) {}
60
+ ```
61
+
62
+ `defineService({ inject, factory })` returns a class you extend. `inject` lists the DI tokens you need; `factory` receives the resolved instances and returns your service. The returned class is itself the DI token — pass `UserService` to `.add(UserService)` or inject it elsewhere.
63
+
64
+ Abstract tokens (`defineAbstract`) let services declare "I need _something_ that implements this interface" without naming a concrete class. Bind a concrete implementation at compose time with `bindService(AbstractToken, ConcreteService)`. Same pattern for repositories via `bindRepository(ModelRepository.of(User), UserRepository)`.
65
+
66
+ ### Controllers — [justscale.sh/fundamentals/controllers](https://justscale.sh/fundamentals/controllers)
67
+
68
+ ```ts
69
+ createController({
70
+ inject: { svc: MyService },
71
+ routes: ({ svc }) => ({
72
+ foo: Get('/foo').use(middleware).guard(check).handle(ctx => svc.foo(ctx)),
73
+ bar: Cli('bar').input(z.object({...})).handle(ctx => svc.bar(ctx)),
74
+ }),
75
+ });
76
+ ```
77
+
78
+ Controllers are DI units that hold routes. Route factories come from transport packages — `Get`/`Post`/... from `@justscale/http`, `Ws` from `@justscale/websocket`, `SSE` from `@justscale/sse`, `Cli` from `@justscale/core/cli`, `Procedure` from contracts — and all flow through the same `.use(middleware).guard(...).handle(...)` pipeline with per-route typing.
79
+
80
+ ### Features — [justscale.sh/fundamentals/features](https://justscale.sh/fundamentals/features)
81
+
82
+ ```ts
83
+ export const AuthFeature = createFeatureBuilder()
84
+ .name('auth')
85
+ .requires(Config.of(AuthConfig))
86
+ .provides(b => b.add(AuthService).add(AuthEndpointsController));
87
+ ```
88
+
89
+ Features are shippable capability bundles: a named package of services + controllers + config requirements that other apps consume via `.add(AuthFeature)`. `.requires(...)` bubbles DI requirements up to whoever adds the feature — the requirement is checked at their `build()`, not yours.
90
+
91
+ ### Contracts — [justscale.sh/rpc](https://justscale.sh/rpc/overview)
92
+
93
+ ```ts
94
+ import { defineContract, rpc } from '@justscale/core/contract';
95
+
96
+ class UserContract extends defineContract({
97
+ protocol: 'grpc',
98
+ serviceName: 'user.UserService',
99
+ methods: {
100
+ getUser: rpc(GetUserRequestSchema, UserSchema),
101
+ },
102
+ }) {}
103
+ ```
104
+
105
+ Contracts describe a typed set of methods independent of transport. A controller implements a contract via `createController.implements(UserContract, ...)`; the same implementation can be served over gRPC (`@justscale/rpc`), in-process, or routed across cluster nodes. Contracts also act as DI tokens — injecting `UserContract` gets you a client that resolves locally when bound, remotely otherwise.
106
+
107
+ ## Composition
108
+
109
+ ### `JustScale()`
110
+
111
+ ```ts
112
+ JustScale()
113
+ .add(ServiceA)
114
+ .add(ControllerB)
115
+ .add(FeatureC)
116
+ .build();
117
+ ```
118
+
119
+ The builder is the unit of composition. Every `.add()` contributes services, controllers, features, or bindings into a scope. `.build()` returns a validated `BuiltApp` with `.serve()`, `.match()`, `.run()`, and friends.
120
+
121
+ ### Sub-apps — [justscale.sh/advanced/plugins](https://justscale.sh/advanced/plugins)
122
+
123
+ ```ts
124
+ const AdminSubApp = JustScale()
125
+ .requires(CatalogService)
126
+ .requires(InventoryService)
127
+ .add(AdminController)
128
+ .add(OpenApiFeature)
129
+ .build();
130
+
131
+ const Shop = JustScale()
132
+ .add(CatalogService)
133
+ .add(InventoryService)
134
+ .add(ShopController)
135
+ .add(AdminSubApp)
136
+ .build();
137
+ ```
138
+
139
+ A `JustScale()` compilation unit with `.requires(...)` is a sub-app. Mounting it into a parent (`parent.add(SubApp)`) bridges the required services in via scope-switched proxies — calls from inside the sub-app still execute under the parent's container, locks, and observability context. Admin-only services live in their own scope without polluting the host.
140
+
141
+ ### `AbstractContainer`
142
+
143
+ Reflection on a scope. Inject `AbstractContainer` into a service or controller and you get a typed view of the controllers/services/features bound to that scope. `@justscale/feature-openapi` uses it to emit a per-scope OpenAPI spec — add the feature to a sub-app and the spec covers just that sub-app.
144
+
145
+ ## Durable processes — [justscale.sh/processes/signals](https://justscale.sh/processes/signals)
146
+
147
+ ```ts
148
+ import { createProcess, signal, race, delay } from '@justscale/core/process';
149
+ import { defineSignals } from '@justscale/core/process';
150
+
151
+ class OrderSignals extends defineSignals(signal => ({
152
+ paid: signal('/order/:order/paid').data<{ txId: string }>().types({ Order }),
153
+ })) {}
154
+
155
+ const orderFulfillment = createProcess({
156
+ path: '/order/:order/fulfillment',
157
+ inject: { signals: OrderSignals },
158
+ async handler({ signals }, { order }) {
159
+ const r = race();
160
+ switch (true) {
161
+ case signal(r, signals.paid):
162
+ return { status: 'paid', txId: r.txId };
163
+ case delay.days(r, 3):
164
+ return { status: 'timeout' };
165
+ }
166
+ },
167
+ });
168
+ ```
169
+
170
+ Durable processes survive restarts. Their state is serialized through the `Processable` protocol, timers and signals resume transparently, and the compiler (via `@justscale/typescript`'s `ptsc`) rewrites the handler into a safely resumable shape. The runtime is transport-agnostic — signals can fire from HTTP, CLI, WS, cluster, anywhere.
171
+
172
+ ## Models — [justscale.sh/models/overview](https://justscale.sh/models/overview)
173
+
174
+ ```ts
175
+ import { defineModel, field } from '@justscale/core/models';
176
+
177
+ class User extends defineModel({
178
+ name: 'User',
179
+ fields: {
180
+ email: field.string().max(255).unique(),
181
+ balance: field.decimal(10, 2).default('0.00'),
182
+ },
183
+ }) {}
184
+
185
+ repo.find({ where: User.fields.email.eq('test@example.com') });
186
+ ```
187
+
188
+ Field builders, not Zod — `field.*` gives you typed queryable field expressions (`.eq`, `.gt`, `.ilike`, composed with `and`/`or`). Services inject the abstract `ModelRepository.of(User)` token and stay storage-agnostic; the concrete implementation (e.g. `createPgRepository` from `@justscale/postgres`) is bound at compose time.
189
+
190
+ References (`field.ref(OtherModel)`) are first-class values, not string IDs. Controllers receive `Reference<T>` in their params and services take `Locked<T>` for mutations; the framework keeps the domain ID-free.
191
+
192
+ ## Distributed primitives
193
+
194
+ ### Locks — [justscale.sh/fundamentals/locks](https://justscale.sh/fundamentals/locks)
195
+
196
+ Abstract lock API with an `acquire(key, opts)` signature that returns a disposable guard — integrates with the `using` statement for auto-release. The default provider is in-memory (good for tests). `@justscale/postgres` provides a Postgres advisory-lock backend that coordinates across instances, so locks survive being held from different processes hitting the same database.
197
+
198
+ ### Channels — [justscale.sh/fundamentals/channels](https://justscale.sh/fundamentals/channels)
199
+
200
+ Typed pub/sub with async iterables. `createChannels({ ... })` declares a set of named channels with per-message schemas; subscribers consume via `for await` on a subscription. The default `MemoryChannelBackend` works for a single process; `@justscale/postgres`'s `createPostgresChannelBackend` fans messages out over `LISTEN/NOTIFY` so multiple app instances pointed at the same database all see each publish. Message encoding goes through the `Processable` protocol so domain values (model refs, dates, decimals) survive the round-trip.
201
+
202
+ ## Configuration — [justscale.sh/configuration/overview](https://justscale.sh/configuration/overview)
203
+
204
+ ```ts
205
+ import { defineConfigPartial, createConfig, Config } from '@justscale/core';
206
+
207
+ export const AppConfig = defineConfigPartial('app', z.object({
208
+ siteUrl: z.string(),
209
+ logLevel: z.enum(['debug', 'info', 'warn', 'error']).default('info'),
210
+ }));
211
+
212
+ .add(createConfig({
213
+ provides: [AppConfig],
214
+ factory: () => ({ [AppConfig.key]: { siteUrl: 'https://example.com' } }),
215
+ }));
216
+ ```
217
+
218
+ Config is a first-class primitive, not an env-var dip. Features declare the `Config.of(...)` partials they need; the app satisfies them with `createConfig(...)`. Zod schemas validate at startup and defaults feed through (e.g. `HttpConfig.port` defaults to `6142`).
219
+
220
+ ## Subpath exports
221
+
222
+ Everything beyond the bare `@justscale/core` import lives behind a subpath so you pay only for what you load:
223
+
224
+ - `@justscale/core/models` — `defineModel`, `field`, `ModelRepository`, references
225
+ - `@justscale/core/process` — durable `createProcess`, `defineSignals`, `race`, `signal`, `delay`
226
+ - `@justscale/core/cluster` — multi-node transport, routing, scheduled tasks
227
+ - `@justscale/core/cli` — `Cli` route factory for `just`-discovered commands
228
+ - `@justscale/core/channel` — typed pub/sub async iterables
229
+ - `@justscale/core/lock` — abstract lock API with an in-memory default
230
+ - `@justscale/core/config` — config service, `defineConfigPartial`, `createConfig`
231
+ - `@justscale/core/contract` — `defineContract` for cross-transport controllers
232
+ - `@justscale/core/feature` — `createFeatureBuilder`
233
+ - `@justscale/core/memory` — in-memory adapter implementations (tests / prototyping)
234
+ - `@justscale/core/middleware`, `/logger`, `/lifecycle`, `/plugin` — narrower slices of the bare surface
235
+
236
+ ## `just` CLI — [justscale.sh/cli/usage](https://justscale.sh/cli/usage)
237
+
238
+ Installing this package installs the `just` binary:
239
+
240
+ ```bash
241
+ just dev # boot the app in dev mode with HMR
242
+ just build # build the workspace
243
+ just test # run tests (filterable via flags)
244
+ just init # initialize project / IDE / AI config
245
+ just install <plugin> # install a JustScale plugin package
246
+ ```
247
+
248
+ `just` also discovers commands exported by any installed `@justscale/*` plugin — adding `@justscale/postgres` gives you `just migrate`, for example. Tab-completion installs itself on first invocation; `just __complete` is the internal back-channel, not a user-facing command.
249
+
250
+ ## Observability
251
+
252
+ Services and controllers run under an async context with request tracing, scope management, and pluggable instrumentation. `registerInstrumentation` lets OpenTelemetry / Datadog / custom collectors subscribe without the app code having to know; `@justscale/feature-otel` is a ready-made wiring.
253
+
254
+ ## More
255
+
256
+ - [Quick start](https://justscale.sh/overview/quick-start)
257
+ - [Core philosophy](https://justscale.sh/overview/philosophy)
258
+ - [Repository pattern](https://justscale.sh/repositories/overview)
259
+ - [Cluster overview](https://justscale.sh/cluster/overview)
260
+ - [Permissions](https://justscale.sh/features/permissions)
261
+ - [OpenAPI](https://justscale.sh/techniques/openapi)
package/bin/just.js ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+
4
+ // Register tsx (if available in the user's project) so `just` can directly
5
+ // import TypeScript source — including .ts files referenced as .js, which
6
+ // Node's native type-stripping does not resolve. Without this, simple
7
+ // cases like `justscale.config.ts` → `./src/cli.mode.js` → `./app.js`
8
+ // chains fail with ERR_MODULE_NOT_FOUND.
9
+ try {
10
+ const require = createRequire(`${process.cwd()}/`);
11
+ const { register } = require('tsx/esm/api');
12
+ register();
13
+ } catch {
14
+ // tsx isn't installed in the user's project — Node still handles plain .ts
15
+ // files via type stripping; .js→.ts rewriting just won't work. Users hit
16
+ // that edge case get a clear ERR_MODULE_NOT_FOUND pointing at the missing
17
+ // file, which is a decent nudge to install tsx or compile first.
18
+ }
19
+
20
+ // Await `main()` and drive an explicit exit code. Without this, if `main()`
21
+ // rejects under load, the process exits non-zero with no error message and
22
+ // any pending stdio may be lost — which manifested as flaky e2e tests that
23
+ // saw exitCode 1 despite correct help output reaching stdout. The explicit
24
+ // exit also closes lingering handles (readline, etc.) deterministically.
25
+ try {
26
+ const { main } = await import('../dist/cli/bin/main.js');
27
+ await main();
28
+ process.exit(0);
29
+ } catch (err) {
30
+ // Dump full diagnostic — the test harness captures stderr and this
31
+ // makes intermittent failures debuggable in CI logs.
32
+ console.error('[just] fatal:', err && err.stack ? err.stack : err);
33
+ process.exit(1);
34
+ }
package/dist/app.d.ts ADDED
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Application Bootstrap
3
+ *
4
+ * Creates and configures the application. Transport-agnostic - plugins provide protocol handling.
5
+ */
6
+ import { Container, type ServiceToken } from './core/service.js';
7
+ import { type RequestType } from './core/context.js';
8
+ import { type ControllerDef, type ControllerInstance, type CompiledRoute } from './core/controller.js';
9
+ import { type BuildContext } from './builder/build-context.js';
10
+ import type { Adapter } from './kernel/adapter.js';
11
+ /** Matched route with extracted params */
12
+ export interface MatchedRoute {
13
+ route: CompiledRoute<any>;
14
+ deps: Record<string, unknown>;
15
+ params: Record<string, string>;
16
+ /**
17
+ * The container the matched route belongs to. Set when the match
18
+ * came from a sub-app - `execute()` uses this to run the request
19
+ * scope in the owning container, so sub-app handlers see their own
20
+ * `getContainer()` / `getRequestContext()`.
21
+ *
22
+ * Undefined for routes matched in the parent's own controllers list;
23
+ * `execute()` falls back to the parent container in that case.
24
+ */
25
+ owningContainer?: Container;
26
+ }
27
+ /** Options for route execution */
28
+ export interface ExecuteOptions {
29
+ /** Defaults to 'http'. */
30
+ requestType?: RequestType;
31
+ }
32
+ export interface App<TControllers extends ControllerDef<any>[] = ControllerDef<any>[]> {
33
+ readonly container: Container;
34
+ readonly controllers: ControllerInstance<any>[];
35
+ readonly adapters: readonly Adapter[];
36
+ /** @internal */
37
+ readonly __buildContext?: BuildContext;
38
+ /** Resolves when all controllers are resolved and the app is ready to handle requests. */
39
+ readonly ready: Promise<void>;
40
+ readonly subApps: readonly App<any>[];
41
+ match(method: string, pathname: string): MatchedRoute | null;
42
+ execute(matched: MatchedRoute, contextAdditions: Record<string, unknown>, options?: ExecuteOptions): Promise<unknown>;
43
+ }
44
+ /** @internal */
45
+ interface AppCoreConfig {
46
+ services?: ServiceToken[];
47
+ controllers?: ControllerDef<any>[];
48
+ _beforeControllerResolution?: (container: Container, controllers: ControllerDef<any>[]) => void;
49
+ _asyncBeforeControllerResolution?: (container: Container, controllers: ControllerDef<any>[]) => Promise<void>;
50
+ _getMatchDelegates?: () => ReadonlyArray<App<any>>;
51
+ _parentBuildContext?: BuildContext;
52
+ }
53
+ /** @internal */
54
+ export declare function createAppInternal(config: AppCoreConfig): App;
55
+ export {};
56
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,EACT,KAAK,YAAY,EAKlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAGnB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAQnD,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,GAAG,CAAC,YAAY,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE;IACnF,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAEhD,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAEtC,gBAAgB;IAChB,QAAQ,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC;IAEvC,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;IAEtC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IAE7D,OAAO,CACL,OAAO,EAAE,YAAY,EACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,gBAAgB;AAChB,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IAClC,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAA;IAC/F,gCAAgC,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7G,kBAAkB,CAAC,EAAE,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,YAAY,CAAA;CACnC;AAkMD,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,GAAG,CAE5D"}
package/dist/app.js ADDED
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Application Bootstrap
3
+ *
4
+ * Creates and configures the application. Transport-agnostic - plugins provide protocol handling.
5
+ */
6
+ import { Container, SERVICE_ID, getServiceProvides, } from './core/service.js';
7
+ import { runInFullRequestScope } from './core/context.js';
8
+ import { collectBuiltins, registerBuiltinProvider, } from './core/controller.js';
9
+ import { AbstractContainer, createContainerReflection, } from './core/container-reflection.js';
10
+ import { _buildContext } from './builder/build-context.js';
11
+ import { getRegisteredTransports } from './cluster/cluster.js';
12
+ import { executeSteps } from './builder/execute.js';
13
+ registerBuiltinProvider(({ route, createLogger }) => ({
14
+ logger: createLogger(route.name || 'handler'),
15
+ }));
16
+ function createAppCore(config) {
17
+ const container = new Container();
18
+ const controllers = [];
19
+ const installedAdapters = new Set();
20
+ const buildCtx = config._parentBuildContext ?? {
21
+ installAdapter: (a) => installedAdapters.add(a),
22
+ };
23
+ for (const service of config.services ?? []) {
24
+ const isDefinedService = typeof service === 'function' && SERVICE_ID in service;
25
+ if (typeof service === 'function' && !isDefinedService) {
26
+ container.registerClass(service);
27
+ }
28
+ else {
29
+ const serviceDef = service;
30
+ container.register(serviceDef);
31
+ const provides = getServiceProvides(serviceDef);
32
+ if (provides) {
33
+ for (const providedToken of provides) {
34
+ container.registerFor(providedToken, serviceDef);
35
+ }
36
+ }
37
+ }
38
+ }
39
+ const allControllers = config.controllers ?? [];
40
+ if (config._beforeControllerResolution) {
41
+ config._beforeControllerResolution(container, allControllers);
42
+ }
43
+ for (const transport of getRegisteredTransports()) {
44
+ if (transport.beforeControllerResolution) {
45
+ transport.beforeControllerResolution(container, allControllers);
46
+ }
47
+ }
48
+ container.registerInstance(AbstractContainer, createContainerReflection({
49
+ controllers,
50
+ resolve: (token) => container.resolve(token),
51
+ }));
52
+ const ready = _buildContext.run(buildCtx, () => (async () => {
53
+ if (config._asyncBeforeControllerResolution) {
54
+ await config._asyncBeforeControllerResolution(container, allControllers);
55
+ }
56
+ const controllerPromises = (config.controllers ?? []).map(async (controllerDef) => {
57
+ container.register(controllerDef);
58
+ const instance = await container.resolve(controllerDef);
59
+ instance.__def = controllerDef;
60
+ return instance;
61
+ });
62
+ const resolved = await Promise.all(controllerPromises);
63
+ controllers.push(...resolved);
64
+ await container.resolveAll();
65
+ await container.wireModelPrototypes();
66
+ })());
67
+ function match(method, pathname) {
68
+ for (const controller of controllers) {
69
+ for (const route of controller.routes) {
70
+ if (route.method !== method)
71
+ continue;
72
+ const routeMatch = pathname.match(route.pattern);
73
+ if (!routeMatch)
74
+ continue;
75
+ const params = {};
76
+ route.paramNames.forEach((name, i) => {
77
+ params[name] = routeMatch[i + 1] ?? '';
78
+ });
79
+ return { route, deps: controller.deps, params };
80
+ }
81
+ }
82
+ if (config._getMatchDelegates) {
83
+ for (const delegate of config._getMatchDelegates()) {
84
+ const sub = delegate.match(method, pathname);
85
+ if (sub) {
86
+ return {
87
+ ...sub,
88
+ owningContainer: sub.owningContainer ?? delegate.container,
89
+ };
90
+ }
91
+ }
92
+ }
93
+ return null;
94
+ }
95
+ async function execute(matched, contextAdditions, options) {
96
+ const { route, deps } = matched;
97
+ const requestType = options?.requestType ?? 'http';
98
+ const scopeContainer = matched.owningContainer ?? container;
99
+ return runInFullRequestScope({
100
+ container: scopeContainer,
101
+ type: requestType,
102
+ name: `${route.method} ${route.path}`,
103
+ metadata: {
104
+ [`${requestType}.method`]: route.method,
105
+ [`${requestType}.route`]: route.path,
106
+ 'route.name': route.name,
107
+ },
108
+ observability: {
109
+ route: route.name,
110
+ method: route.method,
111
+ path: route.path,
112
+ },
113
+ }, async () => {
114
+ const cleanupFns = [];
115
+ const onCleanup = (fn) => {
116
+ cleanupFns.push(fn);
117
+ };
118
+ const builtins = collectBuiltins({
119
+ route,
120
+ deps,
121
+ createLogger: (context) => scopeContainer.createLogger(context),
122
+ });
123
+ // Build handler context - transport context + builtins only
124
+ // Dependencies are accessed via closure capture from the routes function
125
+ // Transport provides: params, body, query, res (for HTTP) via contextAdditions
126
+ // Builtins (like logger) are always available via registered providers
127
+ const ctx = {
128
+ ...contextAdditions, // Transport-specific: params, res, body, query, etc.
129
+ ...builtins, // Builtin providers (logger, etc.)
130
+ onCleanup, // Cleanup registration
131
+ };
132
+ try {
133
+ // Run steps (middleware + guards) via the canonical path that reads
134
+ // route.steps, identical to how HTTP and CLI dispatch works.
135
+ // route.middlewares / route.guards are always [] after compilation.
136
+ const passed = await executeSteps(route, ctx);
137
+ if (!passed) {
138
+ return undefined; // Guard denied
139
+ }
140
+ // Call handler with full context
141
+ return route.handler(ctx);
142
+ }
143
+ finally {
144
+ for (let i = cleanupFns.length - 1; i >= 0; i--) {
145
+ try {
146
+ await cleanupFns[i]();
147
+ }
148
+ catch (cleanupError) {
149
+ const logger = builtins.logger;
150
+ logger?.error?.('Cleanup function threw', { error: cleanupError });
151
+ }
152
+ }
153
+ }
154
+ });
155
+ }
156
+ const app = {
157
+ container,
158
+ controllers,
159
+ get adapters() {
160
+ return Array.from(installedAdapters);
161
+ },
162
+ __buildContext: buildCtx,
163
+ get subApps() {
164
+ return config._getMatchDelegates?.() ?? [];
165
+ },
166
+ ready: ready.then(() => {
167
+ for (const transport of getRegisteredTransports()) {
168
+ if (transport.onAppCreated) {
169
+ transport.onAppCreated(app);
170
+ }
171
+ }
172
+ }),
173
+ match,
174
+ execute,
175
+ };
176
+ return app;
177
+ }
178
+ /** @internal */
179
+ export function createAppInternal(config) {
180
+ return createAppCore(config);
181
+ }
182
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import type { Adapter } from '../kernel/adapter.js';
3
+ export interface BuildContext {
4
+ installAdapter(a: Adapter): void;
5
+ }
6
+ export declare const _buildContext: AsyncLocalStorage<BuildContext>;
7
+ export declare const currentBuilder: () => BuildContext | undefined;
8
+ //# sourceMappingURL=build-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-context.d.ts","sourceRoot":"","sources":["../../src/builder/build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,iCAAwC,CAAC;AAEnE,eAAO,MAAM,cAAc,QAAO,YAAY,GAAG,SAAqC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ export const _buildContext = new AsyncLocalStorage();
3
+ export const currentBuilder = () => _buildContext.getStore();
4
+ //# sourceMappingURL=build-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/builder/build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAgB,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAG,GAA6B,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Builder Utilities
3
+ *
4
+ * Helper functions for creating bindings in the DI system.
5
+ */
6
+ import type { RepositoryBinding, ServiceBinding, InstanceBinding } from './types.js';
7
+ import type { RepositoryToken } from '../models/repository.js';
8
+ import type { ServiceToken } from '../core/service.js';
9
+ import { Logger } from '../core/logger.js';
10
+ import { Lifecycle } from '../core/lifecycle.js';
11
+ /**
12
+ * Built-in tokens that are always available.
13
+ * Logger and Lifecycle are auto-provided by the container/cluster builder.
14
+ */
15
+ export type BuiltInTokens = [typeof Logger, typeof Lifecycle];
16
+ /**
17
+ * Bind a repository token to an implementation.
18
+ *
19
+ * This creates a binding for the DI system to wire up repositories.
20
+ */
21
+ export declare function bindRepository<T>(token: RepositoryToken<T>, implementation: unknown): RepositoryBinding<T>;
22
+ /**
23
+ * Bind an abstract service token to a concrete implementation.
24
+ *
25
+ * This creates a binding for the DI system to wire up abstract services.
26
+ * Use this when you have an abstract class and want to specify which
27
+ * concrete implementation should be used.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * import JustScale, { bindService } from '@justscale/core'
32
+ *
33
+ * JustScale()
34
+ * .add(MemoryChannelBackend)
35
+ * .add(bindService(AbstractChannelBackend, MemoryChannelBackend))
36
+ * .build()
37
+ * ```
38
+ */
39
+ export declare function bindService<TAbstract, TImpl extends TAbstract = TAbstract>(abstractToken: ServiceToken<TAbstract>, implementation: ServiceToken<TImpl>): ServiceBinding<TAbstract>;
40
+ /**
41
+ * Bind an abstract service token to a pre-created instance.
42
+ *
43
+ * This creates a binding for the DI system to wire up abstract services
44
+ * to specific instances. Use this when you have an instance you want to
45
+ * share across the app.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * import JustScale, { bindInstance } from '@justscale/core'
50
+ *
51
+ * const taskRepo = new InMemoryScheduledTaskRepository()
52
+ *
53
+ * JustScale()
54
+ * .add(bindInstance(ScheduledTaskRepository, taskRepo))
55
+ * .add(TaskController)
56
+ * .build()
57
+ * ```
58
+ */
59
+ export declare function bindInstance<T>(abstractToken: ServiceToken<T>, instance: T): InstanceBinding<T>;
60
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,MAAM,EAAE,OAAO,SAAS,CAAC,CAAC;AAM9D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EACzB,cAAc,EAAE,OAAO,GACtB,iBAAiB,CAAC,CAAC,CAAC,CAMtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,KAAK,SAAS,SAAS,GAAG,SAAS,EACxE,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC,EACtC,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,GAClC,cAAc,CAAC,SAAS,CAAC,CAM3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,EAC9B,QAAQ,EAAE,CAAC,GACV,eAAe,CAAC,CAAC,CAAC,CAMpB"}