@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,282 @@
1
+ /**
2
+ * Observability System
3
+ *
4
+ * Provides logging, context propagation, and extensibility hooks for
5
+ * OpenTelemetry, Datadog, or other observability platforms.
6
+ *
7
+ * Features:
8
+ * - Async context propagation via AsyncLocalStorage
9
+ * - Instrumentation hooks for traces, metrics, custom integrations
10
+ * - Structured logging with attributes
11
+ * - Automatic request context (requestId, route, etc.)
12
+ */
13
+ /**
14
+ * Context data that propagates through the async tree.
15
+ * Used by loggers, traces, and metrics.
16
+ *
17
+ * Standard fields (set automatically by the framework):
18
+ * - requestId: Unique ID for the current request
19
+ * - route: Route name being handled
20
+ * - method: HTTP method
21
+ * - path: Request path
22
+ *
23
+ * Observability vendors (OpenTelemetry, Datadog, etc.) typically add their
24
+ * own fields like traceId, spanId via the string or symbol index signatures.
25
+ *
26
+ * You can add custom fields via runWithContext or logger.withContext.
27
+ */
28
+ export interface ObservabilityContext {
29
+ /** Unique request identifier */
30
+ requestId?: string;
31
+ /** Custom string-keyed data */
32
+ [key: string]: unknown;
33
+ /** Private data (symbol keys avoid naming conflicts between vendors) */
34
+ [key: symbol]: unknown;
35
+ }
36
+ /**
37
+ * Get the current observability context.
38
+ * Returns an empty object if no context is set.
39
+ */
40
+ export declare function getContext(): ObservabilityContext;
41
+ /**
42
+ * Capture the current context for later use in span linking.
43
+ * Use this when you need to link a new async tree back to the current one.
44
+ *
45
+ * @example Event publishing with trace linking
46
+ * ```typescript
47
+ * // In HTTP handler - capture context before publishing event
48
+ * const sourceContext = captureContext("caused_by");
49
+ *
50
+ * // Publish event with the captured context
51
+ * await eventBus.publish("order.created", {
52
+ * orderId: "123",
53
+ * _traceContext: sourceContext, // Pass along for linking
54
+ * });
55
+ *
56
+ * // In event handler - use captured context to link spans
57
+ * await runInScopeAsync(
58
+ * {
59
+ * type: "handler",
60
+ * name: "order.created",
61
+ * links: [event._traceContext], // Links back to HTTP request span
62
+ * },
63
+ * {},
64
+ * async () => { ... }
65
+ * );
66
+ * ```
67
+ */
68
+ export declare function captureContext(relationship?: LinkedContext['relationship']): LinkedContext;
69
+ /**
70
+ * Run a function with additional context.
71
+ * The context is merged with any existing context and propagates
72
+ * through the entire async tree.
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // Add user context after authentication
77
+ * runWithContext({ userId: user.id, tenantId: user.tenantId }, async () => {
78
+ * // All logs, traces, metrics in this tree include userId + tenantId
79
+ * await processRequest();
80
+ * });
81
+ * ```
82
+ */
83
+ export declare function runWithContext<T>(context: ObservabilityContext, fn: () => T): T;
84
+ /**
85
+ * Enter a context scope using the `using` keyword.
86
+ * The context is merged with existing context and automatically
87
+ * restored when the scope exits.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * // Add user context after authentication
92
+ * using _ = withContext({ userId: user.id, tenantId: user.tenantId });
93
+ * // All logs, traces, metrics include userId + tenantId
94
+ * await processRequest();
95
+ * // Context automatically restored when scope exits
96
+ * ```
97
+ *
98
+ * @example Nested contexts
99
+ * ```typescript
100
+ * using _ = withContext({ requestId: "req-123" });
101
+ * logger.info("Starting"); // has requestId
102
+ *
103
+ * {
104
+ * using _ = withContext({ userId: "user-456" });
105
+ * logger.info("Processing"); // has requestId AND userId
106
+ * }
107
+ *
108
+ * logger.info("Done"); // only has requestId
109
+ * ```
110
+ */
111
+ export declare function withContext(context: ObservabilityContext): Disposable;
112
+ /** Log levels (trace is most verbose, error is least) */
113
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error';
114
+ /** Current minimum log level. Read cheap, no allocation. */
115
+ export declare function getMinLogLevel(): LogLevel;
116
+ /** Override the minimum log level at runtime. Takes effect on the next log call. */
117
+ export declare function setMinLogLevel(level: LogLevel): void;
118
+ /**
119
+ * A captured trace context that can be used to link spans across async boundaries.
120
+ * Used when a new scope is spawned from another (e.g., event handler triggered by HTTP request).
121
+ */
122
+ export interface LinkedContext {
123
+ /** The observability context from the originating scope */
124
+ context: ObservabilityContext;
125
+ /** Relationship type for the link */
126
+ relationship?: 'caused_by' | 'follows_from' | 'related';
127
+ }
128
+ /**
129
+ * Information about the current scope (request, handler, etc.)
130
+ */
131
+ export interface ScopeInfo {
132
+ /** Type of scope */
133
+ type: 'request' | 'middleware' | 'guard' | 'handler' | 'custom';
134
+ /** Name of the scope (route name, middleware name, etc.) */
135
+ name: string;
136
+ /** Additional attributes */
137
+ attributes?: Record<string, unknown>;
138
+ /**
139
+ * Links to related contexts from other async trees.
140
+ * Used for distributed tracing when a scope is spawned from another
141
+ * (e.g., event handler triggered by an HTTP request).
142
+ */
143
+ links?: LinkedContext[];
144
+ }
145
+ /**
146
+ * Instrumentation interface for observability extensions.
147
+ *
148
+ * Implement this to integrate with any observability system:
149
+ * metrics, tracing (OpenTelemetry, Datadog), custom logging, etc.
150
+ *
151
+ * @example Simple metrics instrumentation
152
+ * ```typescript
153
+ * const metricsInstrumentation: Instrumentation = {
154
+ * name: "metrics",
155
+ *
156
+ * onScopeEnd(context, info, error) {
157
+ * if (info.type === "request") {
158
+ * metrics.increment("http.requests.total", {
159
+ * route: info.name,
160
+ * status: error ? "error" : "success",
161
+ * });
162
+ * }
163
+ * },
164
+ * };
165
+ *
166
+ * registerInstrumentation(metricsInstrumentation);
167
+ * ```
168
+ *
169
+ * @example OpenTelemetry integration (see @justscale/feature-otel)
170
+ * ```typescript
171
+ * import { otelFeature } from "@justscale/feature-otel";
172
+ *
173
+ * // Add to your app features for automatic tracing
174
+ * const app = createStandaloneApp({
175
+ * features: [otelFeature({ serviceName: "my-api" })],
176
+ * });
177
+ * ```
178
+ */
179
+ export interface Instrumentation {
180
+ /** Unique name for this instrumentation */
181
+ name: string;
182
+ /**
183
+ * Called when a new scope starts (request, middleware, etc.)
184
+ * Can return modified context to add trace IDs, span references, etc.
185
+ */
186
+ onScopeStart?(context: ObservabilityContext, info: ScopeInfo): ObservabilityContext | void;
187
+ /**
188
+ * Called when a scope ends.
189
+ * Use this to end spans, record metrics, etc.
190
+ */
191
+ onScopeEnd?(context: ObservabilityContext, info: ScopeInfo, error?: Error): void;
192
+ /**
193
+ * Called on each log statement.
194
+ * Use this to forward logs to external systems or add to trace spans.
195
+ */
196
+ onLog?(level: LogLevel, message: string, attributes: Record<string, unknown>, context: ObservabilityContext): void;
197
+ }
198
+ /**
199
+ * Register an instrumentation for observability hooks.
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * registerInstrumentation({
204
+ * name: "custom-metrics",
205
+ * onScopeEnd(context, info) {
206
+ * if (info.type === "request") {
207
+ * metrics.recordRequestDuration(info.name, Date.now() - context.startTime);
208
+ * }
209
+ * },
210
+ * });
211
+ * ```
212
+ */
213
+ export declare function registerInstrumentation(instrumentation: Instrumentation): void;
214
+ /**
215
+ * Remove a registered instrumentation by name.
216
+ */
217
+ export declare function unregisterInstrumentation(name: string): boolean;
218
+ /**
219
+ * Get all registered instrumentations (for testing).
220
+ */
221
+ export declare function getInstrumentations(): readonly Instrumentation[];
222
+ /**
223
+ * Run a function within a named scope.
224
+ * Notifies all instrumentations and handles errors properly.
225
+ *
226
+ * @internal Used by app.ts for request/middleware/handler scopes
227
+ */
228
+ export declare function runInScope<T>(info: ScopeInfo, baseContext: ObservabilityContext, fn: () => T): T;
229
+ /**
230
+ * Async version of runInScope.
231
+ * @internal
232
+ */
233
+ export declare function runInScopeAsync<T>(info: ScopeInfo, baseContext: ObservabilityContext, fn: () => Promise<T>): Promise<T>;
234
+ /**
235
+ * Log attributes for structured logging.
236
+ */
237
+ export type LogAttributes = Record<string, unknown>;
238
+ /**
239
+ * Abstract Logger - use as DI token. Built-in service automatically
240
+ * available to all services and handlers.
241
+ */
242
+ export declare abstract class Logger {
243
+ abstract trace(message: string, attributes?: LogAttributes): void;
244
+ abstract debug(message: string, attributes?: LogAttributes): void;
245
+ abstract info(message: string, attributes?: LogAttributes): void;
246
+ abstract warn(message: string, attributes?: LogAttributes): void;
247
+ abstract error(message: string, attributes?: LogAttributes): void;
248
+ abstract child(name: string): Logger;
249
+ withContext<T>(context: ObservabilityContext, fn: () => T): T;
250
+ }
251
+ /**
252
+ * Factory for creating Logger instances with context.
253
+ * Implement this to use a custom logger (Pino, Winston, etc.)
254
+ */
255
+ export interface LoggerFactory {
256
+ create(name: string): Logger;
257
+ }
258
+ export declare class ConsoleLogger extends Logger {
259
+ private readonly name;
260
+ constructor(name: string);
261
+ private log;
262
+ trace(message: string, attributes?: LogAttributes): void;
263
+ debug(message: string, attributes?: LogAttributes): void;
264
+ info(message: string, attributes?: LogAttributes): void;
265
+ warn(message: string, attributes?: LogAttributes): void;
266
+ error(message: string, attributes?: LogAttributes): void;
267
+ child(childName: string): Logger;
268
+ }
269
+ /**
270
+ * Default logger factory using ConsoleLogger.
271
+ */
272
+ export declare class ConsoleLoggerFactory implements LoggerFactory {
273
+ create(name: string): Logger;
274
+ }
275
+ /**
276
+ * Symbol to identify Logger as a built-in service.
277
+ * Used by Container to detect and special-case Logger resolution.
278
+ */
279
+ export declare const LOGGER_TOKEN: unique symbol;
280
+ /** @internal */
281
+ export declare function isLoggerToken(token: unknown): token is typeof Logger;
282
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,368 @@
1
+ /**
2
+ * Observability System
3
+ *
4
+ * Provides logging, context propagation, and extensibility hooks for
5
+ * OpenTelemetry, Datadog, or other observability platforms.
6
+ *
7
+ * Features:
8
+ * - Async context propagation via AsyncLocalStorage
9
+ * - Instrumentation hooks for traces, metrics, custom integrations
10
+ * - Structured logging with attributes
11
+ * - Automatic request context (requestId, route, etc.)
12
+ */
13
+ import { AsyncLocalStorage } from 'node:async_hooks';
14
+ /**
15
+ * Global async local storage for observability context.
16
+ * All loggers, traces, and metrics read from this.
17
+ */
18
+ const asyncContext = new AsyncLocalStorage();
19
+ /**
20
+ * Get the current observability context.
21
+ * Returns an empty object if no context is set.
22
+ */
23
+ export function getContext() {
24
+ return asyncContext.getStore() ?? {};
25
+ }
26
+ /**
27
+ * Capture the current context for later use in span linking.
28
+ * Use this when you need to link a new async tree back to the current one.
29
+ *
30
+ * @example Event publishing with trace linking
31
+ * ```typescript
32
+ * // In HTTP handler - capture context before publishing event
33
+ * const sourceContext = captureContext("caused_by");
34
+ *
35
+ * // Publish event with the captured context
36
+ * await eventBus.publish("order.created", {
37
+ * orderId: "123",
38
+ * _traceContext: sourceContext, // Pass along for linking
39
+ * });
40
+ *
41
+ * // In event handler - use captured context to link spans
42
+ * await runInScopeAsync(
43
+ * {
44
+ * type: "handler",
45
+ * name: "order.created",
46
+ * links: [event._traceContext], // Links back to HTTP request span
47
+ * },
48
+ * {},
49
+ * async () => { ... }
50
+ * );
51
+ * ```
52
+ */
53
+ export function captureContext(relationship = 'caused_by') {
54
+ return {
55
+ context: { ...getContext() }, // Clone to avoid mutations
56
+ relationship,
57
+ };
58
+ }
59
+ /**
60
+ * Run a function with additional context.
61
+ * The context is merged with any existing context and propagates
62
+ * through the entire async tree.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * // Add user context after authentication
67
+ * runWithContext({ userId: user.id, tenantId: user.tenantId }, async () => {
68
+ * // All logs, traces, metrics in this tree include userId + tenantId
69
+ * await processRequest();
70
+ * });
71
+ * ```
72
+ */
73
+ export function runWithContext(context, fn) {
74
+ const currentContext = getContext();
75
+ const mergedContext = { ...currentContext, ...context };
76
+ // Notify instrumentations of scope start
77
+ const scopeInfo = { type: 'custom', name: 'context' };
78
+ for (const inst of instrumentations) {
79
+ inst.onScopeStart?.(mergedContext, scopeInfo);
80
+ }
81
+ try {
82
+ return asyncContext.run(mergedContext, fn);
83
+ }
84
+ finally {
85
+ // Notify instrumentations of scope end
86
+ for (const inst of instrumentations) {
87
+ inst.onScopeEnd?.(mergedContext, scopeInfo);
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * Enter a context scope using the `using` keyword.
93
+ * The context is merged with existing context and automatically
94
+ * restored when the scope exits.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * // Add user context after authentication
99
+ * using _ = withContext({ userId: user.id, tenantId: user.tenantId });
100
+ * // All logs, traces, metrics include userId + tenantId
101
+ * await processRequest();
102
+ * // Context automatically restored when scope exits
103
+ * ```
104
+ *
105
+ * @example Nested contexts
106
+ * ```typescript
107
+ * using _ = withContext({ requestId: "req-123" });
108
+ * logger.info("Starting"); // has requestId
109
+ *
110
+ * {
111
+ * using _ = withContext({ userId: "user-456" });
112
+ * logger.info("Processing"); // has requestId AND userId
113
+ * }
114
+ *
115
+ * logger.info("Done"); // only has requestId
116
+ * ```
117
+ */
118
+ export function withContext(context) {
119
+ const previousContext = asyncContext.getStore() ?? {};
120
+ const mergedContext = { ...previousContext, ...context };
121
+ // Notify instrumentations of scope start
122
+ const scopeInfo = { type: 'custom', name: 'context' };
123
+ for (const inst of instrumentations) {
124
+ inst.onScopeStart?.(mergedContext, scopeInfo);
125
+ }
126
+ // Enter the new context
127
+ asyncContext.enterWith(mergedContext);
128
+ return {
129
+ [Symbol.dispose]() {
130
+ // Notify instrumentations of scope end
131
+ for (const inst of instrumentations) {
132
+ inst.onScopeEnd?.(mergedContext, scopeInfo);
133
+ }
134
+ // Restore previous context
135
+ asyncContext.enterWith(previousContext);
136
+ },
137
+ };
138
+ }
139
+ /**
140
+ * Numeric order used to compare levels. `trace` is lowest (most
141
+ * verbose) - a log at level X is emitted when `LEVEL_ORDER[X]` is
142
+ * `>= LEVEL_ORDER[minLevel]`.
143
+ */
144
+ const LEVEL_ORDER = {
145
+ trace: 0, debug: 1, info: 2, warn: 3, error: 4,
146
+ };
147
+ /**
148
+ * Process-wide minimum log level. Seeded from `JUSTSCALE_LOG_LEVEL`
149
+ * (`trace|debug|info|warn|error`) or `JUSTSCALE_TRACE=1` for trace.
150
+ */
151
+ let minLogLevel = resolveInitialLogLevel();
152
+ function resolveInitialLogLevel() {
153
+ const explicit = (process.env.JUSTSCALE_LOG_LEVEL ?? '').toLowerCase();
154
+ if (explicit === 'trace' || explicit === 'debug' || explicit === 'info' || explicit === 'warn' || explicit === 'error') {
155
+ return explicit;
156
+ }
157
+ if (process.env.JUSTSCALE_TRACE === '1' || process.env.JUSTSCALE_TRACE === 'true') {
158
+ return 'trace';
159
+ }
160
+ return 'info';
161
+ }
162
+ /** Current minimum log level. Read cheap, no allocation. */
163
+ export function getMinLogLevel() {
164
+ return minLogLevel;
165
+ }
166
+ /** Override the minimum log level at runtime. Takes effect on the next log call. */
167
+ export function setMinLogLevel(level) {
168
+ minLogLevel = level;
169
+ }
170
+ /** Registered instrumentations */
171
+ const instrumentations = [];
172
+ /**
173
+ * Register an instrumentation for observability hooks.
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * registerInstrumentation({
178
+ * name: "custom-metrics",
179
+ * onScopeEnd(context, info) {
180
+ * if (info.type === "request") {
181
+ * metrics.recordRequestDuration(info.name, Date.now() - context.startTime);
182
+ * }
183
+ * },
184
+ * });
185
+ * ```
186
+ */
187
+ export function registerInstrumentation(instrumentation) {
188
+ // Prevent duplicates
189
+ const existing = instrumentations.findIndex((i) => i.name === instrumentation.name);
190
+ if (existing >= 0) {
191
+ instrumentations[existing] = instrumentation;
192
+ }
193
+ else {
194
+ instrumentations.push(instrumentation);
195
+ }
196
+ }
197
+ /**
198
+ * Remove a registered instrumentation by name.
199
+ */
200
+ export function unregisterInstrumentation(name) {
201
+ const index = instrumentations.findIndex((i) => i.name === name);
202
+ if (index >= 0) {
203
+ instrumentations.splice(index, 1);
204
+ return true;
205
+ }
206
+ return false;
207
+ }
208
+ /**
209
+ * Get all registered instrumentations (for testing).
210
+ */
211
+ export function getInstrumentations() {
212
+ return instrumentations;
213
+ }
214
+ // ============================================================================
215
+ // Scope Management (used internally by app.ts)
216
+ // ============================================================================
217
+ /**
218
+ * Run a function within a named scope.
219
+ * Notifies all instrumentations and handles errors properly.
220
+ *
221
+ * @internal Used by app.ts for request/middleware/handler scopes
222
+ */
223
+ export function runInScope(info, baseContext, fn) {
224
+ let context = { ...getContext(), ...baseContext };
225
+ // Let instrumentations modify context (e.g., add span IDs)
226
+ for (const inst of instrumentations) {
227
+ const modified = inst.onScopeStart?.(context, info);
228
+ if (modified)
229
+ context = modified;
230
+ }
231
+ let error;
232
+ try {
233
+ return asyncContext.run(context, fn);
234
+ }
235
+ catch (e) {
236
+ error = e instanceof Error ? e : new Error(String(e));
237
+ throw e;
238
+ }
239
+ finally {
240
+ for (const inst of instrumentations) {
241
+ inst.onScopeEnd?.(context, info, error);
242
+ }
243
+ }
244
+ }
245
+ /**
246
+ * Async version of runInScope.
247
+ * @internal
248
+ */
249
+ export async function runInScopeAsync(info, baseContext, fn) {
250
+ let context = { ...getContext(), ...baseContext };
251
+ // Let instrumentations modify context (e.g., add span IDs)
252
+ for (const inst of instrumentations) {
253
+ const modified = inst.onScopeStart?.(context, info);
254
+ if (modified)
255
+ context = modified;
256
+ }
257
+ let error;
258
+ try {
259
+ return await asyncContext.run(context, fn);
260
+ }
261
+ catch (e) {
262
+ error = e instanceof Error ? e : new Error(String(e));
263
+ throw e;
264
+ }
265
+ finally {
266
+ for (const inst of instrumentations) {
267
+ inst.onScopeEnd?.(context, info, error);
268
+ }
269
+ }
270
+ }
271
+ /**
272
+ * Abstract Logger - use as DI token. Built-in service automatically
273
+ * available to all services and handlers.
274
+ */
275
+ export class Logger {
276
+ withContext(context, fn) {
277
+ return runWithContext(context, fn);
278
+ }
279
+ }
280
+ // ============================================================================
281
+ // Default Console Logger
282
+ // ============================================================================
283
+ export class ConsoleLogger extends Logger {
284
+ name;
285
+ constructor(name) {
286
+ super();
287
+ this.name = name;
288
+ }
289
+ log(level, message, attributes) {
290
+ if (LEVEL_ORDER[level] < LEVEL_ORDER[minLogLevel]) {
291
+ return;
292
+ }
293
+ const ctx = getContext();
294
+ const timestamp = new Date().toISOString();
295
+ // Build context string from observability context
296
+ const ctxEntries = Object.entries(ctx)
297
+ .filter(([k]) => !k.startsWith('_')) // Skip internal fields
298
+ .map(([k, v]) => `${k}=${String(v)}`);
299
+ const ctxStr = ctxEntries.length > 0 ? ` [${ctxEntries.join(' ')}]` : '';
300
+ // Build attributes string
301
+ const attrStr = attributes
302
+ ? ' ' + JSON.stringify(attributes)
303
+ : '';
304
+ const formatted = `[${timestamp}] [${level.toUpperCase()}] [${this.name}]${ctxStr} ${message}${attrStr}`;
305
+ // Output to console
306
+ switch (level) {
307
+ case 'trace':
308
+ console.debug(formatted); // trace goes to debug channel
309
+ break;
310
+ case 'debug':
311
+ console.debug(formatted);
312
+ break;
313
+ case 'info':
314
+ console.info(formatted);
315
+ break;
316
+ case 'warn':
317
+ console.warn(formatted);
318
+ break;
319
+ case 'error':
320
+ console.error(formatted);
321
+ break;
322
+ }
323
+ // Notify instrumentations
324
+ for (const inst of instrumentations) {
325
+ inst.onLog?.(level, message, attributes ?? {}, ctx);
326
+ }
327
+ }
328
+ trace(message, attributes) {
329
+ this.log('trace', message, attributes);
330
+ }
331
+ debug(message, attributes) {
332
+ this.log('debug', message, attributes);
333
+ }
334
+ info(message, attributes) {
335
+ this.log('info', message, attributes);
336
+ }
337
+ warn(message, attributes) {
338
+ this.log('warn', message, attributes);
339
+ }
340
+ error(message, attributes) {
341
+ this.log('error', message, attributes);
342
+ }
343
+ child(childName) {
344
+ return new ConsoleLogger(`${this.name}:${childName}`);
345
+ }
346
+ }
347
+ /**
348
+ * Default logger factory using ConsoleLogger.
349
+ */
350
+ export class ConsoleLoggerFactory {
351
+ create(name) {
352
+ return new ConsoleLogger(name);
353
+ }
354
+ }
355
+ // ============================================================================
356
+ // Built-in Token Marker
357
+ // ============================================================================
358
+ /**
359
+ * Symbol to identify Logger as a built-in service.
360
+ * Used by Container to detect and special-case Logger resolution.
361
+ */
362
+ export const LOGGER_TOKEN = Symbol('justscale:Logger');
363
+ Logger[LOGGER_TOKEN] = true;
364
+ /** @internal */
365
+ export function isLoggerToken(token) {
366
+ return token === Logger || token?.[LOGGER_TOKEN] === true;
367
+ }
368
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}