@archlast/server 0.0.1

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 (811) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -0
  3. package/dist/admin/auth.d.ts +79 -0
  4. package/dist/admin/auth.d.ts.map +1 -0
  5. package/dist/admin/auth.js +487 -0
  6. package/dist/admin/auth.js.map +1 -0
  7. package/dist/admin/schema.d.ts +240 -0
  8. package/dist/admin/schema.d.ts.map +1 -0
  9. package/dist/admin/schema.js +521 -0
  10. package/dist/admin/schema.js.map +1 -0
  11. package/dist/admin/seed.d.ts +9 -0
  12. package/dist/admin/seed.d.ts.map +1 -0
  13. package/dist/admin/seed.js +276 -0
  14. package/dist/admin/seed.js.map +1 -0
  15. package/dist/auth/api-key-resolver.d.ts +12 -0
  16. package/dist/auth/api-key-resolver.d.ts.map +1 -0
  17. package/dist/auth/api-key-resolver.js +24 -0
  18. package/dist/auth/api-key-resolver.js.map +1 -0
  19. package/dist/auth/archlast-auth-adapter.d.ts +22 -0
  20. package/dist/auth/archlast-auth-adapter.d.ts.map +1 -0
  21. package/dist/auth/archlast-auth-adapter.js +32 -0
  22. package/dist/auth/archlast-auth-adapter.js.map +1 -0
  23. package/dist/auth/audit.d.ts +65 -0
  24. package/dist/auth/audit.d.ts.map +1 -0
  25. package/dist/auth/audit.js +138 -0
  26. package/dist/auth/audit.js.map +1 -0
  27. package/dist/auth/better-auth-adapter.d.ts +35 -0
  28. package/dist/auth/better-auth-adapter.d.ts.map +1 -0
  29. package/dist/auth/better-auth-adapter.js +460 -0
  30. package/dist/auth/better-auth-adapter.js.map +1 -0
  31. package/dist/auth/better-auth-admin.d.ts +40 -0
  32. package/dist/auth/better-auth-admin.d.ts.map +1 -0
  33. package/dist/auth/better-auth-admin.js +80 -0
  34. package/dist/auth/better-auth-admin.js.map +1 -0
  35. package/dist/auth/better-auth-api-key-resolver.d.ts +39 -0
  36. package/dist/auth/better-auth-api-key-resolver.d.ts.map +1 -0
  37. package/dist/auth/better-auth-api-key-resolver.js +184 -0
  38. package/dist/auth/better-auth-api-key-resolver.js.map +1 -0
  39. package/dist/auth/better-auth-instance.d.ts +2464 -0
  40. package/dist/auth/better-auth-instance.d.ts.map +1 -0
  41. package/dist/auth/better-auth-instance.js +251 -0
  42. package/dist/auth/better-auth-instance.js.map +1 -0
  43. package/dist/auth/better-auth-seed.d.ts +23 -0
  44. package/dist/auth/better-auth-seed.d.ts.map +1 -0
  45. package/dist/auth/better-auth-seed.js +316 -0
  46. package/dist/auth/better-auth-seed.js.map +1 -0
  47. package/dist/auth/better-auth-session-adapter.d.ts +49 -0
  48. package/dist/auth/better-auth-session-adapter.d.ts.map +1 -0
  49. package/dist/auth/better-auth-session-adapter.js +254 -0
  50. package/dist/auth/better-auth-session-adapter.js.map +1 -0
  51. package/dist/auth/errors.d.ts +18 -0
  52. package/dist/auth/errors.d.ts.map +1 -0
  53. package/dist/auth/errors.js +27 -0
  54. package/dist/auth/errors.js.map +1 -0
  55. package/dist/auth/http/handlers.d.ts +17 -0
  56. package/dist/auth/http/handlers.d.ts.map +1 -0
  57. package/dist/auth/http/handlers.js +19 -0
  58. package/dist/auth/http/handlers.js.map +1 -0
  59. package/dist/auth/interfaces.d.ts +138 -0
  60. package/dist/auth/interfaces.d.ts.map +1 -0
  61. package/dist/auth/interfaces.js +105 -0
  62. package/dist/auth/interfaces.js.map +1 -0
  63. package/dist/auth/mfa/index.d.ts +6 -0
  64. package/dist/auth/mfa/index.d.ts.map +1 -0
  65. package/dist/auth/mfa/index.js +13 -0
  66. package/dist/auth/mfa/index.js.map +1 -0
  67. package/dist/auth/mfa/schema.d.ts +32 -0
  68. package/dist/auth/mfa/schema.d.ts.map +1 -0
  69. package/dist/auth/mfa/schema.js +35 -0
  70. package/dist/auth/mfa/schema.js.map +1 -0
  71. package/dist/auth/mfa/service.d.ts +65 -0
  72. package/dist/auth/mfa/service.d.ts.map +1 -0
  73. package/dist/auth/mfa/service.js +255 -0
  74. package/dist/auth/mfa/service.js.map +1 -0
  75. package/dist/auth/oauth-proxy.d.ts +58 -0
  76. package/dist/auth/oauth-proxy.d.ts.map +1 -0
  77. package/dist/auth/oauth-proxy.js +298 -0
  78. package/dist/auth/oauth-proxy.js.map +1 -0
  79. package/dist/auth/otp/index.d.ts +6 -0
  80. package/dist/auth/otp/index.d.ts.map +1 -0
  81. package/dist/auth/otp/index.js +13 -0
  82. package/dist/auth/otp/index.js.map +1 -0
  83. package/dist/auth/otp/schema.d.ts +32 -0
  84. package/dist/auth/otp/schema.d.ts.map +1 -0
  85. package/dist/auth/otp/schema.js +38 -0
  86. package/dist/auth/otp/schema.js.map +1 -0
  87. package/dist/auth/otp/service.d.ts +59 -0
  88. package/dist/auth/otp/service.d.ts.map +1 -0
  89. package/dist/auth/otp/service.js +183 -0
  90. package/dist/auth/otp/service.js.map +1 -0
  91. package/dist/auth/password-recovery.d.ts +61 -0
  92. package/dist/auth/password-recovery.d.ts.map +1 -0
  93. package/dist/auth/password-recovery.js +173 -0
  94. package/dist/auth/password-recovery.js.map +1 -0
  95. package/dist/auth/resolver.d.ts +29 -0
  96. package/dist/auth/resolver.d.ts.map +1 -0
  97. package/dist/auth/resolver.js +78 -0
  98. package/dist/auth/resolver.js.map +1 -0
  99. package/dist/auth/role-helpers.d.ts +56 -0
  100. package/dist/auth/role-helpers.d.ts.map +1 -0
  101. package/dist/auth/role-helpers.js +103 -0
  102. package/dist/auth/role-helpers.js.map +1 -0
  103. package/dist/auth/session-manager.d.ts +21 -0
  104. package/dist/auth/session-manager.d.ts.map +1 -0
  105. package/dist/auth/session-manager.js +30 -0
  106. package/dist/auth/session-manager.js.map +1 -0
  107. package/dist/auth/session-security.d.ts +14 -0
  108. package/dist/auth/session-security.d.ts.map +1 -0
  109. package/dist/auth/session-security.js +26 -0
  110. package/dist/auth/session-security.js.map +1 -0
  111. package/dist/auth/system/better-auth-schema.d.ts +144 -0
  112. package/dist/auth/system/better-auth-schema.d.ts.map +1 -0
  113. package/dist/auth/system/better-auth-schema.js +250 -0
  114. package/dist/auth/system/better-auth-schema.js.map +1 -0
  115. package/dist/auth/system/constants.d.ts +114 -0
  116. package/dist/auth/system/constants.d.ts.map +1 -0
  117. package/dist/auth/system/constants.js +205 -0
  118. package/dist/auth/system/constants.js.map +1 -0
  119. package/dist/auth/system/cookies.d.ts +83 -0
  120. package/dist/auth/system/cookies.d.ts.map +1 -0
  121. package/dist/auth/system/cookies.js +148 -0
  122. package/dist/auth/system/cookies.js.map +1 -0
  123. package/dist/auth/system/crypto.d.ts +53 -0
  124. package/dist/auth/system/crypto.d.ts.map +1 -0
  125. package/dist/auth/system/crypto.js +188 -0
  126. package/dist/auth/system/crypto.js.map +1 -0
  127. package/dist/auth/system/extended-schema.d.ts +145 -0
  128. package/dist/auth/system/extended-schema.d.ts.map +1 -0
  129. package/dist/auth/system/extended-schema.js +86 -0
  130. package/dist/auth/system/extended-schema.js.map +1 -0
  131. package/dist/auth/system/schema.d.ts +538 -0
  132. package/dist/auth/system/schema.d.ts.map +1 -0
  133. package/dist/auth/system/schema.js +306 -0
  134. package/dist/auth/system/schema.js.map +1 -0
  135. package/dist/cache/client.d.ts +77 -0
  136. package/dist/cache/client.d.ts.map +1 -0
  137. package/dist/cache/client.js +279 -0
  138. package/dist/cache/client.js.map +1 -0
  139. package/dist/cache/index.d.ts +9 -0
  140. package/dist/cache/index.d.ts.map +1 -0
  141. package/dist/cache/index.js +14 -0
  142. package/dist/cache/index.js.map +1 -0
  143. package/dist/cache/layers.d.ts +125 -0
  144. package/dist/cache/layers.d.ts.map +1 -0
  145. package/dist/cache/layers.js +354 -0
  146. package/dist/cache/layers.js.map +1 -0
  147. package/dist/cache/manager.d.ts +101 -0
  148. package/dist/cache/manager.d.ts.map +1 -0
  149. package/dist/cache/manager.js +423 -0
  150. package/dist/cache/manager.js.map +1 -0
  151. package/dist/cache/protocol.d.ts +115 -0
  152. package/dist/cache/protocol.d.ts.map +1 -0
  153. package/dist/cache/protocol.js +36 -0
  154. package/dist/cache/protocol.js.map +1 -0
  155. package/dist/cache/run-sidecar.d.ts +8 -0
  156. package/dist/cache/run-sidecar.d.ts.map +1 -0
  157. package/dist/cache/run-sidecar.js +71 -0
  158. package/dist/cache/run-sidecar.js.map +1 -0
  159. package/dist/cache/sidecar-client.d.ts +90 -0
  160. package/dist/cache/sidecar-client.d.ts.map +1 -0
  161. package/dist/cache/sidecar-client.js +437 -0
  162. package/dist/cache/sidecar-client.js.map +1 -0
  163. package/dist/cache/sidecar-server.d.ts +18 -0
  164. package/dist/cache/sidecar-server.d.ts.map +1 -0
  165. package/dist/cache/sidecar-server.js +90 -0
  166. package/dist/cache/sidecar-server.js.map +1 -0
  167. package/dist/cache/store.d.ts +90 -0
  168. package/dist/cache/store.d.ts.map +1 -0
  169. package/dist/cache/store.js +357 -0
  170. package/dist/cache/store.js.map +1 -0
  171. package/dist/cache/strategies.d.ts +52 -0
  172. package/dist/cache/strategies.d.ts.map +1 -0
  173. package/dist/cache/strategies.js +13 -0
  174. package/dist/cache/strategies.js.map +1 -0
  175. package/dist/cache/utils.d.ts +16 -0
  176. package/dist/cache/utils.d.ts.map +1 -0
  177. package/dist/cache/utils.js +101 -0
  178. package/dist/cache/utils.js.map +1 -0
  179. package/dist/config/index.d.ts +4 -0
  180. package/dist/config/index.d.ts.map +1 -0
  181. package/dist/config/index.js +20 -0
  182. package/dist/config/index.js.map +1 -0
  183. package/dist/config/paths.d.ts +16 -0
  184. package/dist/config/paths.d.ts.map +1 -0
  185. package/dist/config/paths.js +29 -0
  186. package/dist/config/paths.js.map +1 -0
  187. package/dist/config/schema.d.ts +42 -0
  188. package/dist/config/schema.d.ts.map +1 -0
  189. package/dist/config/schema.js +62 -0
  190. package/dist/config/schema.js.map +1 -0
  191. package/dist/config/service.d.ts +56 -0
  192. package/dist/config/service.d.ts.map +1 -0
  193. package/dist/config/service.js +108 -0
  194. package/dist/config/service.js.map +1 -0
  195. package/dist/context.d.ts +48 -0
  196. package/dist/context.d.ts.map +1 -0
  197. package/dist/context.js +6 -0
  198. package/dist/context.js.map +1 -0
  199. package/dist/controllers/admin/admin-tokens.controller.d.ts +159 -0
  200. package/dist/controllers/admin/admin-tokens.controller.d.ts.map +1 -0
  201. package/dist/controllers/admin/admin-tokens.controller.js +138 -0
  202. package/dist/controllers/admin/admin-tokens.controller.js.map +1 -0
  203. package/dist/controllers/admin/api-keys.controller.d.ts +187 -0
  204. package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -0
  205. package/dist/controllers/admin/api-keys.controller.js +124 -0
  206. package/dist/controllers/admin/api-keys.controller.js.map +1 -0
  207. package/dist/controllers/admin/app-users.controller.d.ts +376 -0
  208. package/dist/controllers/admin/app-users.controller.d.ts.map +1 -0
  209. package/dist/controllers/admin/app-users.controller.js +348 -0
  210. package/dist/controllers/admin/app-users.controller.js.map +1 -0
  211. package/dist/controllers/admin/auth.controller.d.ts +285 -0
  212. package/dist/controllers/admin/auth.controller.d.ts.map +1 -0
  213. package/dist/controllers/admin/auth.controller.js +221 -0
  214. package/dist/controllers/admin/auth.controller.js.map +1 -0
  215. package/dist/controllers/admin/backup.controller.d.ts +250 -0
  216. package/dist/controllers/admin/backup.controller.d.ts.map +1 -0
  217. package/dist/controllers/admin/backup.controller.js +316 -0
  218. package/dist/controllers/admin/backup.controller.js.map +1 -0
  219. package/dist/controllers/admin/data.controller.d.ts +250 -0
  220. package/dist/controllers/admin/data.controller.d.ts.map +1 -0
  221. package/dist/controllers/admin/data.controller.js +240 -0
  222. package/dist/controllers/admin/data.controller.js.map +1 -0
  223. package/dist/controllers/admin/provisioning.controller.d.ts +77 -0
  224. package/dist/controllers/admin/provisioning.controller.d.ts.map +1 -0
  225. package/dist/controllers/admin/provisioning.controller.js +141 -0
  226. package/dist/controllers/admin/provisioning.controller.js.map +1 -0
  227. package/dist/controllers/admin/settings.controller.d.ts +153 -0
  228. package/dist/controllers/admin/settings.controller.d.ts.map +1 -0
  229. package/dist/controllers/admin/settings.controller.js +120 -0
  230. package/dist/controllers/admin/settings.controller.js.map +1 -0
  231. package/dist/controllers/admin/setup.controller.d.ts +104 -0
  232. package/dist/controllers/admin/setup.controller.d.ts.map +1 -0
  233. package/dist/controllers/admin/setup.controller.js +113 -0
  234. package/dist/controllers/admin/setup.controller.js.map +1 -0
  235. package/dist/controllers/admin/tenants.controller.d.ts +275 -0
  236. package/dist/controllers/admin/tenants.controller.d.ts.map +1 -0
  237. package/dist/controllers/admin/tenants.controller.js +206 -0
  238. package/dist/controllers/admin/tenants.controller.js.map +1 -0
  239. package/dist/controllers/admin/users.controller.d.ts +253 -0
  240. package/dist/controllers/admin/users.controller.d.ts.map +1 -0
  241. package/dist/controllers/admin/users.controller.js +186 -0
  242. package/dist/controllers/admin/users.controller.js.map +1 -0
  243. package/dist/controllers/auth.controller.d.ts +308 -0
  244. package/dist/controllers/auth.controller.d.ts.map +1 -0
  245. package/dist/controllers/auth.controller.js +305 -0
  246. package/dist/controllers/auth.controller.js.map +1 -0
  247. package/dist/controllers/crud-generator.controller.d.ts +83 -0
  248. package/dist/controllers/crud-generator.controller.d.ts.map +1 -0
  249. package/dist/controllers/crud-generator.controller.js +201 -0
  250. package/dist/controllers/crud-generator.controller.js.map +1 -0
  251. package/dist/controllers/deployment-events.controller.d.ts +74 -0
  252. package/dist/controllers/deployment-events.controller.d.ts.map +1 -0
  253. package/dist/controllers/deployment-events.controller.js +143 -0
  254. package/dist/controllers/deployment-events.controller.js.map +1 -0
  255. package/dist/controllers/index.d.ts +18 -0
  256. package/dist/controllers/index.d.ts.map +1 -0
  257. package/dist/controllers/index.js +42 -0
  258. package/dist/controllers/index.js.map +1 -0
  259. package/dist/controllers/introspection.controller.d.ts +430 -0
  260. package/dist/controllers/introspection.controller.d.ts.map +1 -0
  261. package/dist/controllers/introspection.controller.js +358 -0
  262. package/dist/controllers/introspection.controller.js.map +1 -0
  263. package/dist/controllers/invite.controller.d.ts +218 -0
  264. package/dist/controllers/invite.controller.d.ts.map +1 -0
  265. package/dist/controllers/invite.controller.js +218 -0
  266. package/dist/controllers/invite.controller.js.map +1 -0
  267. package/dist/controllers/mfa.controller.d.ts +211 -0
  268. package/dist/controllers/mfa.controller.d.ts.map +1 -0
  269. package/dist/controllers/mfa.controller.js +155 -0
  270. package/dist/controllers/mfa.controller.js.map +1 -0
  271. package/dist/controllers/otp.controller.d.ts +220 -0
  272. package/dist/controllers/otp.controller.d.ts.map +1 -0
  273. package/dist/controllers/otp.controller.js +223 -0
  274. package/dist/controllers/otp.controller.js.map +1 -0
  275. package/dist/controllers/storage.controller.d.ts +297 -0
  276. package/dist/controllers/storage.controller.d.ts.map +1 -0
  277. package/dist/controllers/storage.controller.js +304 -0
  278. package/dist/controllers/storage.controller.js.map +1 -0
  279. package/dist/controllers/system.controller.d.ts +176 -0
  280. package/dist/controllers/system.controller.d.ts.map +1 -0
  281. package/dist/controllers/system.controller.js +222 -0
  282. package/dist/controllers/system.controller.js.map +1 -0
  283. package/dist/controllers/tenant.controller.d.ts +316 -0
  284. package/dist/controllers/tenant.controller.d.ts.map +1 -0
  285. package/dist/controllers/tenant.controller.js +269 -0
  286. package/dist/controllers/tenant.controller.js.map +1 -0
  287. package/dist/db/cachedclient.d.ts +69 -0
  288. package/dist/db/cachedclient.d.ts.map +1 -0
  289. package/dist/db/cachedclient.js +331 -0
  290. package/dist/db/cachedclient.js.map +1 -0
  291. package/dist/db/distributed-client.d.ts +82 -0
  292. package/dist/db/distributed-client.d.ts.map +1 -0
  293. package/dist/db/distributed-client.js +477 -0
  294. package/dist/db/distributed-client.js.map +1 -0
  295. package/dist/db/factory.d.ts +19 -0
  296. package/dist/db/factory.d.ts.map +1 -0
  297. package/dist/db/factory.js +44 -0
  298. package/dist/db/factory.js.map +1 -0
  299. package/dist/db/interfaces.d.ts +67 -0
  300. package/dist/db/interfaces.d.ts.map +1 -0
  301. package/dist/db/interfaces.js +3 -0
  302. package/dist/db/interfaces.js.map +1 -0
  303. package/dist/db/socket-client.d.ts +122 -0
  304. package/dist/db/socket-client.d.ts.map +1 -0
  305. package/dist/db/socket-client.js +1092 -0
  306. package/dist/db/socket-client.js.map +1 -0
  307. package/dist/db/store-config.d.ts +19 -0
  308. package/dist/db/store-config.d.ts.map +1 -0
  309. package/dist/db/store-config.js +65 -0
  310. package/dist/db/store-config.js.map +1 -0
  311. package/dist/deployment/function-extractor.d.ts +11 -0
  312. package/dist/deployment/function-extractor.d.ts.map +1 -0
  313. package/dist/deployment/function-extractor.js +101 -0
  314. package/dist/deployment/function-extractor.js.map +1 -0
  315. package/dist/deployment/handler.d.ts +174 -0
  316. package/dist/deployment/handler.d.ts.map +1 -0
  317. package/dist/deployment/handler.js +1437 -0
  318. package/dist/deployment/handler.js.map +1 -0
  319. package/dist/deployment/persistence.d.ts +97 -0
  320. package/dist/deployment/persistence.d.ts.map +1 -0
  321. package/dist/deployment/persistence.js +238 -0
  322. package/dist/deployment/persistence.js.map +1 -0
  323. package/dist/deployment/protocol.d.ts +34 -0
  324. package/dist/deployment/protocol.d.ts.map +1 -0
  325. package/dist/deployment/protocol.js +7 -0
  326. package/dist/deployment/protocol.js.map +1 -0
  327. package/dist/di/container.d.ts +58 -0
  328. package/dist/di/container.d.ts.map +1 -0
  329. package/dist/di/container.js +121 -0
  330. package/dist/di/container.js.map +1 -0
  331. package/dist/di/decorators.d.ts +57 -0
  332. package/dist/di/decorators.d.ts.map +1 -0
  333. package/dist/di/decorators.js +80 -0
  334. package/dist/di/decorators.js.map +1 -0
  335. package/dist/di/index.d.ts +10 -0
  336. package/dist/di/index.d.ts.map +1 -0
  337. package/dist/di/index.js +21 -0
  338. package/dist/di/index.js.map +1 -0
  339. package/dist/di/resolver.d.ts +26 -0
  340. package/dist/di/resolver.d.ts.map +1 -0
  341. package/dist/di/resolver.js +32 -0
  342. package/dist/di/resolver.js.map +1 -0
  343. package/dist/docker/compose.d.ts +3 -0
  344. package/dist/docker/compose.d.ts.map +1 -0
  345. package/dist/docker/compose.js +106 -0
  346. package/dist/docker/compose.js.map +1 -0
  347. package/dist/docker/index.d.ts +4 -0
  348. package/dist/docker/index.d.ts.map +1 -0
  349. package/dist/docker/index.js +8 -0
  350. package/dist/docker/index.js.map +1 -0
  351. package/dist/docker/manager.d.ts +14 -0
  352. package/dist/docker/manager.d.ts.map +1 -0
  353. package/dist/docker/manager.js +76 -0
  354. package/dist/docker/manager.js.map +1 -0
  355. package/dist/docker/types.d.ts +18 -0
  356. package/dist/docker/types.d.ts.map +1 -0
  357. package/dist/docker/types.js +3 -0
  358. package/dist/docker/types.js.map +1 -0
  359. package/dist/email/index.d.ts +6 -0
  360. package/dist/email/index.d.ts.map +1 -0
  361. package/dist/email/index.js +25 -0
  362. package/dist/email/index.js.map +1 -0
  363. package/dist/email/service.d.ts +89 -0
  364. package/dist/email/service.d.ts.map +1 -0
  365. package/dist/email/service.js +215 -0
  366. package/dist/email/service.js.map +1 -0
  367. package/dist/email/templates/MagicLinkEmail.d.ts +8 -0
  368. package/dist/email/templates/MagicLinkEmail.d.ts.map +1 -0
  369. package/dist/email/templates/MagicLinkEmail.js +84 -0
  370. package/dist/email/templates/MagicLinkEmail.js.map +1 -0
  371. package/dist/email/templates/OtpEmail.d.ts +8 -0
  372. package/dist/email/templates/OtpEmail.d.ts.map +1 -0
  373. package/dist/email/templates/OtpEmail.js +72 -0
  374. package/dist/email/templates/OtpEmail.js.map +1 -0
  375. package/dist/email/templates/PasswordResetEmail.d.ts +9 -0
  376. package/dist/email/templates/PasswordResetEmail.d.ts.map +1 -0
  377. package/dist/email/templates/PasswordResetEmail.js +103 -0
  378. package/dist/email/templates/PasswordResetEmail.js.map +1 -0
  379. package/dist/email/templates/WelcomeEmail.d.ts +8 -0
  380. package/dist/email/templates/WelcomeEmail.d.ts.map +1 -0
  381. package/dist/email/templates/WelcomeEmail.js +94 -0
  382. package/dist/email/templates/WelcomeEmail.js.map +1 -0
  383. package/dist/email/templates/index.d.ts +9 -0
  384. package/dist/email/templates/index.d.ts.map +1 -0
  385. package/dist/email/templates/index.js +16 -0
  386. package/dist/email/templates/index.js.map +1 -0
  387. package/dist/engine/context.d.ts +9 -0
  388. package/dist/engine/context.d.ts.map +1 -0
  389. package/dist/engine/context.js +9 -0
  390. package/dist/engine/context.js.map +1 -0
  391. package/dist/engine/runner.d.ts +115 -0
  392. package/dist/engine/runner.d.ts.map +1 -0
  393. package/dist/engine/runner.js +617 -0
  394. package/dist/engine/runner.js.map +1 -0
  395. package/dist/functions/built-in/auth-apikey.d.ts +21 -0
  396. package/dist/functions/built-in/auth-apikey.d.ts.map +1 -0
  397. package/dist/functions/built-in/auth-apikey.js +344 -0
  398. package/dist/functions/built-in/auth-apikey.js.map +1 -0
  399. package/dist/functions/built-in/auth-email.d.ts +3 -0
  400. package/dist/functions/built-in/auth-email.d.ts.map +1 -0
  401. package/dist/functions/built-in/auth-email.js +63 -0
  402. package/dist/functions/built-in/auth-email.js.map +1 -0
  403. package/dist/functions/built-in/auth-invite.d.ts +5 -0
  404. package/dist/functions/built-in/auth-invite.d.ts.map +1 -0
  405. package/dist/functions/built-in/auth-invite.js +105 -0
  406. package/dist/functions/built-in/auth-invite.js.map +1 -0
  407. package/dist/functions/built-in/auth-password.d.ts +4 -0
  408. package/dist/functions/built-in/auth-password.d.ts.map +1 -0
  409. package/dist/functions/built-in/auth-password.js +107 -0
  410. package/dist/functions/built-in/auth-password.js.map +1 -0
  411. package/dist/functions/built-in/auth-session.d.ts +18 -0
  412. package/dist/functions/built-in/auth-session.d.ts.map +1 -0
  413. package/dist/functions/built-in/auth-session.js +221 -0
  414. package/dist/functions/built-in/auth-session.js.map +1 -0
  415. package/dist/functions/built-in/auth-signin.d.ts +20 -0
  416. package/dist/functions/built-in/auth-signin.d.ts.map +1 -0
  417. package/dist/functions/built-in/auth-signin.js +198 -0
  418. package/dist/functions/built-in/auth-signin.js.map +1 -0
  419. package/dist/functions/built-in/auth-signout.d.ts +18 -0
  420. package/dist/functions/built-in/auth-signout.d.ts.map +1 -0
  421. package/dist/functions/built-in/auth-signout.js +78 -0
  422. package/dist/functions/built-in/auth-signout.js.map +1 -0
  423. package/dist/functions/built-in/auth-signup.d.ts +21 -0
  424. package/dist/functions/built-in/auth-signup.d.ts.map +1 -0
  425. package/dist/functions/built-in/auth-signup.js +147 -0
  426. package/dist/functions/built-in/auth-signup.js.map +1 -0
  427. package/dist/functions/built-in/auth-tenant.d.ts +3 -0
  428. package/dist/functions/built-in/auth-tenant.d.ts.map +1 -0
  429. package/dist/functions/built-in/auth-tenant.js +86 -0
  430. package/dist/functions/built-in/auth-tenant.js.map +1 -0
  431. package/dist/functions/built-in/index.d.ts +55 -0
  432. package/dist/functions/built-in/index.d.ts.map +1 -0
  433. package/dist/functions/built-in/index.js +181 -0
  434. package/dist/functions/built-in/index.js.map +1 -0
  435. package/dist/functions/built-in/system-cache.d.ts +10 -0
  436. package/dist/functions/built-in/system-cache.d.ts.map +1 -0
  437. package/dist/functions/built-in/system-cache.js +98 -0
  438. package/dist/functions/built-in/system-cache.js.map +1 -0
  439. package/dist/functions/built-in/system-data.d.ts +13 -0
  440. package/dist/functions/built-in/system-data.d.ts.map +1 -0
  441. package/dist/functions/built-in/system-data.js +133 -0
  442. package/dist/functions/built-in/system-data.js.map +1 -0
  443. package/dist/functions/built-in/system-jobs.d.ts +22 -0
  444. package/dist/functions/built-in/system-jobs.d.ts.map +1 -0
  445. package/dist/functions/built-in/system-jobs.js +82 -0
  446. package/dist/functions/built-in/system-jobs.js.map +1 -0
  447. package/dist/functions/built-in/system-notifications.d.ts +41 -0
  448. package/dist/functions/built-in/system-notifications.d.ts.map +1 -0
  449. package/dist/functions/built-in/system-notifications.js +72 -0
  450. package/dist/functions/built-in/system-notifications.js.map +1 -0
  451. package/dist/functions/built-in/system-performance.d.ts +25 -0
  452. package/dist/functions/built-in/system-performance.d.ts.map +1 -0
  453. package/dist/functions/built-in/system-performance.js +83 -0
  454. package/dist/functions/built-in/system-performance.js.map +1 -0
  455. package/dist/functions/built-in-registry.d.ts +101 -0
  456. package/dist/functions/built-in-registry.d.ts.map +1 -0
  457. package/dist/functions/built-in-registry.js +165 -0
  458. package/dist/functions/built-in-registry.js.map +1 -0
  459. package/dist/functions/definition.d.ts +206 -0
  460. package/dist/functions/definition.d.ts.map +1 -0
  461. package/dist/functions/definition.js +178 -0
  462. package/dist/functions/definition.js.map +1 -0
  463. package/dist/functions/types.d.ts +151 -0
  464. package/dist/functions/types.d.ts.map +1 -0
  465. package/dist/functions/types.js +3 -0
  466. package/dist/functions/types.js.map +1 -0
  467. package/dist/http/context-helper.d.ts +60 -0
  468. package/dist/http/context-helper.d.ts.map +1 -0
  469. package/dist/http/context-helper.js +161 -0
  470. package/dist/http/context-helper.js.map +1 -0
  471. package/dist/http/definition.d.ts +76 -0
  472. package/dist/http/definition.d.ts.map +1 -0
  473. package/dist/http/definition.js +46 -0
  474. package/dist/http/definition.js.map +1 -0
  475. package/dist/http/index.d.ts +7 -0
  476. package/dist/http/index.d.ts.map +1 -0
  477. package/dist/http/index.js +12 -0
  478. package/dist/http/index.js.map +1 -0
  479. package/dist/http/plugins/auth.d.ts +71 -0
  480. package/dist/http/plugins/auth.d.ts.map +1 -0
  481. package/dist/http/plugins/auth.js +67 -0
  482. package/dist/http/plugins/auth.js.map +1 -0
  483. package/dist/http/plugins/better-auth.d.ts +67 -0
  484. package/dist/http/plugins/better-auth.d.ts.map +1 -0
  485. package/dist/http/plugins/better-auth.js +48 -0
  486. package/dist/http/plugins/better-auth.js.map +1 -0
  487. package/dist/http/router.d.ts +59 -0
  488. package/dist/http/router.d.ts.map +1 -0
  489. package/dist/http/router.js +371 -0
  490. package/dist/http/router.js.map +1 -0
  491. package/dist/http/server.d.ts +15 -0
  492. package/dist/http/server.d.ts.map +1 -0
  493. package/dist/http/server.js +217 -0
  494. package/dist/http/server.js.map +1 -0
  495. package/dist/http/types.d.ts +142 -0
  496. package/dist/http/types.d.ts.map +1 -0
  497. package/dist/http/types.js +7 -0
  498. package/dist/http/types.js.map +1 -0
  499. package/dist/index.d.mts +2 -0
  500. package/dist/index.d.mts.map +1 -0
  501. package/dist/index.mjs +116 -0
  502. package/dist/index.mjs.map +1 -0
  503. package/dist/ipc/run-sidecar.d.ts +8 -0
  504. package/dist/ipc/run-sidecar.d.ts.map +1 -0
  505. package/dist/ipc/run-sidecar.js +127 -0
  506. package/dist/ipc/run-sidecar.js.map +1 -0
  507. package/dist/ipc/socket-bridge.d.ts +114 -0
  508. package/dist/ipc/socket-bridge.d.ts.map +1 -0
  509. package/dist/ipc/socket-bridge.js +724 -0
  510. package/dist/ipc/socket-bridge.js.map +1 -0
  511. package/dist/jobs/index.d.ts +7 -0
  512. package/dist/jobs/index.d.ts.map +1 -0
  513. package/dist/jobs/index.js +10 -0
  514. package/dist/jobs/index.js.map +1 -0
  515. package/dist/jobs/queue.d.ts +62 -0
  516. package/dist/jobs/queue.d.ts.map +1 -0
  517. package/dist/jobs/queue.js +192 -0
  518. package/dist/jobs/queue.js.map +1 -0
  519. package/dist/jobs/run-scheduler.d.ts +2 -0
  520. package/dist/jobs/run-scheduler.d.ts.map +1 -0
  521. package/dist/jobs/run-scheduler.js +245 -0
  522. package/dist/jobs/run-scheduler.js.map +1 -0
  523. package/dist/jobs/run-worker.d.ts +2 -0
  524. package/dist/jobs/run-worker.d.ts.map +1 -0
  525. package/dist/jobs/run-worker.js +123 -0
  526. package/dist/jobs/run-worker.js.map +1 -0
  527. package/dist/jobs/runtime-loader.d.ts +14 -0
  528. package/dist/jobs/runtime-loader.d.ts.map +1 -0
  529. package/dist/jobs/runtime-loader.js +122 -0
  530. package/dist/jobs/runtime-loader.js.map +1 -0
  531. package/dist/jobs/scheduler-client.d.ts +33 -0
  532. package/dist/jobs/scheduler-client.d.ts.map +1 -0
  533. package/dist/jobs/scheduler-client.js +69 -0
  534. package/dist/jobs/scheduler-client.js.map +1 -0
  535. package/dist/jobs/scheduler.d.ts +73 -0
  536. package/dist/jobs/scheduler.d.ts.map +1 -0
  537. package/dist/jobs/scheduler.js +297 -0
  538. package/dist/jobs/scheduler.js.map +1 -0
  539. package/dist/jobs/worker-thread.d.ts +27 -0
  540. package/dist/jobs/worker-thread.d.ts.map +1 -0
  541. package/dist/jobs/worker-thread.js +173 -0
  542. package/dist/jobs/worker-thread.js.map +1 -0
  543. package/dist/jobs/worker.d.ts +30 -0
  544. package/dist/jobs/worker.d.ts.map +1 -0
  545. package/dist/jobs/worker.js +262 -0
  546. package/dist/jobs/worker.js.map +1 -0
  547. package/dist/jobs/ws-client.d.ts +23 -0
  548. package/dist/jobs/ws-client.d.ts.map +1 -0
  549. package/dist/jobs/ws-client.js +105 -0
  550. package/dist/jobs/ws-client.js.map +1 -0
  551. package/dist/linq/async-enumerable.d.ts +91 -0
  552. package/dist/linq/async-enumerable.d.ts.map +1 -0
  553. package/dist/linq/async-enumerable.js +176 -0
  554. package/dist/linq/async-enumerable.js.map +1 -0
  555. package/dist/linq/enumerable.d.ts +94 -0
  556. package/dist/linq/enumerable.d.ts.map +1 -0
  557. package/dist/linq/enumerable.js +210 -0
  558. package/dist/linq/enumerable.js.map +1 -0
  559. package/dist/linq/index.d.ts +25 -0
  560. package/dist/linq/index.d.ts.map +1 -0
  561. package/dist/linq/index.js +27 -0
  562. package/dist/linq/index.js.map +1 -0
  563. package/dist/linq/interfaces.d.ts +23 -0
  564. package/dist/linq/interfaces.d.ts.map +1 -0
  565. package/dist/linq/interfaces.js +3 -0
  566. package/dist/linq/interfaces.js.map +1 -0
  567. package/dist/logging/logger.d.ts +85 -0
  568. package/dist/logging/logger.d.ts.map +1 -0
  569. package/dist/logging/logger.js +217 -0
  570. package/dist/logging/logger.js.map +1 -0
  571. package/dist/query/builder.d.ts +91 -0
  572. package/dist/query/builder.d.ts.map +1 -0
  573. package/dist/query/builder.js +103 -0
  574. package/dist/query/builder.js.map +1 -0
  575. package/dist/query/types.d.ts +112 -0
  576. package/dist/query/types.d.ts.map +1 -0
  577. package/dist/query/types.js +3 -0
  578. package/dist/query/types.js.map +1 -0
  579. package/dist/reactivity/graph.d.ts +8 -0
  580. package/dist/reactivity/graph.d.ts.map +1 -0
  581. package/dist/reactivity/graph.js +51 -0
  582. package/dist/reactivity/graph.js.map +1 -0
  583. package/dist/repository/db-set.d.ts +220 -0
  584. package/dist/repository/db-set.d.ts.map +1 -0
  585. package/dist/repository/db-set.js +515 -0
  586. package/dist/repository/db-set.js.map +1 -0
  587. package/dist/repository/ef-core.d.ts +177 -0
  588. package/dist/repository/ef-core.d.ts.map +1 -0
  589. package/dist/repository/ef-core.js +404 -0
  590. package/dist/repository/ef-core.js.map +1 -0
  591. package/dist/repository/factory.d.ts +117 -0
  592. package/dist/repository/factory.d.ts.map +1 -0
  593. package/dist/repository/factory.js +183 -0
  594. package/dist/repository/factory.js.map +1 -0
  595. package/dist/repository/interfaces.d.ts +449 -0
  596. package/dist/repository/interfaces.d.ts.map +1 -0
  597. package/dist/repository/interfaces.js +21 -0
  598. package/dist/repository/interfaces.js.map +1 -0
  599. package/dist/repository/provider.d.ts +16 -0
  600. package/dist/repository/provider.d.ts.map +1 -0
  601. package/dist/repository/provider.js +674 -0
  602. package/dist/repository/provider.js.map +1 -0
  603. package/dist/repository/queryable.d.ts +111 -0
  604. package/dist/repository/queryable.d.ts.map +1 -0
  605. package/dist/repository/queryable.js +566 -0
  606. package/dist/repository/queryable.js.map +1 -0
  607. package/dist/rpc/adapter.d.ts +18 -0
  608. package/dist/rpc/adapter.d.ts.map +1 -0
  609. package/dist/rpc/adapter.js +101 -0
  610. package/dist/rpc/adapter.js.map +1 -0
  611. package/dist/rpc/router.d.ts +82 -0
  612. package/dist/rpc/router.d.ts.map +1 -0
  613. package/dist/rpc/router.js +177 -0
  614. package/dist/rpc/router.js.map +1 -0
  615. package/dist/schema/definition.d.ts +51 -0
  616. package/dist/schema/definition.d.ts.map +1 -0
  617. package/dist/schema/definition.js +79 -0
  618. package/dist/schema/definition.js.map +1 -0
  619. package/dist/schema/input-types.d.ts +88 -0
  620. package/dist/schema/input-types.d.ts.map +1 -0
  621. package/dist/schema/input-types.js +81 -0
  622. package/dist/schema/input-types.js.map +1 -0
  623. package/dist/schema/modifiers.d.ts +173 -0
  624. package/dist/schema/modifiers.d.ts.map +1 -0
  625. package/dist/schema/modifiers.js +218 -0
  626. package/dist/schema/modifiers.js.map +1 -0
  627. package/dist/schema/relationship-types.d.ts +109 -0
  628. package/dist/schema/relationship-types.d.ts.map +1 -0
  629. package/dist/schema/relationship-types.js +11 -0
  630. package/dist/schema/relationship-types.js.map +1 -0
  631. package/dist/schema/type-helpers.d.ts +105 -0
  632. package/dist/schema/type-helpers.d.ts.map +1 -0
  633. package/dist/schema/type-helpers.js +215 -0
  634. package/dist/schema/type-helpers.js.map +1 -0
  635. package/dist/schema/types.d.ts +144 -0
  636. package/dist/schema/types.d.ts.map +1 -0
  637. package/dist/schema/types.js +12 -0
  638. package/dist/schema/types.js.map +1 -0
  639. package/dist/schema/validators.d.ts +127 -0
  640. package/dist/schema/validators.d.ts.map +1 -0
  641. package/dist/schema/validators.js +164 -0
  642. package/dist/schema/validators.js.map +1 -0
  643. package/dist/services/admin/app-users.service.d.ts +138 -0
  644. package/dist/services/admin/app-users.service.d.ts.map +1 -0
  645. package/dist/services/admin/app-users.service.js +435 -0
  646. package/dist/services/admin/app-users.service.js.map +1 -0
  647. package/dist/services/admin/auth.service.d.ts +104 -0
  648. package/dist/services/admin/auth.service.d.ts.map +1 -0
  649. package/dist/services/admin/auth.service.js +208 -0
  650. package/dist/services/admin/auth.service.js.map +1 -0
  651. package/dist/services/admin/backup/BackupOrchestrator.d.ts +38 -0
  652. package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -0
  653. package/dist/services/admin/backup/BackupOrchestrator.js +350 -0
  654. package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -0
  655. package/dist/services/admin/backup/DataStreamer.d.ts +11 -0
  656. package/dist/services/admin/backup/DataStreamer.d.ts.map +1 -0
  657. package/dist/services/admin/backup/DataStreamer.js +85 -0
  658. package/dist/services/admin/backup/DataStreamer.js.map +1 -0
  659. package/dist/services/admin/backup/LegacyAdapter.d.ts +28 -0
  660. package/dist/services/admin/backup/LegacyAdapter.d.ts.map +1 -0
  661. package/dist/services/admin/backup/LegacyAdapter.js +35 -0
  662. package/dist/services/admin/backup/LegacyAdapter.js.map +1 -0
  663. package/dist/services/admin/backup/SqliteGenerator.d.ts +15 -0
  664. package/dist/services/admin/backup/SqliteGenerator.d.ts.map +1 -0
  665. package/dist/services/admin/backup/SqliteGenerator.js +152 -0
  666. package/dist/services/admin/backup/SqliteGenerator.js.map +1 -0
  667. package/dist/services/admin/backup/StorageStreamer.d.ts +17 -0
  668. package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -0
  669. package/dist/services/admin/backup/StorageStreamer.js +117 -0
  670. package/dist/services/admin/backup/StorageStreamer.js.map +1 -0
  671. package/dist/services/admin/backup/ZipComposer.d.ts +17 -0
  672. package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -0
  673. package/dist/services/admin/backup/ZipComposer.js +95 -0
  674. package/dist/services/admin/backup/ZipComposer.js.map +1 -0
  675. package/dist/services/admin/backup/ZipExtractor.d.ts +24 -0
  676. package/dist/services/admin/backup/ZipExtractor.d.ts.map +1 -0
  677. package/dist/services/admin/backup/ZipExtractor.js +135 -0
  678. package/dist/services/admin/backup/ZipExtractor.js.map +1 -0
  679. package/dist/services/admin/backup/index.d.ts +9 -0
  680. package/dist/services/admin/backup/index.d.ts.map +1 -0
  681. package/dist/services/admin/backup/index.js +18 -0
  682. package/dist/services/admin/backup/index.js.map +1 -0
  683. package/dist/services/admin/backup/types.d.ts +48 -0
  684. package/dist/services/admin/backup/types.d.ts.map +1 -0
  685. package/dist/services/admin/backup/types.js +3 -0
  686. package/dist/services/admin/backup/types.js.map +1 -0
  687. package/dist/services/admin/backup.service.d.ts +117 -0
  688. package/dist/services/admin/backup.service.d.ts.map +1 -0
  689. package/dist/services/admin/backup.service.js +709 -0
  690. package/dist/services/admin/backup.service.js.map +1 -0
  691. package/dist/services/admin/data.service.d.ts +109 -0
  692. package/dist/services/admin/data.service.d.ts.map +1 -0
  693. package/dist/services/admin/data.service.js +734 -0
  694. package/dist/services/admin/data.service.js.map +1 -0
  695. package/dist/services/admin/tenants.service.d.ts +99 -0
  696. package/dist/services/admin/tenants.service.d.ts.map +1 -0
  697. package/dist/services/admin/tenants.service.js +173 -0
  698. package/dist/services/admin/tenants.service.js.map +1 -0
  699. package/dist/services/auth.service.d.ts +155 -0
  700. package/dist/services/auth.service.d.ts.map +1 -0
  701. package/dist/services/auth.service.js +401 -0
  702. package/dist/services/auth.service.js.map +1 -0
  703. package/dist/services/introspection.service.d.ts +262 -0
  704. package/dist/services/introspection.service.d.ts.map +1 -0
  705. package/dist/services/introspection.service.js +400 -0
  706. package/dist/services/introspection.service.js.map +1 -0
  707. package/dist/services/invite.service.d.ts +87 -0
  708. package/dist/services/invite.service.d.ts.map +1 -0
  709. package/dist/services/invite.service.js +216 -0
  710. package/dist/services/invite.service.js.map +1 -0
  711. package/dist/services/storage.service.d.ts +79 -0
  712. package/dist/services/storage.service.d.ts.map +1 -0
  713. package/dist/services/storage.service.js +209 -0
  714. package/dist/services/storage.service.js.map +1 -0
  715. package/dist/services/system.service.d.ts +60 -0
  716. package/dist/services/system.service.d.ts.map +1 -0
  717. package/dist/services/system.service.js +176 -0
  718. package/dist/services/system.service.js.map +1 -0
  719. package/dist/services/tenant.service.d.ts +112 -0
  720. package/dist/services/tenant.service.d.ts.map +1 -0
  721. package/dist/services/tenant.service.js +359 -0
  722. package/dist/services/tenant.service.js.map +1 -0
  723. package/dist/settings/index.d.ts +6 -0
  724. package/dist/settings/index.d.ts.map +1 -0
  725. package/dist/settings/index.js +13 -0
  726. package/dist/settings/index.js.map +1 -0
  727. package/dist/settings/schema.d.ts +39 -0
  728. package/dist/settings/schema.d.ts.map +1 -0
  729. package/dist/settings/schema.js +41 -0
  730. package/dist/settings/schema.js.map +1 -0
  731. package/dist/settings/service.d.ts +28 -0
  732. package/dist/settings/service.d.ts.map +1 -0
  733. package/dist/settings/service.js +133 -0
  734. package/dist/settings/service.js.map +1 -0
  735. package/dist/startup/bootstrap.d.ts +13 -0
  736. package/dist/startup/bootstrap.d.ts.map +1 -0
  737. package/dist/startup/bootstrap.js +262 -0
  738. package/dist/startup/bootstrap.js.map +1 -0
  739. package/dist/startup/cluster-manager.d.ts +59 -0
  740. package/dist/startup/cluster-manager.d.ts.map +1 -0
  741. package/dist/startup/cluster-manager.js +238 -0
  742. package/dist/startup/cluster-manager.js.map +1 -0
  743. package/dist/startup/process-manager.d.ts +46 -0
  744. package/dist/startup/process-manager.d.ts.map +1 -0
  745. package/dist/startup/process-manager.js +288 -0
  746. package/dist/startup/process-manager.js.map +1 -0
  747. package/dist/startup/processes.d.mts +15 -0
  748. package/dist/startup/processes.d.mts.map +1 -0
  749. package/dist/startup/processes.mjs +162 -0
  750. package/dist/startup/processes.mjs.map +1 -0
  751. package/dist/startup.js +42 -0
  752. package/dist/storage/fs-backend.d.ts +38 -0
  753. package/dist/storage/fs-backend.d.ts.map +1 -0
  754. package/dist/storage/fs-backend.js +129 -0
  755. package/dist/storage/fs-backend.js.map +1 -0
  756. package/dist/storage/manager.d.ts +88 -0
  757. package/dist/storage/manager.d.ts.map +1 -0
  758. package/dist/storage/manager.js +416 -0
  759. package/dist/storage/manager.js.map +1 -0
  760. package/dist/storage/s3-backend.d.ts +30 -0
  761. package/dist/storage/s3-backend.d.ts.map +1 -0
  762. package/dist/storage/s3-backend.js +65 -0
  763. package/dist/storage/s3-backend.js.map +1 -0
  764. package/dist/storage/types.d.ts +56 -0
  765. package/dist/storage/types.d.ts.map +1 -0
  766. package/dist/storage/types.js +3 -0
  767. package/dist/storage/types.js.map +1 -0
  768. package/dist/utils/http.d.ts +16 -0
  769. package/dist/utils/http.d.ts.map +1 -0
  770. package/dist/utils/http.js +61 -0
  771. package/dist/utils/http.js.map +1 -0
  772. package/dist/utils/introspection-helpers.d.ts +35 -0
  773. package/dist/utils/introspection-helpers.d.ts.map +1 -0
  774. package/dist/utils/introspection-helpers.js +246 -0
  775. package/dist/utils/introspection-helpers.js.map +1 -0
  776. package/dist/webhook/definition.d.ts +79 -0
  777. package/dist/webhook/definition.d.ts.map +1 -0
  778. package/dist/webhook/definition.js +33 -0
  779. package/dist/webhook/definition.js.map +1 -0
  780. package/dist/webhook/guard.d.ts +34 -0
  781. package/dist/webhook/guard.d.ts.map +1 -0
  782. package/dist/webhook/guard.js +86 -0
  783. package/dist/webhook/guard.js.map +1 -0
  784. package/dist/webhook/index.d.ts +9 -0
  785. package/dist/webhook/index.d.ts.map +1 -0
  786. package/dist/webhook/index.js +19 -0
  787. package/dist/webhook/index.js.map +1 -0
  788. package/dist/webhook/verifier.d.ts +24 -0
  789. package/dist/webhook/verifier.d.ts.map +1 -0
  790. package/dist/webhook/verifier.js +107 -0
  791. package/dist/webhook/verifier.js.map +1 -0
  792. package/dist/websocket/server.d.ts +74 -0
  793. package/dist/websocket/server.d.ts.map +1 -0
  794. package/dist/websocket/server.js +693 -0
  795. package/dist/websocket/server.js.map +1 -0
  796. package/dist/websocket/types.d.ts +53 -0
  797. package/dist/websocket/types.d.ts.map +1 -0
  798. package/dist/websocket/types.js +3 -0
  799. package/dist/websocket/types.js.map +1 -0
  800. package/dist/websocket/ws-compat.d.ts +26 -0
  801. package/dist/websocket/ws-compat.d.ts.map +1 -0
  802. package/dist/websocket/ws-compat.js +35 -0
  803. package/dist/websocket/ws-compat.js.map +1 -0
  804. package/docker/README.md +5 -0
  805. package/package.json +210 -0
  806. package/scripts/postinstall.js +31 -0
  807. package/templates/.env.example +55 -0
  808. package/templates/archlast.config.js +36 -0
  809. package/templates/docker-compose.dev.yml +8 -0
  810. package/templates/docker-compose.prod.yml +15 -0
  811. package/templates/docker-compose.yml +33 -0
