@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
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Builder Utilities
3
+ *
4
+ * Helper functions for creating bindings in the DI system.
5
+ */
6
+ import { REPO_BINDING, SERVICE_BINDING, INSTANCE_BINDING } from './types.js';
7
+ // ============================================================================
8
+ // Token Creation Helpers
9
+ // ============================================================================
10
+ /**
11
+ * Bind a repository token to an implementation.
12
+ *
13
+ * This creates a binding for the DI system to wire up repositories.
14
+ */
15
+ export function bindRepository(token, implementation) {
16
+ return {
17
+ [REPO_BINDING]: true,
18
+ token,
19
+ implementation,
20
+ };
21
+ }
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 function bindService(abstractToken, implementation) {
40
+ return {
41
+ [SERVICE_BINDING]: true,
42
+ token: abstractToken,
43
+ implementation,
44
+ };
45
+ }
46
+ /**
47
+ * Bind an abstract service token to a pre-created instance.
48
+ *
49
+ * This creates a binding for the DI system to wire up abstract services
50
+ * to specific instances. Use this when you have an instance you want to
51
+ * share across the app.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * import JustScale, { bindInstance } from '@justscale/core'
56
+ *
57
+ * const taskRepo = new InMemoryScheduledTaskRepository()
58
+ *
59
+ * JustScale()
60
+ * .add(bindInstance(ScheduledTaskRepository, taskRepo))
61
+ * .add(TaskController)
62
+ * .build()
63
+ * ```
64
+ */
65
+ export function bindInstance(abstractToken, instance) {
66
+ return {
67
+ [INSTANCE_BINDING]: true,
68
+ token: abstractToken,
69
+ instance,
70
+ };
71
+ }
72
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/builder/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAU7E,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAyB,EACzB,cAAuB;IAEvB,OAAO;QACL,CAAC,YAAY,CAAC,EAAE,IAAI;QACpB,KAAK;QACL,cAAc;KACS,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CACzB,aAAsC,EACtC,cAAmC;IAEnC,OAAO;QACL,CAAC,eAAe,CAAC,EAAE,IAAI;QACvB,KAAK,EAAE,aAAa;QACpB,cAAc;KACc,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAC1B,aAA8B,EAC9B,QAAW;IAEX,OAAO;QACL,CAAC,gBAAgB,CAAC,EAAE,IAAI;QACxB,KAAK,EAAE,aAAa;QACpB,QAAQ;KACa,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Route Builder Factory
3
+ *
4
+ * Provides the createBaseBuilder and createBuilderState functions
5
+ * for constructing route builders with middleware/guard execution steps.
6
+ */
7
+ import type { z } from 'zod';
8
+ import type { PermissionDefLike, RouteBuilder, UnresolvedStep } from './types.js';
9
+ /**
10
+ * Internal state for building a route.
11
+ */
12
+ export interface BuilderState {
13
+ /** Sequential steps - use and guard interleaved (may contain unresolved GuardDefs) */
14
+ steps: UnresolvedStep[];
15
+ /** Response schemas mapped by status code */
16
+ responseSchemas: Map<number, z.ZodType | null>;
17
+ /** Model types for path param → Reference transformation */
18
+ types?: Record<string, abstract new (...args: any[]) => any>;
19
+ /** Permission-scoped returns - populated via `.returns(status, schema, permission)` */
20
+ permissionReturns?: Array<{
21
+ status: number;
22
+ schema: z.ZodType | null;
23
+ permission: PermissionDefLike;
24
+ }>;
25
+ }
26
+ /**
27
+ * Create initial builder state.
28
+ */
29
+ export declare function createBuilderState(): BuilderState;
30
+ /**
31
+ * Create a base route builder.
32
+ * This provides the core use/guard/apply/returns/handle methods.
33
+ * Protocol-specific builders extend this.
34
+ */
35
+ export declare function createBaseBuilder<TPath extends string, THandlerReturn = void | Promise<void>>(state: BuilderState, path: TPath): RouteBuilder<{}, unknown, never, TPath, unknown, THandlerReturn>;
36
+ //# sourceMappingURL=create-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-builder.d.ts","sourceRoot":"","sources":["../../src/builder/create-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sFAAsF;IACtF,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,6CAA6C;IAC7C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC9C,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;IAC5D,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,UAAU,EAAE,iBAAiB,CAAA;KAC9B,CAAC,CAAA;CACH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAKjD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC3F,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,KAAK,GACV,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,CAmDlE"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Route Builder Factory
3
+ *
4
+ * Provides the createBaseBuilder and createBuilderState functions
5
+ * for constructing route builders with middleware/guard execution steps.
6
+ */
7
+ /**
8
+ * Create initial builder state.
9
+ */
10
+ export function createBuilderState() {
11
+ return {
12
+ steps: [],
13
+ responseSchemas: new Map()
14
+ };
15
+ }
16
+ /**
17
+ * Create a base route builder.
18
+ * This provides the core use/guard/apply/returns/handle methods.
19
+ * Protocol-specific builders extend this.
20
+ */
21
+ export function createBaseBuilder(state, path) {
22
+ const builder = {
23
+ use(middleware) {
24
+ state.steps.push({ type: 'use', fn: middleware });
25
+ return builder;
26
+ },
27
+ guard(check) {
28
+ state.steps.push({ type: 'guard', fn: check });
29
+ return builder;
30
+ },
31
+ apply(plugin) {
32
+ // Plugin transforms builder, adding its own steps
33
+ return plugin(builder);
34
+ },
35
+ returns(status, schema, permission) {
36
+ state.responseSchemas.set(status, schema ?? null);
37
+ if (permission) {
38
+ state.permissionReturns ??= [];
39
+ state.permissionReturns.push({
40
+ status,
41
+ schema: schema ?? null,
42
+ permission,
43
+ });
44
+ }
45
+ return builder;
46
+ },
47
+ types(types) {
48
+ state.types = types;
49
+ return builder;
50
+ },
51
+ handle(handler) {
52
+ return {
53
+ path,
54
+ steps: [...state.steps],
55
+ responseSchemas: new Map(state.responseSchemas),
56
+ handler,
57
+ ...(state.types ? { types: state.types } : {}),
58
+ ...(state.permissionReturns && state.permissionReturns.length > 0
59
+ ? { permissionReturns: [...state.permissionReturns] }
60
+ : {}),
61
+ };
62
+ }
63
+ };
64
+ return builder;
65
+ }
66
+ //# sourceMappingURL=create-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-builder.js","sourceRoot":"","sources":["../../src/builder/create-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,KAAK,EAAE,EAAE;QACT,eAAe,EAAE,IAAI,GAAG,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAmB,EACnB,IAAW;IAGX,MAAM,OAAO,GAA+C;QAC1D,GAAG,CAAC,UAAU;YACZ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,MAAM;YACV,kDAAkD;YAClD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,MAAc,EAAE,MAAkB,EAAE,UAA8B;YACxE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;YAClD,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC;gBAC/B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC3B,MAAM;oBACN,MAAM,EAAE,MAAM,IAAI,IAAI;oBACtB,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,CAAC,OAAO;YACZ,OAAO;gBACL,IAAI;gBACJ,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBACvB,eAAe,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;gBAC/C,OAAO;gBACP,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;oBAC/D,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,EAAE;oBACrD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Route Execution Runtime
3
+ *
4
+ * Executes a route with sequential middleware and guard execution.
5
+ * Steps run in declaration order, with guards receiving stop() and
6
+ * middleware extending context via Object.assign.
7
+ */
8
+ /** Minimal interface for routes that executeRoute can process. */
9
+ interface ExecutableRoute {
10
+ steps: Array<{
11
+ type: 'use' | 'guard';
12
+ fn: unknown;
13
+ }>;
14
+ handler: (ctx: any) => any;
15
+ }
16
+ /**
17
+ * Run only the middleware/guard steps for a route, without calling the handler.
18
+ *
19
+ * Used by protocols (SSE, etc.) that need to enforce guards but then drive the
20
+ * handler themselves (e.g., an async generator that must stream back to a response).
21
+ *
22
+ * @param route - The finalized route definition (steps must be resolved)
23
+ * @param ctx - Mutable context shared between steps (extended in-place by use steps)
24
+ * @returns `true` if all steps passed, `false` if a guard denied the request.
25
+ */
26
+ export declare function executeSteps(route: Pick<ExecutableRoute, 'steps'>, ctx: Record<string, unknown>): Promise<boolean>;
27
+ /**
28
+ * Execute a route with the given context.
29
+ * Steps run sequentially in declaration order.
30
+ *
31
+ * @param route - The finalized route definition (steps must be resolved, not GuardDefs)
32
+ * @param ctx - Initial context (protocol provides res, req, params, etc.)
33
+ * @returns `true` if all steps passed and the handler ran, `false` if a guard stopped execution.
34
+ */
35
+ export declare function executeRoute(route: ExecutableRoute, ctx: Record<string, unknown>): Promise<boolean>;
36
+ export {};
37
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/builder/execute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,kEAAkE;AAClE,UAAU,eAAe;IACvB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;QAAC,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,EACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAAC,OAAO,CAAC,CAOlB"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Route Execution Runtime
3
+ *
4
+ * Executes a route with sequential middleware and guard execution.
5
+ * Steps run in declaration order, with guards receiving stop() and
6
+ * middleware extending context via Object.assign.
7
+ */
8
+ import { isStop, createStopFn } from './stop.js';
9
+ /**
10
+ * Run only the middleware/guard steps for a route, without calling the handler.
11
+ *
12
+ * Used by protocols (SSE, etc.) that need to enforce guards but then drive the
13
+ * handler themselves (e.g., an async generator that must stream back to a response).
14
+ *
15
+ * @param route - The finalized route definition (steps must be resolved)
16
+ * @param ctx - Mutable context shared between steps (extended in-place by use steps)
17
+ * @returns `true` if all steps passed, `false` if a guard denied the request.
18
+ */
19
+ export async function executeSteps(route, ctx) {
20
+ // Expose the route on the context so middleware/guards can introspect it.
21
+ ctx.__route = route;
22
+ const steps = route.steps ?? [];
23
+ for (const step of steps) {
24
+ const fn = step.fn;
25
+ if (typeof fn !== 'function') {
26
+ throw new Error('Route step has an unresolved dependency (GuardDef) — ' +
27
+ 'route steps must be resolved before execution. ' +
28
+ 'Ensure the route is registered via createController.');
29
+ }
30
+ if (step.type === 'use') {
31
+ const additions = await fn(ctx);
32
+ Object.assign(ctx, additions);
33
+ }
34
+ else {
35
+ const stop = createStopFn();
36
+ ctx.stop = stop;
37
+ const result = await fn(ctx);
38
+ delete ctx.stop;
39
+ if (isStop(result) || result === false) {
40
+ return false;
41
+ }
42
+ }
43
+ }
44
+ return true;
45
+ }
46
+ /**
47
+ * Execute a route with the given context.
48
+ * Steps run sequentially in declaration order.
49
+ *
50
+ * @param route - The finalized route definition (steps must be resolved, not GuardDefs)
51
+ * @param ctx - Initial context (protocol provides res, req, params, etc.)
52
+ * @returns `true` if all steps passed and the handler ran, `false` if a guard stopped execution.
53
+ */
54
+ export async function executeRoute(route, ctx) {
55
+ const passed = await executeSteps(route, ctx);
56
+ if (!passed)
57
+ return false;
58
+ // All steps passed - run handler
59
+ await route.handler(ctx);
60
+ return true;
61
+ }
62
+ //# sourceMappingURL=execute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/builder/execute.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAQjD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAqC,EACrC,GAA4B;IAE5B,0EAA0E;IACzE,GAAW,CAAC,OAAO,GAAG,KAAK,CAAC;IAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,uDAAuD;gBACvD,iDAAiD;gBACjD,sDAAsD,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,MAAO,EAAwB,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;YAC3B,GAAW,CAAC,IAAI,GAAG,IAAI,CAAC;YACzB,MAAM,MAAM,GAAG,MAAO,EAAwB,CAAC,GAAU,CAAC,CAAC;YAC3D,OAAQ,GAAW,CAAC,IAAI,CAAC;YACzB,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAsB,EACtB,GAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,iCAAiC;IACjC,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Feature Builder V2
3
+ *
4
+ * Fluent builder for creating features with type-safe requirement tracking.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const AuthFeature = createFeatureBuilder()
9
+ * .name('auth')
10
+ * .requires(ModelRepository.of(User))
11
+ * .requires(ModelRepository.of(Session))
12
+ * .onStart(async ({ resolve }) => {
13
+ * const auth = resolve(AuthService)
14
+ * await auth.initialize()
15
+ * })
16
+ * .provides((b) => b
17
+ * .add(AuthService)
18
+ * .add(AuthController)
19
+ * )
20
+ * ```
21
+ */
22
+ import type { Builder, AnyToken, FeatureToken, FeatureMetadata, StartHook, StopHook } from './types.js';
23
+ /**
24
+ * Fluent builder for creating features.
25
+ *
26
+ * Each `.requires()` call accumulates the requirement in the phantom type,
27
+ * enabling TypeScript to track what the feature needs.
28
+ *
29
+ * When requiring another Feature, that feature's provides become available
30
+ * to use in your `.provides()` callback.
31
+ *
32
+ * @typeParam TRequires - Tuple of required tokens (accumulated)
33
+ * @typeParam TAvailable - Tuple of tokens available from required features
34
+ */
35
+ export interface FeatureBuilder<TRequires extends AnyToken[] = [], TAvailable extends AnyToken[] = []> {
36
+ /**
37
+ * Declare a dependency on a token or feature.
38
+ *
39
+ * The token must be provided before this feature is added to a builder.
40
+ * When requiring a Feature, that feature's provides become available.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * createFeatureBuilder()
45
+ * .requires(ModelRepository.of(User))
46
+ * .requires(PgClient)
47
+ * .requires(DatabaseFeature) // DatabaseFeature's provides are now available
48
+ * ```
49
+ */
50
+ requires<T extends AnyToken>(token: T): T extends FeatureToken<any, infer TFeatureProv extends AnyToken[]> ? FeatureBuilder<[...TRequires, T], [...TAvailable, ...TFeatureProv]> : FeatureBuilder<[...TRequires, T], TAvailable>;
51
+ /**
52
+ * Set a human-readable name for this feature.
53
+ *
54
+ * Used in error messages and debugging.
55
+ */
56
+ name(name: string): FeatureBuilder<TRequires, TAvailable>;
57
+ /**
58
+ * Add a lifecycle hook called when the cluster starts.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * .onStart(async ({ resolve }) => {
63
+ * const db = resolve(PgClient)
64
+ * await db.connect()
65
+ * })
66
+ * ```
67
+ */
68
+ onStart(hook: StartHook): FeatureBuilder<TRequires, TAvailable>;
69
+ /**
70
+ * Add a lifecycle hook called when the cluster stops.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * .onStop(async () => {
75
+ * await cleanup()
76
+ * })
77
+ * ```
78
+ */
79
+ onStop(hook: StopHook): FeatureBuilder<TRequires, TAvailable>;
80
+ /**
81
+ * Define what this feature provides.
82
+ *
83
+ * The callback receives a builder that has all required tokens available
84
+ * (including provides from required features), and returns a builder with
85
+ * the provided components added.
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * .provides((b) => b
90
+ * .add(AuthService)
91
+ * .add(AuthController)
92
+ * )
93
+ * ```
94
+ */
95
+ provides<TProvides extends AnyToken[]>(fn: (builder: Builder<[...TRequires, ...TAvailable]>) => Builder<[...TRequires, ...TAvailable, ...TProvides]>): FeatureToken<TRequires, TProvides>;
96
+ }
97
+ /**
98
+ * Create a new feature builder.
99
+ *
100
+ * Features are reusable bundles of services and controllers that can be
101
+ * added to a cluster. They declare their requirements via `.requires()`
102
+ * and what they provide via `.provides()`.
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * // Simple feature with no requirements
107
+ * const LoggingFeature = createFeatureBuilder()
108
+ * .provides((b) => b.add(LoggerService))
109
+ *
110
+ * // Feature with requirements
111
+ * const AuthFeature = createFeatureBuilder()
112
+ * .name('auth')
113
+ * .requires(ModelRepository.of(User))
114
+ * .requires(ModelRepository.of(Session))
115
+ * .provides((b) => b
116
+ * .add(AuthService)
117
+ * .add(SessionService)
118
+ * .add(AuthController)
119
+ * )
120
+ *
121
+ * // Feature with lifecycle hooks
122
+ * const DatabaseFeature = createFeatureBuilder()
123
+ * .name('database')
124
+ * .onStart(async ({ resolve }) => {
125
+ * const client = resolve(PgClient)
126
+ * await client.connect()
127
+ * })
128
+ * .onStop(async () => {
129
+ * // cleanup
130
+ * })
131
+ * .provides((b) => b.add(PgClient))
132
+ * ```
133
+ */
134
+ export declare function createFeatureBuilder(): FeatureBuilder<[], []>;
135
+ /**
136
+ * Get the metadata from a feature token.
137
+ */
138
+ export declare function getFeatureMetadata(feature: FeatureToken<any, any>): FeatureMetadata;
139
+ /**
140
+ * Get the requirements from a feature token.
141
+ */
142
+ export declare function getFeatureRequirements(feature: FeatureToken<any, any>): AnyToken[];
143
+ /**
144
+ * Get the name from a feature token.
145
+ */
146
+ export declare function getFeatureName(feature: FeatureToken<any, any>): string | undefined;
147
+ //# sourceMappingURL=feature-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-builder.d.ts","sourceRoot":"","sources":["../../src/builder/feature-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,SAAS,EACT,QAAQ,EACT,MAAM,YAAY,CAAC;AAOpB;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc,CAC7B,SAAS,SAAS,QAAQ,EAAE,GAAG,EAAE,EACjC,UAAU,SAAS,QAAQ,EAAE,GAAG,EAAE;IAElC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,CAAC,SAAS,QAAQ,EACzB,KAAK,EAAE,CAAC,GACP,CAAC,SAAS,YAAY,CAAC,GAAG,EAAE,MAAM,YAAY,SAAS,QAAQ,EAAE,CAAC,GACjE,cAAc,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC,GACnE,cAAc,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAEjD;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAEzD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAE/D;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAE7D;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,SAAS,SAAS,QAAQ,EAAE,EACnC,EAAE,EAAE,CACF,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,KAC5C,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC,GACxD,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CACtC;AAyFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAE7D;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAC9B,eAAe,CAEjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAC9B,QAAQ,EAAE,CAEZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAC9B,MAAM,GAAG,SAAS,CAEpB"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Feature Builder V2
3
+ *
4
+ * Fluent builder for creating features with type-safe requirement tracking.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const AuthFeature = createFeatureBuilder()
9
+ * .name('auth')
10
+ * .requires(ModelRepository.of(User))
11
+ * .requires(ModelRepository.of(Session))
12
+ * .onStart(async ({ resolve }) => {
13
+ * const auth = resolve(AuthService)
14
+ * await auth.initialize()
15
+ * })
16
+ * .provides((b) => b
17
+ * .add(AuthService)
18
+ * .add(AuthController)
19
+ * )
20
+ * ```
21
+ */
22
+ import { FEATURE_TOKEN, FEATURE_META } from './types.js';
23
+ /**
24
+ * Feature builder implementation.
25
+ */
26
+ class FeatureBuilderImpl {
27
+ state;
28
+ constructor(state = { requires: [] }) {
29
+ this.state = state;
30
+ }
31
+ requires(token) {
32
+ return new FeatureBuilderImpl({
33
+ ...this.state,
34
+ requires: [...this.state.requires, token],
35
+ });
36
+ }
37
+ name(name) {
38
+ return new FeatureBuilderImpl({
39
+ ...this.state,
40
+ name,
41
+ });
42
+ }
43
+ onStart(hook) {
44
+ return new FeatureBuilderImpl({
45
+ ...this.state,
46
+ onStart: hook,
47
+ });
48
+ }
49
+ onStop(hook) {
50
+ return new FeatureBuilderImpl({
51
+ ...this.state,
52
+ onStop: hook,
53
+ });
54
+ }
55
+ provides(fn) {
56
+ const metadata = {
57
+ name: this.state.name,
58
+ requires: this.state.requires,
59
+ onStart: this.state.onStart,
60
+ onStop: this.state.onStop,
61
+ };
62
+ // Create the feature function
63
+ const feature = ((builder) => {
64
+ return fn(builder);
65
+ });
66
+ // Attach metadata
67
+ Object.defineProperties(feature, {
68
+ [FEATURE_TOKEN]: { value: true, enumerable: false },
69
+ [FEATURE_META]: { value: metadata, enumerable: false },
70
+ });
71
+ return feature;
72
+ }
73
+ }
74
+ // ============================================================================
75
+ // Factory Function
76
+ // ============================================================================
77
+ /**
78
+ * Create a new feature builder.
79
+ *
80
+ * Features are reusable bundles of services and controllers that can be
81
+ * added to a cluster. They declare their requirements via `.requires()`
82
+ * and what they provide via `.provides()`.
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * // Simple feature with no requirements
87
+ * const LoggingFeature = createFeatureBuilder()
88
+ * .provides((b) => b.add(LoggerService))
89
+ *
90
+ * // Feature with requirements
91
+ * const AuthFeature = createFeatureBuilder()
92
+ * .name('auth')
93
+ * .requires(ModelRepository.of(User))
94
+ * .requires(ModelRepository.of(Session))
95
+ * .provides((b) => b
96
+ * .add(AuthService)
97
+ * .add(SessionService)
98
+ * .add(AuthController)
99
+ * )
100
+ *
101
+ * // Feature with lifecycle hooks
102
+ * const DatabaseFeature = createFeatureBuilder()
103
+ * .name('database')
104
+ * .onStart(async ({ resolve }) => {
105
+ * const client = resolve(PgClient)
106
+ * await client.connect()
107
+ * })
108
+ * .onStop(async () => {
109
+ * // cleanup
110
+ * })
111
+ * .provides((b) => b.add(PgClient))
112
+ * ```
113
+ */
114
+ export function createFeatureBuilder() {
115
+ return new FeatureBuilderImpl();
116
+ }
117
+ // ============================================================================
118
+ // Feature Utilities
119
+ // ============================================================================
120
+ /**
121
+ * Get the metadata from a feature token.
122
+ */
123
+ export function getFeatureMetadata(feature) {
124
+ return feature[FEATURE_META];
125
+ }
126
+ /**
127
+ * Get the requirements from a feature token.
128
+ */
129
+ export function getFeatureRequirements(feature) {
130
+ return feature[FEATURE_META].requires;
131
+ }
132
+ /**
133
+ * Get the name from a feature token.
134
+ */
135
+ export function getFeatureName(feature) {
136
+ return feature[FEATURE_META].name;
137
+ }
138
+ //# sourceMappingURL=feature-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-builder.js","sourceRoot":"","sources":["../../src/builder/feature-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAUH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA8GzD;;GAEG;AACH,MAAM,kBAAkB;IAKF;IAApB,YAAoB,QAA6B,EAAE,QAAQ,EAAE,EAAE,EAAE;QAA7C,UAAK,GAAL,KAAK,CAAwC;IAAG,CAAC;IAErE,QAAQ,CACN,KAAQ;QAIR,OAAO,IAAI,kBAAkB,CAAC;YAC5B,GAAG,IAAI,CAAC,KAAK;YACb,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC;SAC1C,CAAQ,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,kBAAkB,CAAC;YAC5B,GAAG,IAAI,CAAC,KAAK;YACb,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAe;QACrB,OAAO,IAAI,kBAAkB,CAAC;YAC5B,GAAG,IAAI,CAAC,KAAK;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAc;QACnB,OAAO,IAAI,kBAAkB,CAAC;YAC5B,GAAG,IAAI,CAAC,KAAK;YACb,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CACN,EAEyD;QAEzD,MAAM,QAAQ,GAAoB;YAChC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;SAC1B,CAAC;QAEF,8BAA8B;QAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,OAA2B,EAAE,EAAE;YAC/C,OAAO,EAAE,CAAC,OAAc,CAAC,CAAC;QAC5B,CAAC,CAAkD,CAAC;QAEpD,kBAAkB;QAClB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC/B,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;YACnD,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;SACvD,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA+B;IAE/B,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA+B;IAE/B,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA+B;IAE/B,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Builder V2 Module
3
+ *
4
+ * Fluent builder API for creating apps with type-safe dependency tracking.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import JustScale, { bindRepository } from '@justscale/core'
9
+ * import { ModelRepository } from '@justscale/core/models'
10
+ *
11
+ * const app = JustScale()
12
+ * .add(PgClient)
13
+ * .add(bindRepository(ModelRepository.of(User), PgUser))
14
+ * .add(UserService)
15
+ * .build()
16
+ * ```
17
+ */
18
+ export type { Token, AnyToken, Component, Builder, BuiltCluster, ServeOptions, RepositoryBinding, ServiceBinding, InstanceBinding, FeatureToken, FeatureMetadata, BuilderCallback, StartHook, StopHook, ProvidesOf, RequiresOf, RemoveFromTuple, } from './types.js';
19
+ export { isServiceDef, isControllerDef, isRepositoryBinding, isServiceBinding, isInstanceBinding, isFeatureToken, isBuilderCallback, isComponentArray, FEATURE_TOKEN, FEATURE_META, REPO_BINDING, SERVICE_BINDING, INSTANCE_BINDING, } from './types.js';
20
+ export { bindRepository, bindService, bindInstance } from './builder.js';
21
+ export { createFeatureBuilder, getFeatureMetadata, getFeatureRequirements, getFeatureName, } from './feature-builder.js';
22
+ export type { FeatureBuilder } from './feature-builder.js';
23
+ export { DependencyError, validateDependencies, buildDependencyGraph, findMissingDependencies, getTokenDescription, registerPluginProvides, getPluginProvides, registerImplicitService, getImplicitServices, } from './validation.js';
24
+ export type { MissingDependency, DependencyGraph, } from './validation.js';
25
+ export { topologicalSort, CycleError, } from './sort.js';
26
+ export type { Stop } from './stop.js';
27
+ export { isStop, createStopFn } from './stop.js';
28
+ export type { ExtractMiddlewareAdded, ExtractAddedFromMiddleware, ExtractStepDeps, ResponseEntry, ExtractStatuses, ExtractBodyForStatus, Step, UnresolvedStep, RouteDef, RouteBuilder, BuilderPlugin, PermissionDefLike, PermOf, BodyOf, NameOf, PermEntries, ToPermissionVariant, PermissionVariants, } from './types.js';
29
+ export { PLUGIN_SYMBOL, isPlugin, createPlugin } from './plugin.js';
30
+ export type { BuilderState } from './create-builder.js';
31
+ export { createBuilderState, createBaseBuilder } from './create-builder.js';
32
+ export { executeRoute, executeSteps } from './execute.js';
33
+ export { query } from './plugins/query.js';
34
+ export { ValidationErrorSchema } from './plugins/validation.js';
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EACV,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,eAAe,EACf,SAAS,EACT,QAAQ,EACR,UAAU,EACV,UAAU,EACV,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGzE,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,iBAAiB,EACjB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,eAAe,EACf,UAAU,GACX,MAAM,WAAW,CAAC;AAGnB,YAAY,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGjD,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,EACf,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,aAAa,EAEb,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGpE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}