@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,701 @@
1
+ /**
2
+ * Query System
3
+ *
4
+ * Provides type-safe field expressions for building queries.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * const { status, createdAt, author } = Post.fields;
9
+ *
10
+ * await postRepo.find({
11
+ * where: q.and(
12
+ * status.eq('published'),
13
+ * createdAt.after(lastWeek),
14
+ * author.eq(currentUser),
15
+ * ),
16
+ * });
17
+ * ```
18
+ */
19
+ import { isReference } from './reference/reference.js';
20
+ import { ADAPTER_KEY } from './symbols.js';
21
+ // ============================================================================
22
+ // Condition Types (AST)
23
+ // ============================================================================
24
+ /** Symbol to mark a condition */
25
+ export const CONDITION = Symbol('models:condition');
26
+ // ============================================================================
27
+ // Condition Factories
28
+ // ============================================================================
29
+ function createCondition(cond) {
30
+ return { [CONDITION]: true, ...cond };
31
+ }
32
+ /** Symbol to identify OrderByItem */
33
+ export const ORDER_BY = Symbol('models:orderBy');
34
+ /** Create an order by item */
35
+ function createOrderBy(field, direction, nulls) {
36
+ return { __orderBy: true, field, direction, nulls };
37
+ }
38
+ /** Check if value is an OrderByItem */
39
+ export function isOrderByItem(value) {
40
+ return (value !== null &&
41
+ typeof value === 'object' &&
42
+ '__orderBy' in value &&
43
+ value.__orderBy === true);
44
+ }
45
+ /** Base class for field expressions */
46
+ class FieldExprBase {
47
+ fieldName;
48
+ fieldDef;
49
+ constructor(fieldName, fieldDef) {
50
+ this.fieldName = fieldName;
51
+ this.fieldDef = fieldDef;
52
+ }
53
+ /** The field name (for traversal and permission resolution) */
54
+ get fieldKey() { return this.fieldName; }
55
+ /** IS NULL */
56
+ isNull() {
57
+ return createCondition({ type: 'isNull', field: this.fieldName });
58
+ }
59
+ /** IS NOT NULL */
60
+ isNotNull() {
61
+ return createCondition({ type: 'isNotNull', field: this.fieldName });
62
+ }
63
+ /** Order ascending */
64
+ asc(nulls) {
65
+ return createOrderBy(this.fieldName, 'asc', nulls);
66
+ }
67
+ /** Order descending */
68
+ desc(nulls) {
69
+ return createOrderBy(this.fieldName, 'desc', nulls);
70
+ }
71
+ }
72
+ // ============================================================================
73
+ // String Field Expression
74
+ // ============================================================================
75
+ /** Expression methods for string fields */
76
+ export class StringFieldExpr extends FieldExprBase {
77
+ /** Equal to */
78
+ eq(value) {
79
+ return createCondition({ type: 'eq', field: this.fieldName, value });
80
+ }
81
+ /** Not equal to */
82
+ neq(value) {
83
+ return createCondition({ type: 'neq', field: this.fieldName, value });
84
+ }
85
+ /** LIKE pattern (use % for wildcards) */
86
+ like(pattern) {
87
+ return createCondition({ type: 'like', field: this.fieldName, pattern });
88
+ }
89
+ /** Case-insensitive LIKE */
90
+ ilike(pattern) {
91
+ return createCondition({ type: 'ilike', field: this.fieldName, pattern });
92
+ }
93
+ /** Starts with prefix */
94
+ startsWith(prefix) {
95
+ return createCondition({ type: 'startsWith', field: this.fieldName, prefix });
96
+ }
97
+ /** Ends with suffix */
98
+ endsWith(suffix) {
99
+ return createCondition({ type: 'endsWith', field: this.fieldName, suffix });
100
+ }
101
+ /** Contains substring */
102
+ contains(substring) {
103
+ return createCondition({ type: 'contains', field: this.fieldName, substring });
104
+ }
105
+ /** In list of values */
106
+ in(values) {
107
+ return createCondition({ type: 'in', field: this.fieldName, values });
108
+ }
109
+ /** Not in list of values */
110
+ notIn(values) {
111
+ return createCondition({ type: 'notIn', field: this.fieldName, values });
112
+ }
113
+ }
114
+ // ============================================================================
115
+ // Number Field Expression
116
+ // ============================================================================
117
+ /** Expression methods for number fields (int, float, double, etc.) */
118
+ export class NumberFieldExpr extends FieldExprBase {
119
+ /** Equal to */
120
+ eq(value) {
121
+ return createCondition({ type: 'eq', field: this.fieldName, value });
122
+ }
123
+ /** Not equal to */
124
+ neq(value) {
125
+ return createCondition({ type: 'neq', field: this.fieldName, value });
126
+ }
127
+ /** Greater than */
128
+ gt(value) {
129
+ return createCondition({ type: 'gt', field: this.fieldName, value });
130
+ }
131
+ /** Greater than or equal */
132
+ gte(value) {
133
+ return createCondition({ type: 'gte', field: this.fieldName, value });
134
+ }
135
+ /** Less than */
136
+ lt(value) {
137
+ return createCondition({ type: 'lt', field: this.fieldName, value });
138
+ }
139
+ /** Less than or equal */
140
+ lte(value) {
141
+ return createCondition({ type: 'lte', field: this.fieldName, value });
142
+ }
143
+ /** Between min and max (inclusive) */
144
+ between(min, max) {
145
+ return createCondition({ type: 'between', field: this.fieldName, min, max });
146
+ }
147
+ /** In list of values */
148
+ in(values) {
149
+ return createCondition({ type: 'in', field: this.fieldName, values });
150
+ }
151
+ /** Not in list of values */
152
+ notIn(values) {
153
+ return createCondition({ type: 'notIn', field: this.fieldName, values });
154
+ }
155
+ }
156
+ // ============================================================================
157
+ // BigInt Field Expression
158
+ // ============================================================================
159
+ /** Expression methods for bigint fields */
160
+ export class BigIntFieldExpr extends FieldExprBase {
161
+ /** Equal to */
162
+ eq(value) {
163
+ return createCondition({ type: 'eq', field: this.fieldName, value });
164
+ }
165
+ /** Not equal to */
166
+ neq(value) {
167
+ return createCondition({ type: 'neq', field: this.fieldName, value });
168
+ }
169
+ /** Greater than */
170
+ gt(value) {
171
+ return createCondition({ type: 'gt', field: this.fieldName, value });
172
+ }
173
+ /** Greater than or equal */
174
+ gte(value) {
175
+ return createCondition({ type: 'gte', field: this.fieldName, value });
176
+ }
177
+ /** Less than */
178
+ lt(value) {
179
+ return createCondition({ type: 'lt', field: this.fieldName, value });
180
+ }
181
+ /** Less than or equal */
182
+ lte(value) {
183
+ return createCondition({ type: 'lte', field: this.fieldName, value });
184
+ }
185
+ /** Between min and max (inclusive) */
186
+ between(min, max) {
187
+ return createCondition({ type: 'between', field: this.fieldName, min, max });
188
+ }
189
+ /** In list of values */
190
+ in(values) {
191
+ return createCondition({ type: 'in', field: this.fieldName, values });
192
+ }
193
+ }
194
+ // ============================================================================
195
+ // Decimal Field Expression (stored as string for precision)
196
+ // ============================================================================
197
+ /** Expression methods for decimal fields */
198
+ export class DecimalFieldExpr extends FieldExprBase {
199
+ /** Equal to */
200
+ eq(value) {
201
+ return createCondition({ type: 'eq', field: this.fieldName, value });
202
+ }
203
+ /** Not equal to */
204
+ neq(value) {
205
+ return createCondition({ type: 'neq', field: this.fieldName, value });
206
+ }
207
+ /** Greater than */
208
+ gt(value) {
209
+ return createCondition({ type: 'gt', field: this.fieldName, value });
210
+ }
211
+ /** Greater than or equal */
212
+ gte(value) {
213
+ return createCondition({ type: 'gte', field: this.fieldName, value });
214
+ }
215
+ /** Less than */
216
+ lt(value) {
217
+ return createCondition({ type: 'lt', field: this.fieldName, value });
218
+ }
219
+ /** Less than or equal */
220
+ lte(value) {
221
+ return createCondition({ type: 'lte', field: this.fieldName, value });
222
+ }
223
+ /** Between min and max (inclusive) */
224
+ between(min, max) {
225
+ return createCondition({ type: 'between', field: this.fieldName, min, max });
226
+ }
227
+ /** In list of values */
228
+ in(values) {
229
+ return createCondition({ type: 'in', field: this.fieldName, values });
230
+ }
231
+ }
232
+ // ============================================================================
233
+ // Boolean Field Expression
234
+ // ============================================================================
235
+ /** Expression methods for boolean fields */
236
+ export class BooleanFieldExpr extends FieldExprBase {
237
+ /** Equal to */
238
+ eq(value) {
239
+ return createCondition({ type: 'eq', field: this.fieldName, value });
240
+ }
241
+ /** Is true */
242
+ isTrue() {
243
+ return this.eq(true);
244
+ }
245
+ /** Is false */
246
+ isFalse() {
247
+ return this.eq(false);
248
+ }
249
+ /** In list of values */
250
+ in(values) {
251
+ return createCondition({ type: 'in', field: this.fieldName, values });
252
+ }
253
+ /** Not in list of values */
254
+ notIn(values) {
255
+ return createCondition({ type: 'notIn', field: this.fieldName, values });
256
+ }
257
+ }
258
+ // ============================================================================
259
+ // Timestamp/Date Field Expression
260
+ // ============================================================================
261
+ /** Expression methods for timestamp/date fields */
262
+ export class TimestampFieldExpr extends FieldExprBase {
263
+ /** Equal to */
264
+ eq(value) {
265
+ return createCondition({ type: 'eq', field: this.fieldName, value });
266
+ }
267
+ /** Not equal to */
268
+ neq(value) {
269
+ return createCondition({ type: 'neq', field: this.fieldName, value });
270
+ }
271
+ /** Before date */
272
+ before(date) {
273
+ return createCondition({ type: 'before', field: this.fieldName, date });
274
+ }
275
+ /** After date */
276
+ after(date) {
277
+ return createCondition({ type: 'after', field: this.fieldName, date });
278
+ }
279
+ /** Between dates (inclusive) */
280
+ between(start, end) {
281
+ return createCondition({ type: 'between', field: this.fieldName, min: start, max: end });
282
+ }
283
+ /** Greater than */
284
+ gt(value) {
285
+ return createCondition({ type: 'gt', field: this.fieldName, value });
286
+ }
287
+ /** Greater than or equal */
288
+ gte(value) {
289
+ return createCondition({ type: 'gte', field: this.fieldName, value });
290
+ }
291
+ /** Less than */
292
+ lt(value) {
293
+ return createCondition({ type: 'lt', field: this.fieldName, value });
294
+ }
295
+ /** Less than or equal */
296
+ lte(value) {
297
+ return createCondition({ type: 'lte', field: this.fieldName, value });
298
+ }
299
+ }
300
+ // ============================================================================
301
+ // UUID Field Expression
302
+ // ============================================================================
303
+ /** Expression methods for UUID fields */
304
+ export class UuidFieldExpr extends FieldExprBase {
305
+ /** Equal to */
306
+ eq(value) {
307
+ return createCondition({ type: 'eq', field: this.fieldName, value });
308
+ }
309
+ /** Not equal to */
310
+ neq(value) {
311
+ return createCondition({ type: 'neq', field: this.fieldName, value });
312
+ }
313
+ /** In list of values */
314
+ in(values) {
315
+ return createCondition({ type: 'in', field: this.fieldName, values });
316
+ }
317
+ /** Not in list of values */
318
+ notIn(values) {
319
+ return createCondition({ type: 'notIn', field: this.fieldName, values });
320
+ }
321
+ }
322
+ // ============================================================================
323
+ // Enum Field Expression
324
+ // ============================================================================
325
+ /** Expression methods for enum fields */
326
+ export class EnumFieldExpr extends FieldExprBase {
327
+ /** Equal to */
328
+ eq(value) {
329
+ return createCondition({ type: 'eq', field: this.fieldName, value });
330
+ }
331
+ /** Not equal to */
332
+ neq(value) {
333
+ return createCondition({ type: 'neq', field: this.fieldName, value });
334
+ }
335
+ /** In list of values */
336
+ in(values) {
337
+ return createCondition({ type: 'in', field: this.fieldName, values });
338
+ }
339
+ /** Not in list of values */
340
+ notIn(values) {
341
+ return createCondition({ type: 'notIn', field: this.fieldName, values });
342
+ }
343
+ }
344
+ /** Type guard for RefTraversal */
345
+ export function isRefTraversal(value) {
346
+ return (typeof value === 'object' &&
347
+ value !== null &&
348
+ '__isRefTraversal' in value &&
349
+ value.__isRefTraversal === true);
350
+ }
351
+ function makeRefTraversal(path) {
352
+ return {
353
+ __isRefTraversal: true,
354
+ path,
355
+ has(field) {
356
+ return makeRefTraversal([...path, field.fieldKey]);
357
+ },
358
+ };
359
+ }
360
+ // ============================================================================
361
+ // Reference Field Expression
362
+ // ============================================================================
363
+ /**
364
+ * Extract the string identifier from any Ref<T> - Reference, Persistent entity, or string.
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * refId(ticket) // Persistent<Ticket> → '123'
369
+ * refId(Ticket.ref('1')) // Reference<Ticket> → '1'
370
+ * refId('abc') // string → 'abc'
371
+ * ```
372
+ */
373
+ export function refId(value) {
374
+ if (typeof value === 'string')
375
+ return value;
376
+ if (isReference(value))
377
+ return value.identifier;
378
+ // Persistent entity with adapter key
379
+ const adapterKey = value?.[ADAPTER_KEY];
380
+ if (adapterKey !== undefined)
381
+ return String(adapterKey);
382
+ throw new Error('Cannot extract key from value - pass a Reference, persistent entity, or string');
383
+ }
384
+ /** @internal Use refId() for the public API */
385
+ const extractRefKey = refId;
386
+ /** Expression methods for reference fields */
387
+ export class RefFieldExpr extends FieldExprBase {
388
+ /** Equal to (accepts Reference, persistent entity, or id string) */
389
+ eq(value) {
390
+ return createCondition({ type: 'eq', field: this.fieldName, value: extractRefKey(value) });
391
+ }
392
+ /** Not equal to */
393
+ neq(value) {
394
+ return createCondition({ type: 'neq', field: this.fieldName, value: extractRefKey(value) });
395
+ }
396
+ /** In list of values */
397
+ in(values) {
398
+ return createCondition({ type: 'in', field: this.fieldName, values: values.map(extractRefKey) });
399
+ }
400
+ /** Not in list of values */
401
+ notIn(values) {
402
+ return createCondition({ type: 'notIn', field: this.fieldName, values: values.map(extractRefKey) });
403
+ }
404
+ has(conditionOrField) {
405
+ if (conditionOrField instanceof RefFieldExpr) {
406
+ return makeRefTraversal([this.fieldName, conditionOrField.fieldKey]);
407
+ }
408
+ return createCondition({ type: 'has', field: this.fieldName, condition: conditionOrField });
409
+ }
410
+ /** Alias for has() with a Condition */
411
+ where(condition) {
412
+ return createCondition({ type: 'has', field: this.fieldName, condition });
413
+ }
414
+ }
415
+ // ============================================================================
416
+ // References Field Expression (many-to-many)
417
+ // ============================================================================
418
+ /** Expression methods for refs fields (many-to-many) */
419
+ export class RefsFieldExpr extends FieldExprBase {
420
+ /** Has any of the given references */
421
+ hasAny(values) {
422
+ return createCondition({ type: 'in', field: this.fieldName, values: values.map(extractRefKey) });
423
+ }
424
+ /** Has all of the given references */
425
+ hasAll(values) {
426
+ const ids = values.map(extractRefKey);
427
+ // Each ID must be present
428
+ const conditions = ids.map((id) => createCondition({ type: 'eq', field: this.fieldName, value: id }));
429
+ return createCondition({ type: 'and', conditions });
430
+ }
431
+ /** Has related entity matching condition (generates JOIN) */
432
+ has(condition) {
433
+ return createCondition({ type: 'has', field: this.fieldName, condition });
434
+ }
435
+ }
436
+ // ============================================================================
437
+ // Array Field Expression
438
+ // ============================================================================
439
+ /** Expression methods for array fields */
440
+ export class ArrayFieldExpr extends FieldExprBase {
441
+ /** Contains single element */
442
+ contains(value) {
443
+ return createCondition({
444
+ type: 'arrayContains',
445
+ field: this.fieldName,
446
+ value,
447
+ });
448
+ }
449
+ /** Has any of the given values */
450
+ hasAny(values) {
451
+ return createCondition({
452
+ type: 'arrayHasAny',
453
+ field: this.fieldName,
454
+ values,
455
+ });
456
+ }
457
+ /** Has all of the given values */
458
+ hasAll(values) {
459
+ return createCondition({
460
+ type: 'arrayHasAll',
461
+ field: this.fieldName,
462
+ values,
463
+ });
464
+ }
465
+ /** Array overlaps with values */
466
+ overlaps(values) {
467
+ return createCondition({
468
+ type: 'arrayOverlaps',
469
+ field: this.fieldName,
470
+ values,
471
+ });
472
+ }
473
+ }
474
+ // ============================================================================
475
+ // JSON Field Expression
476
+ // ============================================================================
477
+ /** Expression methods for JSON/JSONB fields */
478
+ export class JsonFieldExpr extends FieldExprBase {
479
+ /** Equal to (deep equality) */
480
+ eq(value) {
481
+ return createCondition({ type: 'eq', field: this.fieldName, value });
482
+ }
483
+ /** Contains (JSONB @>) */
484
+ contains(value) {
485
+ return createCondition({
486
+ type: 'contains',
487
+ field: this.fieldName,
488
+ substring: JSON.stringify(value),
489
+ });
490
+ }
491
+ }
492
+ // ============================================================================
493
+ // Object Field Expression
494
+ // ============================================================================
495
+ /** Expression methods for object fields with nested access */
496
+ export class ObjectFieldExpr extends FieldExprBase {
497
+ objectShape;
498
+ constructor(fieldName, fieldDef, objectShape) {
499
+ super(fieldName, fieldDef);
500
+ this.objectShape = objectShape;
501
+ }
502
+ /** Equal to (deep equality) */
503
+ eq(value) {
504
+ return createCondition({ type: 'eq', field: this.fieldName, value });
505
+ }
506
+ /** Contains (partial match) */
507
+ contains(value) {
508
+ return createCondition({
509
+ type: 'contains',
510
+ field: this.fieldName,
511
+ substring: JSON.stringify(value),
512
+ });
513
+ }
514
+ }
515
+ // ============================================================================
516
+ // Field Expression Factory
517
+ // ============================================================================
518
+ /**
519
+ * Create a Proxy wrapper for ObjectFieldExpr that allows nested property access.
520
+ * This enables syntax like `User.fields.settings.theme.eq('dark')`.
521
+ */
522
+ function createObjectFieldExprProxy(fieldName, fieldDef, objectShape) {
523
+ const expr = new ObjectFieldExpr(fieldName, fieldDef, objectShape);
524
+ return new Proxy(expr, {
525
+ get(target, prop) {
526
+ // First check if the property is an own method/property of ObjectFieldExpr
527
+ if (prop in target) {
528
+ const value = target[prop];
529
+ return typeof value === 'function' ? value.bind(target) : value;
530
+ }
531
+ // Then check if it's a nested field in the object shape
532
+ if (typeof prop === 'string' && prop in objectShape) {
533
+ const nestedFieldDef = objectShape[prop];
534
+ const nestedFieldName = `${fieldName}.${prop}`;
535
+ return createFieldExpr(nestedFieldName, nestedFieldDef);
536
+ }
537
+ return undefined;
538
+ },
539
+ });
540
+ }
541
+ /** Create a field expression for a given field definition */
542
+ export function createFieldExpr(fieldName, fieldDef) {
543
+ switch (fieldDef.type) {
544
+ case 'string':
545
+ case 'text':
546
+ return new StringFieldExpr(fieldName, fieldDef);
547
+ case 'int':
548
+ case 'smallint':
549
+ case 'float':
550
+ case 'double':
551
+ case 'version':
552
+ return new NumberFieldExpr(fieldName, fieldDef);
553
+ case 'bigint':
554
+ return new BigIntFieldExpr(fieldName, fieldDef);
555
+ case 'decimal':
556
+ return new DecimalFieldExpr(fieldName, fieldDef);
557
+ case 'boolean':
558
+ return new BooleanFieldExpr(fieldName, fieldDef);
559
+ case 'timestamp':
560
+ case 'date':
561
+ case 'createdAt':
562
+ case 'updatedAt':
563
+ case 'deletedAt':
564
+ return new TimestampFieldExpr(fieldName, fieldDef);
565
+ case 'uuid':
566
+ return new UuidFieldExpr(fieldName, fieldDef);
567
+ case 'enum':
568
+ return new EnumFieldExpr(fieldName, fieldDef);
569
+ case 'ref':
570
+ return new RefFieldExpr(fieldName, fieldDef);
571
+ case 'refs':
572
+ return new RefsFieldExpr(fieldName, fieldDef);
573
+ case 'array':
574
+ return new ArrayFieldExpr(fieldName, fieldDef);
575
+ case 'json':
576
+ case 'jsonb':
577
+ return new JsonFieldExpr(fieldName, fieldDef);
578
+ case 'object':
579
+ if (fieldDef.objectShape) {
580
+ return createObjectFieldExprProxy(fieldName, fieldDef, fieldDef.objectShape);
581
+ }
582
+ return new JsonFieldExpr(fieldName, fieldDef);
583
+ case 'time':
584
+ case 'duration':
585
+ case 'bytes':
586
+ default:
587
+ return new StringFieldExpr(fieldName, fieldDef); // Fallback to string-like
588
+ }
589
+ }
590
+ // ============================================================================
591
+ // Aggregation Types
592
+ // ============================================================================
593
+ /** Symbol to mark an aggregation */
594
+ export const AGGREGATION = Symbol('models:aggregation');
595
+ // ============================================================================
596
+ // Query Helpers Namespace (q)
597
+ // ============================================================================
598
+ /**
599
+ * Query helpers namespace.
600
+ *
601
+ * @example
602
+ * ```typescript
603
+ * import { q } from '@justscale/core/models';
604
+ *
605
+ * // Logical operators
606
+ * q.and(status.eq('published'), createdAt.after(lastWeek))
607
+ * q.or(author.eq(user1), author.eq(user2))
608
+ * q.not(status.eq('draft'))
609
+ *
610
+ * // Aggregations
611
+ * q.count()
612
+ * q.sum(views)
613
+ * q.avg(rating)
614
+ * q.min(price)
615
+ * q.max(price)
616
+ * ```
617
+ */
618
+ export const q = {
619
+ // ─── LOGICAL OPERATORS ───
620
+ /** AND condition - all must match */
621
+ and(...conditions) {
622
+ return createCondition({ type: 'and', conditions });
623
+ },
624
+ /** OR condition - any must match */
625
+ or(...conditions) {
626
+ return createCondition({ type: 'or', conditions });
627
+ },
628
+ /** NOT condition - negates the condition */
629
+ not(condition) {
630
+ return createCondition({ type: 'not', condition });
631
+ },
632
+ // ─── AGGREGATIONS ───
633
+ /** Count rows or distinct values */
634
+ count(field) {
635
+ const agg = {
636
+ [AGGREGATION]: true,
637
+ type: 'count',
638
+ field: field?.['fieldName'],
639
+ };
640
+ return Object.assign(agg, {
641
+ distinct() {
642
+ return { ...agg, distinct: true };
643
+ },
644
+ });
645
+ },
646
+ /** Sum of field values */
647
+ sum(field) {
648
+ return {
649
+ [AGGREGATION]: true,
650
+ type: 'sum',
651
+ field: field['fieldName'],
652
+ };
653
+ },
654
+ /** Average of field values */
655
+ avg(field) {
656
+ return {
657
+ [AGGREGATION]: true,
658
+ type: 'avg',
659
+ field: field['fieldName'],
660
+ };
661
+ },
662
+ /** Minimum value */
663
+ min(field) {
664
+ return {
665
+ [AGGREGATION]: true,
666
+ type: 'min',
667
+ field: field['fieldName'],
668
+ };
669
+ },
670
+ /** Maximum value */
671
+ max(field) {
672
+ return {
673
+ [AGGREGATION]: true,
674
+ type: 'max',
675
+ field: field['fieldName'],
676
+ };
677
+ },
678
+ // ─── RAW SQL (escape hatch) ───
679
+ /** Raw SQL condition */
680
+ raw(sql, ...values) {
681
+ return createCondition({ type: 'raw', sql, values });
682
+ },
683
+ };
684
+ // ============================================================================
685
+ // Type Guards
686
+ // ============================================================================
687
+ /** Check if value is a Condition */
688
+ export function isCondition(value) {
689
+ return (value !== null &&
690
+ typeof value === 'object' &&
691
+ CONDITION in value &&
692
+ value[CONDITION] === true);
693
+ }
694
+ /** Check if value is an Aggregation */
695
+ export function isAggregation(value) {
696
+ return (value !== null &&
697
+ typeof value === 'object' &&
698
+ AGGREGATION in value &&
699
+ value[AGGREGATION] === true);
700
+ }
701
+ //# sourceMappingURL=query.js.map