@@ -0,0 +1,1092 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.SocketDatabaseClient = void 0;
40
+ exports.loadSocketConfig = loadSocketConfig;
41
+ const net_1 = __importDefault(require("net"));
42
+ const tls_1 = __importDefault(require("tls"));
43
+ const logger_js_1 = require("../logging/logger.js");
44
+ const builder_js_1 = require("../query/builder.js");
45
+ const context_js_1 = require("../engine/context.js");
46
+ const fs = __importStar(require("fs"));
47
+ const path = __importStar(require("path"));
48
+ /**
49
+ * Loads configuration from environment variables
50
+ * Implements Secure Document Store Protocol (v4) with Dev Shim
51
+ */
52
+ function loadSocketConfig() {
53
+ const config = {
54
+ useUnixSocket: process.env.ARCHLAST_STORE_UNIX_SOCKET === "true",
55
+ socketPath: process.env.ARCHLAST_STORE_SOCKET_PATH,
56
+ host: process.env.ARCHLAST_STORE_HOST || "127.0.0.1",
57
+ port: parseInt(process.env.ARCHLAST_STORE_PORT || "7001", 10),
58
+ secret: process.env.ARCHLAST_STORE_SECRET || "",
59
+ certFingerprint: process.env.ARCHLAST_STORE_FINGERPRINT,
60
+ caPath: process.env.ARCHLAST_STORE_CA_PATH,
61
+ useTls: process.env.ARCHLAST_STORE_NO_TLS !== "true",
62
+ authTimeoutMs: parseInt(process.env.ARCHLAST_STORE_AUTH_TIMEOUT || "2000", 10),
63
+ };
64
+ // Dev Shim: Fallback to lock file if secret is not provided
65
+ if (!config.secret && process.env.NODE_ENV === "development") {
66
+ // Try multiple potential lock file locations
67
+ const possiblePaths = [
68
+ // From packages/server -> packages/document-store
69
+ path.resolve(process.cwd(), "..", "document-store", ".archlast", "store.lock"),
70
+ // From monorepo root -> packages/document-store
71
+ path.resolve(process.cwd(), "packages", "document-store", ".archlast", "store.lock"),
72
+ // Direct CWD (if running from document-store)
73
+ path.resolve(process.cwd(), ".archlast", "store.lock"),
74
+ ];
75
+ for (const lockFilePath of possiblePaths) {
76
+ if (fs.existsSync(lockFilePath)) {
77
+ logger_js_1.logger.log({
78
+ timestamp: Date.now(),
79
+ level: "info",
80
+ kind: "system",
81
+ message: `[SocketClient] Loading config from dev lock file: ${lockFilePath}`,
82
+ });
83
+ Object.assign(config, loadConfigFromLockFile(lockFilePath));
84
+ break;
85
+ }
86
+ }
87
+ }
88
+ return config;
89
+ }
90
+ /**
91
+ * Loads configuration from a lock file (dev mode only)
92
+ */
93
+ function loadConfigFromLockFile(lockFilePath) {
94
+ const content = fs.readFileSync(lockFilePath, "utf-8");
95
+ const lines = content.split("\n");
96
+ const config = {};
97
+ for (const line of lines) {
98
+ const parts = line.split("=", 2);
99
+ if (parts.length !== 2)
100
+ continue;
101
+ const key = parts[0].trim();
102
+ const value = parts[1].trim();
103
+ switch (key) {
104
+ case "HOST":
105
+ config.host = value;
106
+ break;
107
+ case "PORT":
108
+ config.port = parseInt(value, 10);
109
+ break;
110
+ case "SECRET":
111
+ config.secret = value;
112
+ break;
113
+ case "CERT_FINGERPRINT":
114
+ config.certFingerprint = value;
115
+ break;
116
+ }
117
+ }
118
+ return config;
119
+ }
120
+ /**
121
+ * Database client that connects to Archlast.Store via socket
122
+ * Supports Unix sockets, TCP, and TLS with PSK authentication
123
+ */
124
+ class SocketDatabaseClient {
125
+ socket = null;
126
+ requestId = 0;
127
+ pendingRequests = new Map();
128
+ buffer = Buffer.alloc(0);
129
+ options;
130
+ connected = false;
131
+ connecting = false;
132
+ connectPromise = null;
133
+ authenticated = false;
134
+ // Schema storage for relationship resolution
135
+ schemaRelationships = new Map();
136
+ constructor(options = {}) {
137
+ this.options = {
138
+ useUnixSocket: options.useUnixSocket ?? false,
139
+ socketPath: options.socketPath ?? "archlast-store.sock",
140
+ host: options.host ?? "127.0.0.1",
141
+ port: options.port ?? 7001,
142
+ secret: options.secret ?? "",
143
+ certFingerprint: options.certFingerprint,
144
+ caPath: options.caPath,
145
+ useTls: options.useTls ?? true,
146
+ authTimeoutMs: options.authTimeoutMs ?? 2000,
147
+ };
148
+ // Validate secret for TCP connections (required for authentication)
149
+ // Note: Unix socket mode (dev) does not require a secret
150
+ if (!this.options.useUnixSocket && !this.options.secret && this.options.useTls !== false) {
151
+ throw new Error("ARCHLAST_STORE_SECRET is required for TCP connections. " +
152
+ "In production, set via environment variable. " +
153
+ "In development, ensure .archlast/store.lock exists or set a secret.");
154
+ }
155
+ }
156
+ /**
157
+ * Ensures socket connection is established with retry logic
158
+ */
159
+ async ensureConnection() {
160
+ if (this.connected && (this.options.useUnixSocket || this.authenticated))
161
+ return;
162
+ if (this.connecting && this.connectPromise) {
163
+ return this.connectPromise;
164
+ }
165
+ this.connecting = true;
166
+ this.connectPromise = this.connectWithRetry();
167
+ try {
168
+ return await this.connectPromise;
169
+ }
170
+ catch (err) {
171
+ const message = err instanceof Error ? err.message : String(err);
172
+ const endpoint = this.options.useUnixSocket
173
+ ? this.options.socketPath
174
+ : `${this.options.host}:${this.options.port}`;
175
+ throw new Error(`Document Store unavailable at ${endpoint}. ` +
176
+ `Ensure Archlast.Store (C# service) is running. Original error: ${message}`);
177
+ }
178
+ }
179
+ /**
180
+ * Attempts to connect with exponential backoff retry
181
+ */
182
+ async connectWithRetry() {
183
+ const maxRetries = 10;
184
+ const baseDelayMs = 500;
185
+ const maxDelayMs = 5000;
186
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
187
+ try {
188
+ await this.attemptConnection();
189
+ return; // Success!
190
+ }
191
+ catch (err) {
192
+ const isLastAttempt = attempt === maxRetries;
193
+ if (isLastAttempt) {
194
+ this.connecting = false;
195
+ throw err;
196
+ }
197
+ // Exponential backoff with jitter
198
+ const delayMs = Math.min(baseDelayMs * Math.pow(2, attempt - 1), maxDelayMs);
199
+ const jitter = Math.random() * 200;
200
+ logger_js_1.logger.log({
201
+ timestamp: Date.now(),
202
+ level: "info",
203
+ kind: "system",
204
+ message: `[SocketClient] Connection attempt ${attempt}/${maxRetries} failed, retrying in ${Math.round(delayMs)}ms...`,
205
+ });
206
+ await this.sleep(delayMs + jitter);
207
+ }
208
+ }
209
+ }
210
+ /**
211
+ * Single connection attempt
212
+ */
213
+ attemptConnection() {
214
+ return new Promise((resolve, reject) => {
215
+ this.buffer = Buffer.alloc(0);
216
+ this.socket?.removeAllListeners("data");
217
+ const cleanup = () => {
218
+ this.socket?.removeListener("error", onError);
219
+ if (!this.options.useUnixSocket && this.options.useTls) {
220
+ this.socket?.removeListener("secureConnect", onSecureConnect);
221
+ }
222
+ };
223
+ const onError = (err) => {
224
+ logger_js_1.logger.log({
225
+ timestamp: Date.now(),
226
+ level: "error",
227
+ kind: "system",
228
+ message: `[SocketClient] Connection error: ${err.message}`,
229
+ });
230
+ cleanup();
231
+ this.connected = false;
232
+ this.authenticated = false;
233
+ this.socket = null;
234
+ reject(err);
235
+ };
236
+ // Unix socket connection (no TLS, no auth)
237
+ if (this.options.useUnixSocket) {
238
+ this.socket = net_1.default.createConnection({ path: this.options.socketPath }, () => {
239
+ cleanup();
240
+ this.connected = true;
241
+ this.connecting = false;
242
+ // CRITICAL: Clear the connection timeout
243
+ this.socket?.setTimeout(0);
244
+ logger_js_1.logger.log({
245
+ timestamp: Date.now(),
246
+ level: "info",
247
+ kind: "system",
248
+ message: "[SocketClient] Connected via Unix socket",
249
+ });
250
+ this.setupSocketHandlers();
251
+ resolve();
252
+ });
253
+ this.socket.once("error", onError);
254
+ this.socket.setTimeout(5000, () => {
255
+ cleanup();
256
+ this.socket?.destroy();
257
+ this.socket = null;
258
+ reject(new Error("Connection timeout"));
259
+ });
260
+ return;
261
+ }
262
+ // TCP connection with optional TLS
263
+ const onSecureConnect = async () => {
264
+ cleanup();
265
+ this.connected = true;
266
+ // CRITICAL: Clear the connection timeout after successful handshake
267
+ // to prevent idle timeout from closing the connection
268
+ this.socket?.setTimeout(0);
269
+ // Enable TCP keepalive for long-lived connections
270
+ if (this.socket && 'setKeepAlive' in this.socket) {
271
+ this.socket.setKeepAlive(true, 30000);
272
+ }
273
+ logger_js_1.logger.log({
274
+ timestamp: Date.now(),
275
+ level: "info",
276
+ kind: "system",
277
+ message: `[SocketClient] TLS handshake complete: ${this.options.host}:${this.options.port}`,
278
+ });
279
+ // Send authentication packet immediately
280
+ try {
281
+ await this.authenticate();
282
+ this.connecting = false;
283
+ this.setupSocketHandlers();
284
+ resolve();
285
+ }
286
+ catch (authErr) {
287
+ const error = authErr instanceof Error ? authErr : new Error(String(authErr));
288
+ onError(error);
289
+ }
290
+ };
291
+ if (this.options.useTls) {
292
+ // TLS connection options - Strict validation per Secure Protocol
293
+ const tlsOptions = {
294
+ host: this.options.host,
295
+ port: this.options.port,
296
+ // For self-signed certs (dev mode with fingerprint), we must disable default CA validation
297
+ // and rely on fingerprint validation instead. For production with CA, we use strict validation.
298
+ rejectUnauthorized: !this.options.certFingerprint,
299
+ minVersion: "TLSv1.2", // Allow TLS 1.2+ (server supports both 1.2 and 1.3)
300
+ };
301
+ // Add CA if provided (Production mode)
302
+ if (this.options.caPath && fs.existsSync(this.options.caPath)) {
303
+ tlsOptions.ca = fs.readFileSync(this.options.caPath);
304
+ tlsOptions.rejectUnauthorized = true; // Enable strict validation with CA
305
+ }
306
+ // Add certificate fingerprint validation for self-signed certs (Dev mode)
307
+ if (this.options.certFingerprint) {
308
+ tlsOptions.checkServerIdentity = (host, cert) => {
309
+ // Node.js fingerprint format: XX:XX:XX:... (with colons, uppercase)
310
+ // Our lock file format: xxxx... (no colons, lowercase)
311
+ const normalizedCertFingerprint = cert.fingerprint256
312
+ .replace(/:/g, "")
313
+ .toLowerCase();
314
+ const expectedFingerprint = this.options.certFingerprint.toLowerCase();
315
+ if (normalizedCertFingerprint !== expectedFingerprint) {
316
+ return new Error(`Security Alert: Server Fingerprint Mismatch! ` +
317
+ `Expected: ${expectedFingerprint}, Got: ${normalizedCertFingerprint}`);
318
+ }
319
+ return undefined;
320
+ };
321
+ }
322
+ this.socket = tls_1.default.connect(tlsOptions, () => {
323
+ // Wait for secureConnect event
324
+ });
325
+ this.socket.once("secureConnect", onSecureConnect);
326
+ }
327
+ else {
328
+ // Plain TCP connection (not recommended for production)
329
+ this.socket = net_1.default.createConnection({ host: this.options.host, port: this.options.port }, () => {
330
+ cleanup();
331
+ this.connected = true;
332
+ this.connecting = false;
333
+ // CRITICAL: Clear the connection timeout
334
+ this.socket?.setTimeout(0);
335
+ this.socket?.setKeepAlive(true, 30000);
336
+ logger_js_1.logger.log({
337
+ timestamp: Date.now(),
338
+ level: "warn",
339
+ kind: "system",
340
+ message: `[SocketClient] Connected via PLAIN TCP (insecure): ${this.options.host}:${this.options.port}`,
341
+ });
342
+ // Still authenticate even without TLS
343
+ this.authenticate()
344
+ .then(() => {
345
+ this.setupSocketHandlers();
346
+ resolve();
347
+ })
348
+ .catch(onError);
349
+ });
350
+ }
351
+ this.socket?.once("error", onError);
352
+ // Connection timeout
353
+ this.socket?.setTimeout(5000, () => {
354
+ cleanup();
355
+ this.socket?.destroy();
356
+ this.socket = null;
357
+ reject(new Error("Connection timeout"));
358
+ });
359
+ });
360
+ }
361
+ /**
362
+ * Sends authentication packet (JSON with PSK) to server
363
+ * Implements Secure Protocol v4: JSON auth packet with length prefix
364
+ */
365
+ async authenticate() {
366
+ if (!this.socket) {
367
+ throw new Error("Socket not connected");
368
+ }
369
+ // Build auth request: { "op": "auth", "token": "<secret>" }
370
+ const authRequest = {
371
+ op: "auth",
372
+ token: this.options.secret,
373
+ };
374
+ // Serialize to JSON
375
+ const authJson = JSON.stringify(authRequest);
376
+ const authBytes = Buffer.from(authJson, "utf8");
377
+ // Add 4-byte length prefix (little-endian)
378
+ const lengthPrefix = Buffer.alloc(4);
379
+ lengthPrefix.writeInt32LE(authBytes.length, 0);
380
+ const authPacket = Buffer.concat([lengthPrefix, authBytes]);
381
+ return new Promise((resolve, reject) => {
382
+ const timeout = setTimeout(() => {
383
+ reject(new Error("Authentication timeout"));
384
+ }, this.options.authTimeoutMs);
385
+ this.socket.write(authPacket, (err) => {
386
+ clearTimeout(timeout);
387
+ if (err) {
388
+ reject(err);
389
+ }
390
+ else {
391
+ // Wait for auth response before marking as authenticated
392
+ // The response will be handled by handleData()
393
+ this.waitForAuthResponse()
394
+ .then(() => {
395
+ this.authenticated = true;
396
+ logger_js_1.logger.log({
397
+ timestamp: Date.now(),
398
+ level: "info",
399
+ kind: "system",
400
+ message: "[SocketClient] TLS Authentication successful",
401
+ });
402
+ resolve();
403
+ })
404
+ .catch(reject);
405
+ }
406
+ });
407
+ });
408
+ }
409
+ /**
410
+ * Waits for auth response from server
411
+ */
412
+ async waitForAuthResponse() {
413
+ return new Promise((resolve, reject) => {
414
+ const timeout = setTimeout(() => {
415
+ this.socket?.removeListener("data", dataHandler);
416
+ reject(new Error("Auth response timeout"));
417
+ }, this.options.authTimeoutMs);
418
+ const dataHandler = (chunk) => {
419
+ this.buffer = Buffer.concat([this.buffer, chunk]);
420
+ // Need at least 4 bytes for length prefix
421
+ if (this.buffer.length >= 4) {
422
+ const length = this.buffer.readInt32LE(0);
423
+ // Validate length is reasonable (prevent memory issues)
424
+ if (length <= 0 || length > 10 * 1024 * 1024) {
425
+ this.socket?.removeListener("data", dataHandler);
426
+ clearTimeout(timeout);
427
+ reject(new Error(`Invalid auth response length: ${length}`));
428
+ return;
429
+ }
430
+ // Wait for complete message
431
+ if (this.buffer.length >= 4 + length) {
432
+ const messageBytes = this.buffer.slice(4, 4 + length);
433
+ let message;
434
+ try {
435
+ message = JSON.parse(messageBytes.toString("utf8"));
436
+ }
437
+ catch (e) {
438
+ this.socket?.removeListener("data", dataHandler);
439
+ clearTimeout(timeout);
440
+ reject(new Error(`Failed to parse auth response: ${e}`));
441
+ return;
442
+ }
443
+ this.buffer = this.buffer.slice(4 + length);
444
+ // Clean up handlers
445
+ this.socket?.removeListener("data", dataHandler);
446
+ clearTimeout(timeout);
447
+ if (message.success) {
448
+ resolve();
449
+ }
450
+ else {
451
+ reject(new Error(message.error || "Authentication failed"));
452
+ }
453
+ }
454
+ }
455
+ };
456
+ // Use .on() instead of .once() to handle fragmented responses
457
+ this.socket?.on("data", dataHandler);
458
+ });
459
+ }
460
+ /**
461
+ * Sets up socket event handlers after successful connection
462
+ */
463
+ setupSocketHandlers() {
464
+ if (!this.socket)
465
+ return;
466
+ this.socket.on("data", (chunk) => this.handleData(chunk));
467
+ this.socket.on("error", (err) => {
468
+ logger_js_1.logger.log({
469
+ timestamp: Date.now(),
470
+ level: "error",
471
+ kind: "system",
472
+ message: "[SocketClient] Socket error:",
473
+ context: { data: [err.message] },
474
+ });
475
+ this.connected = false;
476
+ this.authenticated = false;
477
+ });
478
+ this.socket.on("close", () => {
479
+ logger_js_1.logger.log({
480
+ timestamp: Date.now(),
481
+ level: "info",
482
+ kind: "system",
483
+ message: "[SocketClient] Connection closed",
484
+ });
485
+ this.connected = false;
486
+ this.authenticated = false;
487
+ this.socket = null;
488
+ this.connectPromise = null;
489
+ });
490
+ }
491
+ sleep(ms) {
492
+ return new Promise((resolve) => setTimeout(resolve, ms));
493
+ }
494
+ /**
495
+ * Handles incoming data from socket
496
+ */
497
+ handleData(chunk) {
498
+ this.buffer = Buffer.concat([this.buffer, chunk]);
499
+ while (this.buffer.length >= 4) {
500
+ const length = this.buffer.readInt32LE(0);
501
+ if (this.buffer.length < 4 + length) {
502
+ break; // Wait for more data
503
+ }
504
+ const messageBytes = this.buffer.slice(4, 4 + length);
505
+ const message = JSON.parse(messageBytes.toString("utf8"));
506
+ const pending = this.pendingRequests.get(message.reqId);
507
+ if (pending) {
508
+ this.pendingRequests.delete(message.reqId);
509
+ if (message.success) {
510
+ pending.resolve(message.data);
511
+ }
512
+ else {
513
+ pending.reject(new Error(message.error || "Unknown error"));
514
+ }
515
+ }
516
+ this.buffer = this.buffer.slice(4 + length);
517
+ }
518
+ }
519
+ /**
520
+ * Sends a request to the store and waits for response
521
+ */
522
+ async sendRequest(operation, spec) {
523
+ try {
524
+ await this.ensureConnection();
525
+ }
526
+ catch (err) {
527
+ const message = err instanceof Error ? err.message : String(err);
528
+ logger_js_1.logger.log({
529
+ timestamp: Date.now(),
530
+ level: "error",
531
+ kind: "system",
532
+ message: "[SocketClient] Connection failed",
533
+ context: { error: message },
534
+ });
535
+ throw err;
536
+ }
537
+ return new Promise((resolve, reject) => {
538
+ const reqId = ++this.requestId;
539
+ const timeoutMs = 30000; // 30s timeout for requests
540
+ const timeout = setTimeout(() => {
541
+ this.pendingRequests.delete(reqId);
542
+ reject(new Error(`Request timeout for operation '${operation}'. ` +
543
+ `Document Store may be overloaded or unresponsive.`));
544
+ }, timeoutMs);
545
+ this.pendingRequests.set(reqId, {
546
+ resolve: (value) => {
547
+ clearTimeout(timeout);
548
+ resolve(value);
549
+ },
550
+ reject: (error) => {
551
+ clearTimeout(timeout);
552
+ reject(error);
553
+ },
554
+ });
555
+ const request = {
556
+ id: reqId,
557
+ op: operation,
558
+ spec: spec,
559
+ };
560
+ const json = JSON.stringify(request);
561
+ const bytes = Buffer.from(json, "utf8");
562
+ const lengthBuffer = Buffer.allocUnsafe(4);
563
+ lengthBuffer.writeInt32LE(bytes.length, 0);
564
+ this.socket.write(lengthBuffer);
565
+ this.socket.write(bytes);
566
+ });
567
+ }
568
+ /**
569
+ * Normalizes a where clause for the Document Store.
570
+ * The C# Store now supports operator-based conditions.
571
+ * This method flattens 'and' conditions and preserves operator objects.
572
+ */
573
+ normalizeWhere(where) {
574
+ if (!where || typeof where !== "object")
575
+ return where;
576
+ const normalized = {};
577
+ for (const [key, value] of Object.entries(where)) {
578
+ // Handle 'and' operator - flatten conditions
579
+ if (key === "and" && Array.isArray(value)) {
580
+ for (const condition of value) {
581
+ const normalizedCondition = this.normalizeWhere(condition);
582
+ Object.assign(normalized, normalizedCondition);
583
+ }
584
+ continue;
585
+ }
586
+ // Handle 'or' operator - not fully supported, log warning
587
+ if (key === "or" && Array.isArray(value)) {
588
+ logger_js_1.logger.log({
589
+ timestamp: Date.now(),
590
+ level: "warn",
591
+ kind: "system",
592
+ message: "[SocketClient] 'or' operator not fully supported, using first condition only",
593
+ });
594
+ if (value.length > 0) {
595
+ const normalizedCondition = this.normalizeWhere(value[0]);
596
+ Object.assign(normalized, normalizedCondition);
597
+ }
598
+ continue;
599
+ }
600
+ // Handle 'not' operator - not fully supported
601
+ if (key === "not" && typeof value === "object") {
602
+ logger_js_1.logger.log({
603
+ timestamp: Date.now(),
604
+ level: "warn",
605
+ kind: "system",
606
+ message: "[SocketClient] 'not' operator not fully supported",
607
+ });
608
+ continue;
609
+ }
610
+ if (value && typeof value === "object" && !Array.isArray(value)) {
611
+ // Check if it's an operator object - pass through to C# Store
612
+ const supportedOperators = [
613
+ "eq",
614
+ "ne",
615
+ "gt",
616
+ "gte",
617
+ "lt",
618
+ "lte",
619
+ "in",
620
+ "notIn",
621
+ "contains",
622
+ "startsWith",
623
+ "endsWith",
624
+ "isNull",
625
+ "isNotNull",
626
+ ];
627
+ const hasOperator = supportedOperators.some((op) => op in value);
628
+ if (hasOperator) {
629
+ // Pass operator object directly to C# Store
630
+ normalized[key] = value;
631
+ }
632
+ else {
633
+ // Nested object without operators - recurse
634
+ normalized[key] = this.normalizeWhere(value);
635
+ }
636
+ }
637
+ else {
638
+ // Simple value (converts to equality in C# Store)
639
+ normalized[key] = value;
640
+ }
641
+ }
642
+ return normalized;
643
+ }
644
+ // ========== GenericDatabaseReader Methods ==========
645
+ async get(tableName, id) {
646
+ const result = await this.sendRequest("get", {
647
+ collection: tableName,
648
+ id,
649
+ });
650
+ return result || null;
651
+ }
652
+ async list(tableName) {
653
+ const result = await this.sendRequest("query", {
654
+ collection: tableName,
655
+ });
656
+ return result || [];
657
+ }
658
+ query(tableName) {
659
+ // Return a query builder that will use this client as executor
660
+ return new builder_js_1.QueryBuilderImpl(tableName, this);
661
+ }
662
+ async findMany(tableName, options) {
663
+ const result = await this.sendRequest("query", {
664
+ collection: tableName,
665
+ where: this.normalizeWhere(options?.where),
666
+ orderBy: options?.orderBy,
667
+ take: options?.take,
668
+ skip: options?.skip,
669
+ select: options?.select,
670
+ });
671
+ // Reactivity: Track read dependency
672
+ const store = context_js_1.executionContext.getStore();
673
+ if (store) {
674
+ store.trackRead(`collection:${String(tableName)}`);
675
+ }
676
+ return result || [];
677
+ }
678
+ async findFirst(tableName, options) {
679
+ const results = await this.findMany(tableName, { ...options, take: 1 });
680
+ return results[0] || null;
681
+ }
682
+ async findUnique(tableName, where) {
683
+ const results = await this.findMany(tableName, { where, take: 1 });
684
+ return results[0] || null;
685
+ }
686
+ async count(tableName, where) {
687
+ const result = await this.sendRequest("count", {
688
+ collection: tableName,
689
+ where: this.normalizeWhere(where),
690
+ });
691
+ // Reactivity: Track read dependency
692
+ const store = context_js_1.executionContext.getStore();
693
+ if (store) {
694
+ store.trackRead(`collection:${String(tableName)}`);
695
+ }
696
+ return result?.count || 0;
697
+ }
698
+ async loadRelation(tableName, record, relationName) {
699
+ const relationships = this.schemaRelationships.get(tableName);
700
+ if (!relationships || !relationships[relationName]) {
701
+ logger_js_1.logger.log({
702
+ timestamp: Date.now(),
703
+ level: "warn",
704
+ kind: "system",
705
+ message: `[SocketClient] No relationship '${relationName}' defined for '${String(tableName)}'`,
706
+ });
707
+ return [];
708
+ }
709
+ const rel = relationships[relationName];
710
+ const recordId = record._id;
711
+ if (rel.type === "hasMany") {
712
+ // hasMany: Find all records in target table where foreignKey = this record's _id
713
+ const foreignKey = rel.foreignKey || `${String(tableName).slice(0, -1)}_id`; // e.g., "tasks" -> "task_id"
714
+ const result = await this.sendRequest("query", {
715
+ collection: rel.target,
716
+ where: { [foreignKey]: recordId },
717
+ });
718
+ return (result || []);
719
+ }
720
+ if (rel.type === "hasOne") {
721
+ // hasOne: Find single record in target table where foreignKey = this record's _id
722
+ const foreignKey = rel.foreignKey || `${String(tableName).slice(0, -1)}_id`;
723
+ const result = await this.sendRequest("query", {
724
+ collection: rel.target,
725
+ where: { [foreignKey]: recordId },
726
+ take: 1,
727
+ });
728
+ return (result?.[0] || null);
729
+ }
730
+ if (rel.type === "belongsTo") {
731
+ // belongsTo: Find single record in target table by this record's foreignKey value
732
+ const foreignKey = rel.foreignKey || `${rel.target.slice(0, -1)}_id`; // e.g., target "tasks" -> "task_id"
733
+ const foreignId = record[foreignKey];
734
+ if (!foreignId)
735
+ return null;
736
+ const result = await this.sendRequest("get", {
737
+ collection: rel.target,
738
+ id: foreignId,
739
+ });
740
+ return (result || null);
741
+ }
742
+ logger_js_1.logger.log({
743
+ timestamp: Date.now(),
744
+ level: "warn",
745
+ kind: "system",
746
+ message: `[SocketClient] Unsupported relationship type: ${rel.type}`,
747
+ });
748
+ return [];
749
+ }
750
+ async loadRelations(tableName, records, relationName) {
751
+ const resultMap = new Map();
752
+ if (records.length === 0) {
753
+ return resultMap;
754
+ }
755
+ const relationships = this.schemaRelationships.get(tableName);
756
+ if (!relationships || !relationships[relationName]) {
757
+ logger_js_1.logger.log({
758
+ timestamp: Date.now(),
759
+ level: "warn",
760
+ kind: "system",
761
+ message: `[SocketClient] No relationship '${relationName}' defined for '${String(tableName)}'`,
762
+ });
763
+ return resultMap;
764
+ }
765
+ const rel = relationships[relationName];
766
+ const recordIds = records.map((r) => r._id);
767
+ if (rel.type === "hasMany") {
768
+ // Batch query: Find all records where foreignKey IN [ids]
769
+ const foreignKey = rel.foreignKey || `${String(tableName).slice(0, -1)}_id`;
770
+ const result = await this.sendRequest("query", {
771
+ collection: rel.target,
772
+ where: { [foreignKey]: { in: recordIds } },
773
+ });
774
+ // Group results by foreign key
775
+ const allRelated = result || [];
776
+ for (const related of allRelated) {
777
+ const fkValue = related[foreignKey];
778
+ if (!resultMap.has(fkValue)) {
779
+ resultMap.set(fkValue, []);
780
+ }
781
+ resultMap.get(fkValue).push(related);
782
+ }
783
+ // Ensure all records have an entry (even if empty)
784
+ for (const id of recordIds) {
785
+ if (!resultMap.has(id)) {
786
+ resultMap.set(id, []);
787
+ }
788
+ }
789
+ }
790
+ else if (rel.type === "belongsTo") {
791
+ // Batch query: Get all target records by IDs
792
+ const foreignKey = rel.foreignKey || `${rel.target.slice(0, -1)}_id`;
793
+ const foreignIds = records
794
+ .map((r) => r[foreignKey])
795
+ .filter((id) => id != null);
796
+ if (foreignIds.length > 0) {
797
+ const result = await this.sendRequest("query", {
798
+ collection: rel.target,
799
+ where: { _id: { in: foreignIds } },
800
+ });
801
+ // Create lookup by _id
802
+ const lookup = new Map();
803
+ for (const item of result || []) {
804
+ lookup.set(item._id, item);
805
+ }
806
+ // Map back to original records
807
+ for (const record of records) {
808
+ const fkValue = record[foreignKey];
809
+ const recordId = record._id;
810
+ resultMap.set(recordId, lookup.get(fkValue) || null);
811
+ }
812
+ }
813
+ }
814
+ return resultMap;
815
+ }
816
+ // ========== GenericDatabaseWriter Methods ==========
817
+ // Add stored schema metadata
818
+ schemaMetadata = new Map();
819
+ /**
820
+ * Apply schema definitions for validation and type generation
821
+ */
822
+ async applySchema(schema) {
823
+ if (!schema || !schema.tables) {
824
+ logger_js_1.logger.log({
825
+ timestamp: Date.now(),
826
+ level: "info",
827
+ kind: "system",
828
+ message: "[SocketClient] No schema to apply",
829
+ });
830
+ return;
831
+ }
832
+ // 1. Store field metadata for enforcement
833
+ for (const [tableName, tableDef] of Object.entries(schema.tables)) {
834
+ const fieldMap = new Map();
835
+ for (const [fieldName, fieldDef] of Object.entries(tableDef.schema)) {
836
+ fieldMap.set(fieldName, fieldDef.metadata || {});
837
+ }
838
+ this.schemaMetadata.set(tableName, fieldMap);
839
+ }
840
+ logger_js_1.logger.log({
841
+ timestamp: Date.now(),
842
+ level: "info",
843
+ kind: "system",
844
+ message: "[SocketClient] Applying schema with indexes and relationships...",
845
+ });
846
+ const schemaPromises = [];
847
+ for (const [tableName, tableDef] of Object.entries(schema.tables)) {
848
+ const table = tableDef;
849
+ // 2. Store relationships for runtime resolution
850
+ if (table.relationships) {
851
+ this.schemaRelationships.set(tableName, table.relationships);
852
+ logger_js_1.logger.log({
853
+ timestamp: Date.now(),
854
+ level: "info",
855
+ kind: "system",
856
+ message: `[SocketClient] Stored ${Object.keys(table.relationships).length} relationship(s) for ${tableName}`,
857
+ });
858
+ }
859
+ // 3. Extract indexes if defined
860
+ if (table.indexes && Array.isArray(table.indexes) && table.indexes.length > 0) {
861
+ const indexes = table.indexes.map((idx, i) => ({
862
+ name: idx.name || `idx_${tableName}_${idx.fields.join("_")}`,
863
+ fields: idx.fields,
864
+ unique: idx.unique || false,
865
+ }));
866
+ // Send setSchema request to document store
867
+ const promise = this.sendRequest("setSchema", {
868
+ collection: tableName,
869
+ indexes,
870
+ })
871
+ .then(() => {
872
+ logger_js_1.logger.log({
873
+ timestamp: Date.now(),
874
+ level: "info",
875
+ kind: "system",
876
+ message: `[SocketClient] Indexes applied for ${tableName}: ${indexes.length} index(es)`,
877
+ });
878
+ })
879
+ .catch((err) => {
880
+ logger_js_1.logger.log({
881
+ timestamp: Date.now(),
882
+ level: "error",
883
+ kind: "system",
884
+ message: `[SocketClient] Failed to apply indexes for ${tableName}:`,
885
+ context: { data: [err.message] },
886
+ });
887
+ });
888
+ schemaPromises.push(promise);
889
+ }
890
+ }
891
+ // Wait for all schema applications
892
+ if (schemaPromises.length > 0) {
893
+ await Promise.all(schemaPromises);
894
+ logger_js_1.logger.log({
895
+ timestamp: Date.now(),
896
+ level: "info",
897
+ kind: "system",
898
+ message: `[SocketClient] Schema applied successfully for ${schemaPromises.length} collection(s)`,
899
+ });
900
+ }
901
+ else {
902
+ logger_js_1.logger.log({
903
+ timestamp: Date.now(),
904
+ level: "info",
905
+ kind: "system",
906
+ message: "[SocketClient] Schema applied (no indexes defined)",
907
+ });
908
+ }
909
+ }
910
+ // Schema enforcement helper
911
+ applySchemaEnforcement(tableName, data, operation) {
912
+ const fieldMetadata = this.schemaMetadata.get(tableName);
913
+ if (!fieldMetadata)
914
+ return data;
915
+ const result = { ...data };
916
+ const now = new Date();
917
+ for (const [fieldName, metadata] of fieldMetadata.entries()) {
918
+ // createdNow: Set on insert only
919
+ if (operation === "insert" && metadata.modifiers && (metadata.modifiers & (1 << 0))) { // CreatedNow
920
+ result[fieldName] = now;
921
+ }
922
+ // updateNow: Set on insert AND update
923
+ if (metadata.modifiers && (metadata.modifiers & (1 << 1))) { // UpdateNow
924
+ result[fieldName] = now;
925
+ }
926
+ // Apply defaults on insert if value not provided
927
+ if (operation === "insert" && metadata.default !== undefined && (metadata.modifiers && (metadata.modifiers & (1 << 4)))) { // HasDefault
928
+ if (result[fieldName] === undefined) {
929
+ result[fieldName] = metadata.default;
930
+ }
931
+ }
932
+ }
933
+ return result;
934
+ }
935
+ async insert(tableName, data) {
936
+ const enrichedData = this.applySchemaEnforcement(tableName, data, "insert");
937
+ const result = await this.sendRequest("insert", {
938
+ collection: tableName,
939
+ data: enrichedData,
940
+ });
941
+ // Reactivity: Track write dependency (affects collection)
942
+ const store = context_js_1.executionContext.getStore();
943
+ if (store) {
944
+ store.trackWrite(`collection:${String(tableName)}`);
945
+ }
946
+ return result.id;
947
+ }
948
+ async insertMany(tableName, data) {
949
+ const enrichedData = data.map(d => this.applySchemaEnforcement(tableName, d, "insert"));
950
+ const result = await this.sendRequest("insertMany", {
951
+ collection: tableName,
952
+ data: enrichedData,
953
+ });
954
+ // Reactivity: Track write dependency
955
+ const store = context_js_1.executionContext.getStore();
956
+ if (store) {
957
+ store.trackWrite(`collection:${String(tableName)}`);
958
+ }
959
+ return result.ids || [];
960
+ }
961
+ async update(tableName, id, data) {
962
+ const enrichedData = this.applySchemaEnforcement(tableName, data, "update");
963
+ await this.sendRequest("update", {
964
+ collection: tableName,
965
+ id,
966
+ data: enrichedData,
967
+ });
968
+ // Reactivity: Track write dependency
969
+ const store = context_js_1.executionContext.getStore();
970
+ if (store) {
971
+ store.trackWrite(`collection:${String(tableName)}`);
972
+ store.trackWrite(`document:${String(tableName)}:${id}`);
973
+ }
974
+ }
975
+ async updateMany(tableName, where, data) {
976
+ const enrichedData = this.applySchemaEnforcement(tableName, data, "update");
977
+ const result = await this.sendRequest("updateMany", {
978
+ collection: tableName,
979
+ where: this.normalizeWhere(where),
980
+ data: enrichedData,
981
+ });
982
+ // Reactivity: Track write dependency
983
+ const store = context_js_1.executionContext.getStore();
984
+ if (store) {
985
+ store.trackWrite(`collection:${String(tableName)}`);
986
+ }
987
+ return result.count || 0;
988
+ }
989
+ async patch(tableName, id, data) {
990
+ // Patch is the same as update for document store
991
+ await this.update(tableName, id, data);
992
+ }
993
+ async delete(tableName, id) {
994
+ await this.sendRequest("delete", {
995
+ collection: tableName,
996
+ id,
997
+ });
998
+ // Reactivity: Track write dependency
999
+ const store = context_js_1.executionContext.getStore();
1000
+ if (store) {
1001
+ store.trackWrite(`collection:${String(tableName)}`);
1002
+ store.trackWrite(`document:${String(tableName)}:${id}`);
1003
+ }
1004
+ }
1005
+ async deleteMany(tableName, where) {
1006
+ const result = await this.sendRequest("deleteMany", {
1007
+ collection: tableName,
1008
+ where: this.normalizeWhere(where),
1009
+ });
1010
+ // Reactivity: Track write dependency
1011
+ const store = context_js_1.executionContext.getStore();
1012
+ if (store) {
1013
+ store.trackWrite(`collection:${String(tableName)}`);
1014
+ }
1015
+ return result.count || 0;
1016
+ }
1017
+ // ========== IDatabaseClient Methods ==========
1018
+ async runInTransaction(fn) {
1019
+ // TODO: Implement transaction support
1020
+ // For now, just execute without transaction
1021
+ logger_js_1.logger.log({
1022
+ timestamp: Date.now(),
1023
+ level: "warn",
1024
+ kind: "system",
1025
+ message: "[SocketClient] Transactions not yet implemented, executing without transaction",
1026
+ });
1027
+ return await fn(this);
1028
+ }
1029
+ // ========== QueryExecutor Methods ==========
1030
+ async executeQuery(spec) {
1031
+ const whereClause = spec.where && spec.where.length > 0 ? spec.where[0] : undefined;
1032
+ const result = await this.sendRequest("query", {
1033
+ collection: spec.table,
1034
+ where: this.normalizeWhere(whereClause),
1035
+ orderBy: spec.orderBy && spec.orderBy.length > 0 ? spec.orderBy[0] : undefined,
1036
+ select: spec.select,
1037
+ take: spec.take,
1038
+ skip: spec.skip,
1039
+ });
1040
+ // Reactivity: Track read dependency
1041
+ const store = context_js_1.executionContext.getStore();
1042
+ if (store) {
1043
+ store.trackRead(`collection:${String(spec.table)}`);
1044
+ }
1045
+ return result || [];
1046
+ }
1047
+ async executeCount(spec) {
1048
+ const whereClause = spec.where && spec.where.length > 0 ? spec.where[0] : undefined;
1049
+ const result = await this.sendRequest("count", {
1050
+ collection: spec.table,
1051
+ where: this.normalizeWhere(whereClause),
1052
+ });
1053
+ // Reactivity: Track read dependency
1054
+ const store = context_js_1.executionContext.getStore();
1055
+ if (store) {
1056
+ store.trackRead(`collection:${String(spec.table)}`);
1057
+ }
1058
+ return result?.count || 0;
1059
+ }
1060
+ async executeAggregate(spec) {
1061
+ // TODO: Implement aggregate support
1062
+ logger_js_1.logger.log({
1063
+ timestamp: Date.now(),
1064
+ level: "warn",
1065
+ kind: "system",
1066
+ message: "[SocketClient] Aggregate not yet implemented",
1067
+ });
1068
+ return { sum: 0, avg: 0, min: 0, max: 0 };
1069
+ }
1070
+ clearCache() {
1071
+ // Cache is managed by the C# store, no-op here
1072
+ logger_js_1.logger.log({
1073
+ timestamp: Date.now(),
1074
+ level: "info",
1075
+ kind: "cache",
1076
+ message: "[SocketClient] Cache cleared (managed by store)",
1077
+ });
1078
+ }
1079
+ /**
1080
+ * Closes the socket connection
1081
+ */
1082
+ disconnect() {
1083
+ if (this.socket) {
1084
+ this.socket.end();
1085
+ this.socket = null;
1086
+ this.connected = false;
1087
+ this.authenticated = false;
1088
+ }
1089
+ }
1090
+ }
1091
+ exports.SocketDatabaseClient = SocketDatabaseClient;
1092
+ //# sourceMappingURL=socket-client.js.map