@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,146 @@
1
+ /**
2
+ * ModelRepository - Abstract Repository with Token System
3
+ *
4
+ * Base class for data access that works with the query system.
5
+ * Implementations (Postgres, SQLite, Memory) extend this.
6
+ *
7
+ * Key features:
8
+ * - ModelRepository<T> is the abstract contract for CRUD operations
9
+ * - ModelRepository.of(Model) creates a DI token for injection
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // Get a token for dependency injection
14
+ * const userRepoToken = ModelRepository.of(User);
15
+ *
16
+ * // Domain service depends on the token
17
+ * const UserService = defineService({
18
+ * inject: { users: ModelRepository.of(User) },
19
+ * factory: ({ users }) => ({
20
+ * async findByEmail(email: string) {
21
+ * return users.findOne(User.fields.email.eq(email));
22
+ * },
23
+ * }),
24
+ * });
25
+ * ```
26
+ */
27
+ import { MODEL_STABLE_ID } from './define-model.js';
28
+ import { Repository, REPO_TOKEN } from './repository.js';
29
+ import { MODEL_REPO_MODEL, MODEL_REPO_CONTRACT } from './symbols.js';
30
+ // Re-export for convenience
31
+ export { MODEL_REPO_MODEL, MODEL_REPO_CONTRACT };
32
+ /**
33
+ * Abstract repository for model data access.
34
+ *
35
+ * Extends the generic Repository from core with model-specific operations
36
+ * like find, get, insert, update, delete, and query support.
37
+ *
38
+ * Implementations can be created for PostgreSQL, SQLite, in-memory, etc.
39
+ *
40
+ * @typeParam T - The entity type this repository manages
41
+ */
42
+ export class ModelRepository extends Repository {
43
+ /**
44
+ * Check if any entity matches the condition.
45
+ */
46
+ async exists(where) {
47
+ const count = await this.count(where);
48
+ return count > 0;
49
+ }
50
+ // ─────────────────────────────────────────────────────────────────────────
51
+ // Static Token Factory
52
+ // ─────────────────────────────────────────────────────────────────────────
53
+ /**
54
+ * Get a DI token for a model's repository.
55
+ *
56
+ * Tokens are memoized - same model always returns same token object.
57
+ * This enables object identity comparison for DI container lookups.
58
+ *
59
+ * If the model has a repository contract (via .withRepository()), the token
60
+ * type includes those custom methods.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const token = ModelRepository.of(User);
65
+ *
66
+ * // Same model = same token (object identity)
67
+ * ModelRepository.of(User) === ModelRepository.of(User) // true
68
+ *
69
+ * // Different models = different tokens
70
+ * ModelRepository.of(User) === ModelRepository.of(Post) // false
71
+ *
72
+ * // With custom contract
73
+ * const UserWithRepo = User.withRepository<{
74
+ * findByEmail(email: string): Promise<User | null>;
75
+ * }>();
76
+ * const token = ModelRepository.of(UserWithRepo);
77
+ * // token type includes findByEmail method
78
+ * ```
79
+ */
80
+ // biome-ignore lint/suspicious/noExplicitAny: Using any to avoid variance issues
81
+ static of(model) {
82
+ // biome-ignore lint/suspicious/noExplicitAny: Dynamic token creation
83
+ return getOrCreateToken(model);
84
+ }
85
+ }
86
+ // ============================================================================
87
+ // Token Registry (WeakMap for memoization)
88
+ // ============================================================================
89
+ // biome-ignore lint/suspicious/noExplicitAny: Internal registry uses any
90
+ const tokenRegistry = new WeakMap();
91
+ // Secondary index by stable ID - two classes with the same stable ID (e.g. after HMR)
92
+ // resolve to the same token without any special-casing.
93
+ // biome-ignore lint/suspicious/noExplicitAny: dynamic token type
94
+ const tokenRegistryByStableId = new Map();
95
+ function getOrCreateToken(model) {
96
+ const stableId = model[MODEL_STABLE_ID];
97
+ if (stableId) {
98
+ const cached = tokenRegistryByStableId.get(stableId);
99
+ if (cached) {
100
+ // Fresh class ref with same stable ID - update token's model
101
+ // slot so reads see the current class's fields / metadata.
102
+ if (cached[MODEL_REPO_MODEL] !== model) {
103
+ Object.defineProperty(cached, MODEL_REPO_MODEL, {
104
+ value: model,
105
+ enumerable: false,
106
+ writable: true,
107
+ configurable: true,
108
+ });
109
+ }
110
+ return cached;
111
+ }
112
+ }
113
+ let token = tokenRegistry.get(model);
114
+ if (!token) {
115
+ const description = `ModelRepository<${model.name}>`;
116
+ // biome-ignore lint/suspicious/noExplicitAny: Token creation is dynamic
117
+ token = Object.create(null);
118
+ Object.defineProperties(token, {
119
+ [REPO_TOKEN]: { value: true, enumerable: false },
120
+ [MODEL_REPO_MODEL]: { value: model, enumerable: false, writable: true, configurable: true },
121
+ description: { value: description, enumerable: true },
122
+ toString: { value: () => description, enumerable: false },
123
+ });
124
+ // Intentionally NOT frozen: `MODEL_REPO_MODEL` must stay writable
125
+ // so a fresh class ref with the same stable ID can swap its
126
+ // internal model target without losing token identity.
127
+ tokenRegistry.set(model, token);
128
+ if (stableId)
129
+ tokenRegistryByStableId.set(stableId, token);
130
+ }
131
+ else if (stableId && !tokenRegistryByStableId.has(stableId)) {
132
+ tokenRegistryByStableId.set(stableId, token);
133
+ }
134
+ return token;
135
+ }
136
+ /**
137
+ * Check if a value is a ModelRepository token.
138
+ */
139
+ export function isModelRepositoryToken(value) {
140
+ return (typeof value === 'object' &&
141
+ value !== null &&
142
+ REPO_TOKEN in value &&
143
+ value[REPO_TOKEN] === true &&
144
+ MODEL_REPO_MODEL in value);
145
+ }
146
+ //# sourceMappingURL=model.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.repository.js","sourceRoot":"","sources":["../../src/models/model.repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,EAAa,eAAe,EAAuC,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMrE,4BAA4B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;AA8CjD;;;;;;;;;GASG;AACH,MAAM,OAAgB,eAAmB,SAAQ,UAAa;IA2D5D;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAgB;QAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAwLD,4EAA4E;IAC5E,uBAAuB;IACvB,4EAA4E;IAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,iFAAiF;IACjF,MAAM,CAAC,EAAE,CACP,KAAQ;QAER,qEAAqE;QACrE,OAAO,gBAAgB,CAAC,KAAK,CAAQ,CAAC;IACxC,CAAC;CACF;AAED,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAE/E,yEAAyE;AACzE,MAAM,aAAa,GAAG,IAAI,OAAO,EAAuC,CAAC;AAEzE,sFAAsF;AACtF,wDAAwD;AACxD,iEAAiE;AACjE,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAqC,CAAC;AAE7E,SAAS,gBAAgB,CAAI,KAAe;IAC1C,MAAM,QAAQ,GAAI,KAA4C,CAAC,eAAe,CAAuB,CAAC;IAEtG,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,6DAA6D;YAC7D,2DAA2D;YAC3D,IAAK,MAA6C,CAAC,gBAAgB,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC/E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE;oBAC9C,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,IAAI;oBACd,YAAY,EAAE,IAAI;iBACnB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,mBAAmB,KAAK,CAAC,IAAI,GAAG,CAAC;QAErD,wEAAwE;QACxE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAA8B,CAAC;QACzD,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAC7B,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;YAChD,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YAC3F,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE;YACrD,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE;SAC1D,CAAC,CAAC;QAEH,kEAAkE;QAClE,4DAA4D;QAC5D,uDAAuD;QAEvD,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,QAAQ;YAAE,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,QAAQ,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,uBAAuB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,UAAU,IAAI,KAAK;QAClB,KAAa,CAAC,UAAU,CAAC,KAAK,IAAI;QACnC,gBAAgB,IAAI,KAAK,CAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Observable, ObservableInternals } from './types.js';
2
+ /**
3
+ * Create a standalone observable object with dirty tracking.
4
+ * Can be used independently or passed into models.
5
+ */
6
+ export declare function createObservable<T extends object>(data: T): Observable<T>;
7
+ /**
8
+ * Get the internals of an observable
9
+ */
10
+ export declare function getObservableInternals<T extends object>(observable: Observable<T>): ObservableInternals;
11
+ /**
12
+ * Check if a value is an observable
13
+ */
14
+ export declare function isObservable<T extends object>(value: unknown): value is Observable<T>;
15
+ //# sourceMappingURL=observable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/models/observable.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAoBlE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAkCzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GACxB,mBAAmB,CAErB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAErF"}
@@ -0,0 +1,64 @@
1
+ import { createTrackedProxy } from './proxy.js';
2
+ import { OBSERVABLE_META } from './symbols.js';
3
+ // Deep traverse to ensure all nested objects are proxied
4
+ function deepTraverse(obj, visited = new WeakSet()) {
5
+ if (obj === null || typeof obj !== 'object')
6
+ return;
7
+ if (visited.has(obj))
8
+ return;
9
+ visited.add(obj);
10
+ if (Array.isArray(obj)) {
11
+ for (let i = 0; i < obj.length; i++) {
12
+ deepTraverse(obj[i], visited);
13
+ }
14
+ }
15
+ else {
16
+ for (const key of Object.keys(obj)) {
17
+ deepTraverse(obj[key], visited);
18
+ }
19
+ }
20
+ }
21
+ /**
22
+ * Create a standalone observable object with dirty tracking.
23
+ * Can be used independently or passed into models.
24
+ */
25
+ export function createObservable(data) {
26
+ const dirty = new Set();
27
+ // Create the root proxy
28
+ const proxy = createTrackedProxy(data, [], dirty);
29
+ // Traverse to ensure all nested objects are proxied upfront
30
+ deepTraverse(proxy);
31
+ const internals = {
32
+ dirty,
33
+ markClean() {
34
+ dirty.clear();
35
+ },
36
+ isDirty() {
37
+ return dirty.size > 0;
38
+ },
39
+ getDirtyPaths() {
40
+ return [...dirty];
41
+ },
42
+ };
43
+ // Attach internals to the underlying object
44
+ Object.defineProperty(data, OBSERVABLE_META, {
45
+ value: internals,
46
+ enumerable: false,
47
+ writable: false,
48
+ configurable: false,
49
+ });
50
+ return proxy;
51
+ }
52
+ /**
53
+ * Get the internals of an observable
54
+ */
55
+ export function getObservableInternals(observable) {
56
+ return observable[OBSERVABLE_META];
57
+ }
58
+ /**
59
+ * Check if a value is an observable
60
+ */
61
+ export function isObservable(value) {
62
+ return value !== null && typeof value === 'object' && OBSERVABLE_META in value;
63
+ }
64
+ //# sourceMappingURL=observable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/models/observable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,yDAAyD;AACzD,SAAS,YAAY,CAAC,GAAY,EAAE,UAAU,IAAI,OAAO,EAAU;IACjE,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAE7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,YAAY,CAAE,GAA+B,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAmB,IAAO;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,wBAAwB;IACxB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAM,CAAC;IAEvD,4DAA4D;IAC5D,YAAY,CAAC,KAAK,CAAC,CAAC;IAEpB,MAAM,SAAS,GAAwB;QACrC,KAAK;QAEL,SAAS;YACP,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,OAAO;YACL,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,aAAa;YACX,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QACpB,CAAC;KACF,CAAC;IAEF,4CAA4C;IAC5C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE;QAC3C,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,OAAO,KAAsB,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAyB;IAEzB,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAmB,KAAc;IAC3D,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,IAAI,KAAK,CAAC;AACjF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ProxyMeta } from './types.js';
2
+ export declare function createTrackedProxy(target: object, path: string[], dirtySet: Set<string>, parent?: ProxyMeta, keyInParent?: string): object;
3
+ export declare function getProxyMeta(proxy: object): ProxyMeta | undefined;
4
+ export declare function isTrackedProxy(obj: unknown): boolean;
5
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/models/proxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAoQ5C,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,MAAM,CAAC,EAAE,SAAS,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CA6MR;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEjE;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,407 @@
1
+ import { MODEL_INTERNALS, OBSERVABLE_META } from './symbols.js';
2
+ import { notifyWatchers } from './watch.js';
3
+ // Built-in objects with internal slots that break when methods are called with proxy as `this`
4
+ // These require binding to the original target, not the proxy
5
+ const BUILTIN_WITH_INTERNAL_SLOTS = new Set([
6
+ Map,
7
+ Set,
8
+ WeakMap,
9
+ WeakSet,
10
+ Date,
11
+ ArrayBuffer,
12
+ SharedArrayBuffer,
13
+ DataView,
14
+ Int8Array,
15
+ Uint8Array,
16
+ Uint8ClampedArray,
17
+ Int16Array,
18
+ Uint16Array,
19
+ Int32Array,
20
+ Uint32Array,
21
+ Float32Array,
22
+ Float64Array,
23
+ BigInt64Array,
24
+ BigUint64Array,
25
+ RegExp,
26
+ Promise,
27
+ ]);
28
+ function hasInternalSlots(obj) {
29
+ for (const BuiltIn of BUILTIN_WITH_INTERNAL_SLOTS) {
30
+ if (obj instanceof BuiltIn)
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ // Methods that mutate built-in objects - we need to track these
36
+ const MAP_MUTATORS = new Set(['set', 'delete', 'clear']);
37
+ const WEAKMAP_MUTATORS = new Set(['set', 'delete']);
38
+ const SET_MUTATORS = new Set(['add', 'delete', 'clear']);
39
+ const WEAKSET_MUTATORS = new Set(['add', 'delete']);
40
+ const DATE_MUTATORS = new Set([
41
+ 'setDate',
42
+ 'setFullYear',
43
+ 'setHours',
44
+ 'setMilliseconds',
45
+ 'setMinutes',
46
+ 'setMonth',
47
+ 'setSeconds',
48
+ 'setTime',
49
+ 'setUTCDate',
50
+ 'setUTCFullYear',
51
+ 'setUTCHours',
52
+ 'setUTCMilliseconds',
53
+ 'setUTCMinutes',
54
+ 'setUTCMonth',
55
+ 'setUTCSeconds',
56
+ 'setYear',
57
+ ]);
58
+ const TYPED_ARRAY_MUTATORS = new Set(['fill', 'set', 'copyWithin', 'sort', 'reverse']);
59
+ const DATAVIEW_MUTATORS = new Set([
60
+ 'setInt8',
61
+ 'setUint8',
62
+ 'setInt16',
63
+ 'setUint16',
64
+ 'setInt32',
65
+ 'setUint32',
66
+ 'setFloat32',
67
+ 'setFloat64',
68
+ 'setBigInt64',
69
+ 'setBigUint64',
70
+ ]);
71
+ function isTypedArray(obj) {
72
+ return (obj instanceof Int8Array ||
73
+ obj instanceof Uint8Array ||
74
+ obj instanceof Uint8ClampedArray ||
75
+ obj instanceof Int16Array ||
76
+ obj instanceof Uint16Array ||
77
+ obj instanceof Int32Array ||
78
+ obj instanceof Uint32Array ||
79
+ obj instanceof Float32Array ||
80
+ obj instanceof Float64Array ||
81
+ obj instanceof BigInt64Array ||
82
+ obj instanceof BigUint64Array);
83
+ }
84
+ function isMutatingMethod(obj, prop) {
85
+ if (typeof prop !== 'string')
86
+ return false;
87
+ if (obj instanceof Map)
88
+ return MAP_MUTATORS.has(prop);
89
+ if (obj instanceof WeakMap)
90
+ return WEAKMAP_MUTATORS.has(prop);
91
+ if (obj instanceof Set)
92
+ return SET_MUTATORS.has(prop);
93
+ if (obj instanceof WeakSet)
94
+ return WEAKSET_MUTATORS.has(prop);
95
+ if (obj instanceof Date)
96
+ return DATE_MUTATORS.has(prop);
97
+ if (obj instanceof DataView)
98
+ return DATAVIEW_MUTATORS.has(prop);
99
+ if (isTypedArray(obj))
100
+ return TYPED_ARRAY_MUTATORS.has(prop);
101
+ return false;
102
+ }
103
+ // Symbol for proxy metadata
104
+ const PROXY_META = Symbol('proxy_meta');
105
+ // Node.js inspection symbol
106
+ const NODE_INSPECT = Symbol.for('nodejs.util.inspect.custom');
107
+ // Well-known symbols that should pass through directly to target
108
+ // These are used for introspection, iteration, type coercion, etc.
109
+ const PASSTHROUGH_SYMBOLS = new Set([
110
+ Symbol.toStringTag,
111
+ Symbol.iterator,
112
+ Symbol.asyncIterator,
113
+ Symbol.toPrimitive,
114
+ Symbol.hasInstance,
115
+ Symbol.isConcatSpreadable,
116
+ Symbol.species,
117
+ Symbol.unscopables,
118
+ Symbol.match,
119
+ Symbol.matchAll,
120
+ Symbol.replace,
121
+ Symbol.search,
122
+ Symbol.split,
123
+ Symbol.dispose,
124
+ Symbol.asyncDispose,
125
+ NODE_INSPECT,
126
+ ]);
127
+ // WeakMap to track original object -> proxy mapping (handles circular refs)
128
+ const proxyCache = new WeakMap();
129
+ const metaCache = new WeakMap();
130
+ // Map root proxies to their dirty sets
131
+ const rootDirtySetMap = new WeakMap();
132
+ // Mark a container (like Map/Set/Date) and its parent paths as dirty
133
+ // Unlike markDirtyWithParents, this doesn't add a sub-key
134
+ function markContainerDirty(meta) {
135
+ const pathsWithDirtySets = collectPathsWithDirtySets(meta);
136
+ const modifiedDirtySets = new Set();
137
+ for (const { path, dirtySet } of pathsWithDirtySets) {
138
+ // Add the full path to this container
139
+ if (path.length > 0) {
140
+ dirtySet.add(path.join('.'));
141
+ modifiedDirtySets.add(dirtySet);
142
+ }
143
+ // Add parent paths
144
+ for (let i = path.length - 1; i > 0; i--) {
145
+ dirtySet.add(path.slice(0, i).join('.'));
146
+ }
147
+ }
148
+ for (const dirtySet of modifiedDirtySets) {
149
+ notifyWatchers(dirtySet);
150
+ }
151
+ }
152
+ function markDirtyWithParents(meta, key) {
153
+ // Collect all paths paired with their root's dirty set
154
+ const pathsWithDirtySets = collectPathsWithDirtySets(meta);
155
+ // Track which dirty sets were modified for notification
156
+ const modifiedDirtySets = new Set();
157
+ // Mark dirty only in the correct dirty set for each path
158
+ for (const { path: basePath, dirtySet } of pathsWithDirtySets) {
159
+ const fullPath = [...basePath, String(key)].join('.');
160
+ dirtySet.add(fullPath);
161
+ modifiedDirtySets.add(dirtySet);
162
+ // Also mark parent paths dirty
163
+ for (let i = basePath.length; i > 0; i--) {
164
+ dirtySet.add(basePath.slice(0, i).join('.'));
165
+ }
166
+ }
167
+ // Notify watchers for each modified dirty set
168
+ for (const dirtySet of modifiedDirtySets) {
169
+ notifyWatchers(dirtySet);
170
+ }
171
+ }
172
+ function collectPathsWithDirtySets(meta) {
173
+ const results = [];
174
+ // Use path string to dedupe (same path + same dirtySet = skip)
175
+ const seenPathDirtySet = new Map();
176
+ function traverse(current, pathSuffix, pathStack) {
177
+ // If this proxy was originally a root (observable/model), include its dirty set
178
+ const ownDirtySet = rootDirtySetMap.get(current);
179
+ if (ownDirtySet) {
180
+ const pathStr = pathSuffix.join('.');
181
+ let seenPaths = seenPathDirtySet.get(ownDirtySet);
182
+ if (!seenPaths) {
183
+ seenPaths = new Set();
184
+ seenPathDirtySet.set(ownDirtySet, seenPaths);
185
+ }
186
+ if (!seenPaths.has(pathStr)) {
187
+ results.push({ path: pathSuffix, dirtySet: ownDirtySet });
188
+ seenPaths.add(pathStr);
189
+ }
190
+ }
191
+ // If no parents, we're done with this branch
192
+ if (current.parents.size === 0) {
193
+ return;
194
+ }
195
+ // Continue traversing up to other roots via ALL parent paths
196
+ for (const parentRef of current.parents) {
197
+ const parent = parentRef.ref.deref();
198
+ if (!parent)
199
+ continue;
200
+ // Only skip if we'd create a cycle in THIS path
201
+ if (pathStack.includes(parent))
202
+ continue;
203
+ traverse(parent, [parentRef.key, ...pathSuffix], [...pathStack, parent]);
204
+ }
205
+ }
206
+ traverse(meta, [], [meta]);
207
+ // If no paths found (truly orphan proxy), use all dirty sets on this meta
208
+ if (results.length === 0) {
209
+ for (const dirtySet of meta.dirtySets) {
210
+ results.push({ path: [], dirtySet });
211
+ }
212
+ }
213
+ return results;
214
+ }
215
+ function addParentRef(meta, parent, key) {
216
+ // Check if this exact parent+key combo already exists
217
+ for (const existing of meta.parents) {
218
+ if (existing.ref.deref() === parent && existing.key === key) {
219
+ return; // Already registered
220
+ }
221
+ }
222
+ meta.parents.add({ ref: new WeakRef(parent), key });
223
+ }
224
+ // Propagate dirty sets down the tree (for cross-model sharing)
225
+ function propagateDirtySets(meta, dirtySet) {
226
+ if (meta.dirtySets.has(dirtySet))
227
+ return;
228
+ meta.dirtySets.add(dirtySet);
229
+ // Propagate to all children
230
+ for (const childMeta of meta.children.values()) {
231
+ propagateDirtySets(childMeta, dirtySet);
232
+ }
233
+ }
234
+ export function createTrackedProxy(target, path, dirtySet, parent, keyInParent) {
235
+ // Check cache first (handles circular refs and cross-model sharing)
236
+ const cached = proxyCache.get(target);
237
+ if (cached) {
238
+ const cachedMeta = metaCache.get(cached);
239
+ if (cachedMeta) {
240
+ // Add the new dirty set (for cross-model sharing)
241
+ propagateDirtySets(cachedMeta, dirtySet);
242
+ if (parent && keyInParent) {
243
+ addParentRef(cachedMeta, parent, keyInParent);
244
+ parent.children.set(keyInParent, cachedMeta);
245
+ }
246
+ }
247
+ return cached;
248
+ }
249
+ const meta = {
250
+ path,
251
+ dirtySets: new Set([dirtySet]),
252
+ parents: new Set(parent && keyInParent ? [{ ref: new WeakRef(parent), key: keyInParent }] : []),
253
+ children: new Map(),
254
+ target,
255
+ proxy: null, // Will be set below
256
+ };
257
+ // If this is a root (no parent), register its dirty set
258
+ if (!parent) {
259
+ rootDirtySetMap.set(meta, dirtySet);
260
+ }
261
+ const proxy = new Proxy(target, {
262
+ get(obj, prop, receiver) {
263
+ // Handle our internal symbols - return directly from target
264
+ if (prop === MODEL_INTERNALS ||
265
+ prop === OBSERVABLE_META ||
266
+ prop === PROXY_META) {
267
+ return Reflect.get(obj, prop);
268
+ }
269
+ // Pass through well-known symbols for native behavior
270
+ // (iteration, inspection, type coercion, etc.)
271
+ if (typeof prop === 'symbol' && PASSTHROUGH_SYMBOLS.has(prop)) {
272
+ const value = Reflect.get(obj, prop, obj);
273
+ // Don't bind dispose functions - they may be non-configurable and
274
+ // the proxy must return the exact value to satisfy proxy invariants
275
+ if (prop === Symbol.dispose || prop === Symbol.asyncDispose) {
276
+ return value;
277
+ }
278
+ // Bind other functions to target for proper behavior
279
+ if (typeof value === 'function') {
280
+ return value.bind(obj);
281
+ }
282
+ return value;
283
+ }
284
+ // Built-ins with internal slots need to bypass proxy for all property access
285
+ // (both methods and getters like .size check internal slots)
286
+ if (hasInternalSlots(obj)) {
287
+ const value = Reflect.get(obj, prop, obj); // Use obj as receiver, not proxy
288
+ if (typeof value === 'function') {
289
+ // Wrap mutating methods to track dirty
290
+ if (isMutatingMethod(obj, prop)) {
291
+ return function (...args) {
292
+ const result = value.apply(obj, args);
293
+ // Mark this built-in container and its parents as dirty
294
+ markContainerDirty(meta);
295
+ return result;
296
+ };
297
+ }
298
+ return value.bind(obj);
299
+ }
300
+ return value;
301
+ }
302
+ const value = Reflect.get(obj, prop, receiver);
303
+ // Bind functions to the proxy so `this.foo = x` triggers dirty tracking
304
+ if (typeof value === 'function') {
305
+ return value.bind(proxy);
306
+ }
307
+ // Return cached child proxy if exists
308
+ if (meta.children.has(prop)) {
309
+ const childMeta = meta.children.get(prop);
310
+ return childMeta.proxy;
311
+ }
312
+ // Wrap objects/arrays in proxies
313
+ if (value !== null && typeof value === 'object') {
314
+ // Check if value is already a proxy (from another model/observable)
315
+ const existingMeta = metaCache.get(value);
316
+ if (existingMeta) {
317
+ // Connect existing proxy to this tree
318
+ addParentRef(existingMeta, meta, String(prop));
319
+ meta.children.set(prop, existingMeta);
320
+ // Propagate our dirty sets to the existing proxy
321
+ for (const ds of meta.dirtySets) {
322
+ propagateDirtySets(existingMeta, ds);
323
+ }
324
+ return existingMeta.proxy;
325
+ }
326
+ const childProxy = createTrackedProxy(value, [...path, String(prop)], dirtySet, meta, String(prop));
327
+ const childMeta = metaCache.get(childProxy);
328
+ if (childMeta) {
329
+ meta.children.set(prop, childMeta);
330
+ }
331
+ return childProxy;
332
+ }
333
+ return value;
334
+ },
335
+ set(obj, prop, value, _receiver) {
336
+ const oldValue = Reflect.get(obj, prop, obj);
337
+ // Check if setting the same proxy reference back (no change)
338
+ const existingChild = meta.children.get(prop);
339
+ if (existingChild && existingChild.proxy === value) {
340
+ return true; // Same proxy, no change needed
341
+ }
342
+ // Clear old child tracking (for any value change, not just objects)
343
+ meta.children.delete(prop);
344
+ const result = Reflect.set(obj, prop, value, obj);
345
+ // Track dirty if value changed (including setting to undefined)
346
+ if (oldValue !== value) {
347
+ markDirtyWithParents(meta, prop);
348
+ }
349
+ return result;
350
+ },
351
+ deleteProperty(obj, prop) {
352
+ // Mark dirty BEFORE deleting so we can still traverse
353
+ markDirtyWithParents(meta, prop);
354
+ // Clean up child tracking
355
+ meta.children.delete(prop);
356
+ return Reflect.deleteProperty(obj, prop);
357
+ },
358
+ // Transparency traps - make proxy behave like native object
359
+ has(obj, prop) {
360
+ return Reflect.has(obj, prop);
361
+ },
362
+ ownKeys(obj) {
363
+ return Reflect.ownKeys(obj);
364
+ },
365
+ getOwnPropertyDescriptor(obj, prop) {
366
+ return Reflect.getOwnPropertyDescriptor(obj, prop);
367
+ },
368
+ getPrototypeOf(obj) {
369
+ return Reflect.getPrototypeOf(obj);
370
+ },
371
+ isExtensible(obj) {
372
+ return Reflect.isExtensible(obj);
373
+ },
374
+ preventExtensions(obj) {
375
+ return Reflect.preventExtensions(obj);
376
+ },
377
+ defineProperty(obj, prop, descriptor) {
378
+ const result = Reflect.defineProperty(obj, prop, descriptor);
379
+ // Don't mark internal symbols as dirty
380
+ if (result &&
381
+ 'value' in descriptor &&
382
+ prop !== MODEL_INTERNALS &&
383
+ prop !== OBSERVABLE_META &&
384
+ prop !== Symbol.dispose &&
385
+ prop !== Symbol.asyncDispose) {
386
+ markDirtyWithParents(meta, prop);
387
+ }
388
+ return result;
389
+ },
390
+ setPrototypeOf(obj, proto) {
391
+ return Reflect.setPrototypeOf(obj, proto);
392
+ },
393
+ });
394
+ meta.proxy = proxy;
395
+ proxyCache.set(target, proxy);
396
+ metaCache.set(proxy, meta);
397
+ return proxy;
398
+ }
399
+ // Get proxy metadata (for debugging/testing)
400
+ export function getProxyMeta(proxy) {
401
+ return metaCache.get(proxy);
402
+ }
403
+ // Check if an object is already a tracked proxy
404
+ export function isTrackedProxy(obj) {
405
+ return obj !== null && typeof obj === 'object' && metaCache.has(obj);
406
+ }
407
+ //# sourceMappingURL=proxy.js.map