@qlever-llc/trellis 0.10.2 → 0.10.3-rc.4

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 (1127) hide show
  1. package/esm/_dnt.polyfills.d.ts.map +1 -0
  2. package/esm/_dnt.shims.d.ts.map +1 -0
  3. package/esm/auth/browser/login.d.ts +3 -3
  4. package/esm/auth/browser/login.d.ts.map +1 -1
  5. package/esm/auth/browser/portal.d.ts +5 -5
  6. package/esm/auth/browser/portal.d.ts.map +1 -1
  7. package/esm/auth/browser/session.d.ts.map +1 -1
  8. package/esm/auth/browser/storage.d.ts.map +1 -1
  9. package/esm/auth/browser.d.ts +8 -7
  10. package/esm/auth/browser.d.ts.map +1 -1
  11. package/esm/auth/browser.js +1 -0
  12. package/esm/auth/device_activation.d.ts +3 -3
  13. package/esm/auth/device_activation.d.ts.map +1 -1
  14. package/esm/auth/keys.d.ts.map +1 -1
  15. package/esm/auth/mod.d.ts +9 -9
  16. package/esm/auth/mod.d.ts.map +1 -1
  17. package/esm/auth/proof.d.ts.map +1 -1
  18. package/esm/auth/protocol.d.ts +245 -5
  19. package/esm/auth/protocol.d.ts.map +1 -1
  20. package/esm/auth/protocol.js +1 -1
  21. package/esm/auth/schemas.d.ts.map +1 -1
  22. package/esm/auth/session_auth.d.ts.map +1 -1
  23. package/esm/auth/time.d.ts.map +1 -1
  24. package/esm/auth/trellis_id.d.ts.map +1 -1
  25. package/esm/auth/types.d.ts +1 -1
  26. package/esm/auth/types.d.ts.map +1 -1
  27. package/esm/auth/utils.d.ts.map +1 -1
  28. package/esm/auth.d.ts +2 -1
  29. package/esm/auth.d.ts.map +1 -1
  30. package/esm/auth.js +1 -0
  31. package/esm/browser.d.ts.map +1 -0
  32. package/esm/client.d.ts +6 -6
  33. package/esm/client.d.ts.map +1 -1
  34. package/esm/client.js +1 -1
  35. package/esm/client_connect.d.ts +8 -8
  36. package/esm/client_connect.d.ts.map +1 -1
  37. package/esm/client_connect.js +4 -3
  38. package/esm/codec.d.ts +2 -2
  39. package/esm/codec.d.ts.map +1 -1
  40. package/esm/connection.d.ts +1 -1
  41. package/esm/connection.d.ts.map +1 -1
  42. package/esm/contract.d.ts +2 -2
  43. package/esm/contract.d.ts.map +1 -1
  44. package/esm/contract_support/canonical.d.ts.map +1 -1
  45. package/esm/contract_support/mod.d.ts +13 -13
  46. package/esm/contract_support/mod.d.ts.map +1 -1
  47. package/esm/contract_support/protocol.d.ts.map +1 -1
  48. package/esm/contract_support/runtime.d.ts +1 -1
  49. package/esm/contract_support/runtime.d.ts.map +1 -1
  50. package/esm/contract_support/schema_pointers.d.ts.map +1 -1
  51. package/esm/contracts.d.ts +4 -3
  52. package/esm/contracts.d.ts.map +1 -1
  53. package/esm/contracts.js +1 -0
  54. package/esm/device/deno.d.ts.map +1 -0
  55. package/esm/device.d.ts +9 -8
  56. package/esm/device.d.ts.map +1 -1
  57. package/esm/device.js +1 -0
  58. package/esm/env.d.ts.map +1 -0
  59. package/esm/errors/AuthError.d.ts +1 -1
  60. package/esm/errors/AuthError.d.ts.map +1 -1
  61. package/esm/errors/KVError.d.ts +1 -1
  62. package/esm/errors/KVError.d.ts.map +1 -1
  63. package/esm/errors/OperationLifecycleError.d.ts +1 -1
  64. package/esm/errors/OperationLifecycleError.d.ts.map +1 -1
  65. package/esm/errors/RemoteError.d.ts +10 -10
  66. package/esm/errors/RemoteError.d.ts.map +1 -1
  67. package/esm/errors/StoreError.d.ts +1 -1
  68. package/esm/errors/StoreError.d.ts.map +1 -1
  69. package/esm/errors/TransferError.d.ts +1 -1
  70. package/esm/errors/TransferError.d.ts.map +1 -1
  71. package/esm/errors/TransportError.d.ts +1 -1
  72. package/esm/errors/TransportError.d.ts.map +1 -1
  73. package/esm/errors/TrellisError.d.ts.map +1 -1
  74. package/esm/errors/ValidationError.d.ts +1 -1
  75. package/esm/errors/ValidationError.d.ts.map +1 -1
  76. package/esm/errors/index.d.ts +33 -32
  77. package/esm/errors/index.d.ts.map +1 -1
  78. package/esm/errors/index.js +1 -0
  79. package/esm/generate.d.ts.map +1 -0
  80. package/esm/{npm/src/generate.js → generate.js} +1 -0
  81. package/esm/generated-sdk/auth/api.d.ts +604 -3
  82. package/esm/generated-sdk/auth/api.d.ts.map +1 -1
  83. package/esm/generated-sdk/auth/api.js +4 -1
  84. package/esm/generated-sdk/auth/client.d.ts +8 -0
  85. package/esm/generated-sdk/auth/client.d.ts.map +1 -1
  86. package/esm/generated-sdk/auth/contract.d.ts +600 -2
  87. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  88. package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
  89. package/esm/generated-sdk/auth/owned_api.d.ts +601 -2
  90. package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -1
  91. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  92. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  93. package/esm/generated-sdk/health/api.d.ts +14 -2
  94. package/esm/generated-sdk/health/api.d.ts.map +1 -1
  95. package/esm/generated-sdk/health/client.d.ts.map +1 -1
  96. package/esm/generated-sdk/health/contract.d.ts +14 -2
  97. package/esm/generated-sdk/health/contract.d.ts.map +1 -1
  98. package/esm/generated-sdk/health/mod.d.ts.map +1 -1
  99. package/esm/generated-sdk/health/owned_api.d.ts +15 -2
  100. package/esm/generated-sdk/health/owned_api.d.ts.map +1 -1
  101. package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
  102. package/esm/generated-sdk/health/types.d.ts.map +1 -1
  103. package/esm/generated-sdk/jobs/api.d.ts +105 -2
  104. package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
  105. package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
  106. package/esm/generated-sdk/jobs/contract.d.ts +105 -2
  107. package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
  108. package/esm/generated-sdk/jobs/mod.d.ts.map +1 -1
  109. package/esm/generated-sdk/jobs/owned_api.d.ts +106 -2
  110. package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  111. package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
  112. package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
  113. package/esm/generated-sdk/state/api.d.ts +64 -2
  114. package/esm/generated-sdk/state/api.d.ts.map +1 -1
  115. package/esm/generated-sdk/state/client.d.ts.map +1 -1
  116. package/esm/generated-sdk/state/contract.d.ts +64 -2
  117. package/esm/generated-sdk/state/contract.d.ts.map +1 -1
  118. package/esm/generated-sdk/state/mod.d.ts.map +1 -1
  119. package/esm/generated-sdk/state/owned_api.d.ts +65 -2
  120. package/esm/generated-sdk/state/owned_api.d.ts.map +1 -1
  121. package/esm/generated-sdk/state/schemas.d.ts.map +1 -1
  122. package/esm/generated-sdk/state/types.d.ts.map +1 -1
  123. package/esm/generated-sdk/trellis-core/api.d.ts +44 -3
  124. package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
  125. package/esm/generated-sdk/trellis-core/api.js +4 -1
  126. package/esm/generated-sdk/trellis-core/client.d.ts +14 -2
  127. package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
  128. package/esm/generated-sdk/trellis-core/contract.d.ts +40 -2
  129. package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  130. package/esm/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  131. package/esm/generated-sdk/trellis-core/owned_api.d.ts +41 -2
  132. package/esm/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
  133. package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  134. package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
  135. package/esm/globals.d.ts.map +1 -1
  136. package/esm/health.d.ts +4 -3
  137. package/esm/health.d.ts.map +1 -1
  138. package/esm/health.js +1 -0
  139. package/esm/helpers.d.ts.map +1 -1
  140. package/esm/host/mod.d.ts.map +1 -0
  141. package/esm/host/node.d.ts.map +1 -0
  142. package/esm/index.d.ts +33 -32
  143. package/esm/index.d.ts.map +1 -1
  144. package/esm/index.js +1 -0
  145. package/esm/jobs.d.ts.map +1 -1
  146. package/esm/kv.d.ts +1 -1
  147. package/esm/kv.d.ts.map +1 -1
  148. package/esm/models/auth/rpc/Logout.d.ts.map +1 -1
  149. package/esm/models/trellis/Page.d.ts +1 -1
  150. package/esm/models/trellis/Page.d.ts.map +1 -1
  151. package/esm/models/trellis/State.d.ts +1 -1
  152. package/esm/models/trellis/State.d.ts.map +1 -1
  153. package/esm/models/trellis/TrellisError.d.ts.map +1 -1
  154. package/esm/models/trellis/rpc/StateDelete.d.ts.map +1 -1
  155. package/esm/models/trellis/rpc/StateGet.d.ts +1 -1
  156. package/esm/models/trellis/rpc/StateGet.d.ts.map +1 -1
  157. package/esm/models/trellis/rpc/StateList.d.ts.map +1 -1
  158. package/esm/models/trellis/rpc/StatePut.d.ts +1 -1
  159. package/esm/models/trellis/rpc/StatePut.d.ts.map +1 -1
  160. package/esm/operations.d.ts +4 -4
  161. package/esm/operations.d.ts.map +1 -1
  162. package/esm/runtime_transport.d.ts.map +1 -1
  163. package/esm/runtime_transport.js +2 -1
  164. package/esm/sdk/auth.d.ts +2 -0
  165. package/esm/sdk/auth.d.ts.map +1 -0
  166. package/esm/sdk/auth.js +1 -0
  167. package/esm/sdk/core.d.ts +2 -0
  168. package/esm/sdk/core.d.ts.map +1 -0
  169. package/esm/sdk/core.js +1 -0
  170. package/esm/sdk/health.d.ts +2 -0
  171. package/esm/sdk/health.d.ts.map +1 -0
  172. package/esm/sdk/health.js +1 -0
  173. package/esm/sdk/jobs.d.ts +2 -0
  174. package/esm/sdk/jobs.d.ts.map +1 -0
  175. package/esm/sdk/jobs.js +1 -0
  176. package/esm/sdk/state.d.ts +2 -0
  177. package/esm/sdk/state.d.ts.map +1 -0
  178. package/esm/sdk/state.js +1 -0
  179. package/esm/server/health.d.ts +2 -11
  180. package/esm/server/health.d.ts.map +1 -1
  181. package/esm/server/health.js +12 -11
  182. package/{script/npm/src → esm}/server/health_rpc.d.ts +1 -1
  183. package/esm/server/health_rpc.d.ts.map +1 -0
  184. package/esm/server/health_schemas.d.ts.map +1 -1
  185. package/esm/server/internal_jobs/active-job.d.ts.map +1 -0
  186. package/esm/server/internal_jobs/bindings.d.ts.map +1 -0
  187. package/esm/server/internal_jobs/cancellation-registry.d.ts.map +1 -0
  188. package/esm/server/internal_jobs/heartbeat.d.ts.map +1 -0
  189. package/esm/server/internal_jobs/job-manager.d.ts.map +1 -0
  190. package/esm/server/internal_jobs/projection.d.ts.map +1 -0
  191. package/esm/server/internal_jobs/runtime-worker.d.ts.map +1 -0
  192. package/esm/server/internal_jobs/types.d.ts.map +1 -0
  193. package/esm/server/runtime.d.ts.map +1 -0
  194. package/{script/npm/src → esm}/server/service.d.ts +4 -4
  195. package/esm/server/service.d.ts.map +1 -0
  196. package/esm/{npm/src/server → server}/service.js +3 -3
  197. package/esm/{npm/src/server → server}/subscription.d.ts +1 -1
  198. package/esm/server/subscription.d.ts.map +1 -0
  199. package/esm/server/transfer.d.ts.map +1 -0
  200. package/esm/server.d.ts.map +1 -0
  201. package/esm/server_logger.d.ts.map +1 -0
  202. package/esm/service/deno.d.ts.map +1 -0
  203. package/esm/service/mod.d.ts.map +1 -0
  204. package/esm/service/node.d.ts.map +1 -0
  205. package/esm/service/outbox_inbox.d.ts.map +1 -0
  206. package/esm/store.d.ts +2 -2
  207. package/esm/store.d.ts.map +1 -1
  208. package/esm/tasks.d.ts +1 -1
  209. package/esm/tasks.d.ts.map +1 -1
  210. package/esm/telemetry/carrier.d.ts.map +1 -1
  211. package/esm/telemetry/core.d.ts.map +1 -1
  212. package/esm/telemetry/env.d.ts.map +1 -1
  213. package/esm/telemetry/env.js +3 -2
  214. package/esm/telemetry/mod.d.ts +9 -9
  215. package/esm/telemetry/mod.d.ts.map +1 -1
  216. package/esm/telemetry/nats.d.ts +1 -1
  217. package/esm/telemetry/nats.d.ts.map +1 -1
  218. package/esm/telemetry/result.d.ts.map +1 -1
  219. package/esm/telemetry/trace.d.ts.map +1 -1
  220. package/esm/telemetry/trellis.d.ts +1 -1
  221. package/esm/telemetry/trellis.d.ts.map +1 -1
  222. package/esm/tracing.d.ts +3 -2
  223. package/esm/tracing.d.ts.map +1 -1
  224. package/esm/tracing.js +3 -0
  225. package/esm/transfer.d.ts +1 -1
  226. package/esm/transfer.d.ts.map +1 -1
  227. package/esm/trellis.d.ts +13 -13
  228. package/esm/trellis.d.ts.map +1 -1
  229. package/package.json +28 -28
  230. package/script/_dnt.polyfills.d.ts.map +1 -0
  231. package/script/_dnt.shims.d.ts.map +1 -0
  232. package/script/auth/browser/login.d.ts +3 -3
  233. package/script/auth/browser/login.d.ts.map +1 -1
  234. package/script/auth/browser/login.js +12 -12
  235. package/script/auth/browser/portal.d.ts +5 -5
  236. package/script/auth/browser/portal.d.ts.map +1 -1
  237. package/script/auth/browser/portal.js +3 -3
  238. package/script/auth/browser/session.d.ts.map +1 -1
  239. package/script/auth/browser/session.js +21 -21
  240. package/script/auth/browser/storage.d.ts.map +1 -1
  241. package/script/auth/browser.d.ts +8 -7
  242. package/script/auth/browser.d.ts.map +1 -1
  243. package/script/auth/browser.js +47 -46
  244. package/script/auth/device_activation.d.ts +3 -3
  245. package/script/auth/device_activation.d.ts.map +1 -1
  246. package/script/auth/device_activation.js +36 -36
  247. package/script/auth/keys.d.ts.map +1 -1
  248. package/script/auth/keys.js +6 -6
  249. package/script/auth/mod.d.ts +9 -9
  250. package/script/auth/mod.d.ts.map +1 -1
  251. package/script/auth/mod.js +232 -232
  252. package/script/auth/proof.d.ts.map +1 -1
  253. package/script/auth/proof.js +13 -13
  254. package/script/auth/protocol.d.ts +245 -5
  255. package/script/auth/protocol.d.ts.map +1 -1
  256. package/script/auth/protocol.js +29 -29
  257. package/script/auth/schemas.d.ts.map +1 -1
  258. package/script/auth/session_auth.d.ts.map +1 -1
  259. package/script/auth/session_auth.js +15 -15
  260. package/script/auth/time.d.ts.map +1 -1
  261. package/script/auth/trellis_id.d.ts.map +1 -1
  262. package/script/auth/trellis_id.js +3 -3
  263. package/script/auth/types.d.ts +1 -1
  264. package/script/auth/types.d.ts.map +1 -1
  265. package/script/auth/utils.d.ts.map +1 -1
  266. package/script/auth.d.ts +2 -1
  267. package/script/auth.d.ts.map +1 -1
  268. package/script/auth.js +1 -0
  269. package/script/browser.d.ts.map +1 -0
  270. package/script/client.d.ts +6 -6
  271. package/script/client.d.ts.map +1 -1
  272. package/script/client.js +6 -6
  273. package/script/client_connect.d.ts +8 -8
  274. package/script/client_connect.d.ts.map +1 -1
  275. package/script/client_connect.js +88 -54
  276. package/script/codec.d.ts +2 -2
  277. package/script/codec.d.ts.map +1 -1
  278. package/script/codec.js +15 -15
  279. package/script/connection.d.ts +1 -1
  280. package/script/connection.d.ts.map +1 -1
  281. package/script/connection.js +2 -2
  282. package/script/contract.d.ts +2 -2
  283. package/script/contract.d.ts.map +1 -1
  284. package/script/contract.js +5 -5
  285. package/script/contract_support/canonical.d.ts.map +1 -1
  286. package/script/contract_support/mod.d.ts +13 -13
  287. package/script/contract_support/mod.d.ts.map +1 -1
  288. package/script/contract_support/mod.js +64 -64
  289. package/script/contract_support/protocol.d.ts.map +1 -1
  290. package/script/contract_support/runtime.d.ts +1 -1
  291. package/script/contract_support/runtime.d.ts.map +1 -1
  292. package/script/contract_support/schema_pointers.d.ts.map +1 -1
  293. package/script/contracts.d.ts +4 -3
  294. package/script/contracts.d.ts.map +1 -1
  295. package/script/contracts.js +6 -5
  296. package/script/device/deno.d.ts.map +1 -0
  297. package/script/device.d.ts +9 -8
  298. package/script/device.d.ts.map +1 -1
  299. package/script/device.js +41 -40
  300. package/script/env.d.ts.map +1 -0
  301. package/script/errors/AuthError.d.ts +1 -1
  302. package/script/errors/AuthError.d.ts.map +1 -1
  303. package/script/errors/AuthError.js +2 -2
  304. package/script/errors/KVError.d.ts +1 -1
  305. package/script/errors/KVError.d.ts.map +1 -1
  306. package/script/errors/KVError.js +2 -2
  307. package/script/errors/OperationLifecycleError.d.ts +1 -1
  308. package/script/errors/OperationLifecycleError.d.ts.map +1 -1
  309. package/script/errors/OperationLifecycleError.js +4 -4
  310. package/script/errors/RemoteError.d.ts +10 -10
  311. package/script/errors/RemoteError.d.ts.map +1 -1
  312. package/script/errors/RemoteError.js +7 -7
  313. package/script/errors/StoreError.d.ts +1 -1
  314. package/script/errors/StoreError.d.ts.map +1 -1
  315. package/script/errors/StoreError.js +2 -2
  316. package/script/errors/TransferError.d.ts +1 -1
  317. package/script/errors/TransferError.d.ts.map +1 -1
  318. package/script/errors/TransferError.js +2 -2
  319. package/script/errors/TransportError.d.ts +1 -1
  320. package/script/errors/TransportError.d.ts.map +1 -1
  321. package/script/errors/TransportError.js +2 -2
  322. package/script/errors/TrellisError.d.ts.map +1 -1
  323. package/script/errors/ValidationError.d.ts +1 -1
  324. package/script/errors/ValidationError.d.ts.map +1 -1
  325. package/script/errors/ValidationError.js +2 -2
  326. package/script/errors/index.d.ts +33 -32
  327. package/script/errors/index.d.ts.map +1 -1
  328. package/script/errors/index.js +84 -83
  329. package/script/generate.d.ts.map +1 -0
  330. package/script/{npm/src/generate.js → generate.js} +1 -0
  331. package/script/generated-sdk/auth/api.d.ts +604 -3
  332. package/script/generated-sdk/auth/api.d.ts.map +1 -1
  333. package/script/generated-sdk/auth/api.js +4 -1
  334. package/script/generated-sdk/auth/client.d.ts +8 -0
  335. package/script/generated-sdk/auth/client.d.ts.map +1 -1
  336. package/script/generated-sdk/auth/contract.d.ts +600 -1
  337. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  338. package/script/generated-sdk/auth/mod.d.ts.map +1 -1
  339. package/script/generated-sdk/auth/owned_api.d.ts +601 -2
  340. package/script/generated-sdk/auth/owned_api.d.ts.map +1 -1
  341. package/script/generated-sdk/auth/owned_api.js +144 -144
  342. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  343. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  344. package/script/generated-sdk/health/api.d.ts +14 -2
  345. package/script/generated-sdk/health/api.d.ts.map +1 -1
  346. package/script/generated-sdk/health/client.d.ts.map +1 -1
  347. package/script/generated-sdk/health/contract.d.ts +14 -1
  348. package/script/generated-sdk/health/contract.d.ts.map +1 -1
  349. package/script/generated-sdk/health/mod.d.ts.map +1 -1
  350. package/script/generated-sdk/health/owned_api.d.ts +15 -2
  351. package/script/generated-sdk/health/owned_api.d.ts.map +1 -1
  352. package/script/generated-sdk/health/owned_api.js +2 -2
  353. package/script/generated-sdk/health/schemas.d.ts.map +1 -1
  354. package/script/generated-sdk/health/types.d.ts.map +1 -1
  355. package/script/generated-sdk/jobs/api.d.ts +105 -2
  356. package/script/generated-sdk/jobs/api.d.ts.map +1 -1
  357. package/script/generated-sdk/jobs/api.js +7 -7
  358. package/script/generated-sdk/jobs/client.d.ts.map +1 -1
  359. package/script/generated-sdk/jobs/contract.d.ts +105 -1
  360. package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
  361. package/script/generated-sdk/jobs/mod.d.ts.map +1 -1
  362. package/script/generated-sdk/jobs/owned_api.d.ts +106 -2
  363. package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  364. package/script/generated-sdk/jobs/owned_api.js +24 -24
  365. package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
  366. package/script/generated-sdk/jobs/types.d.ts.map +1 -1
  367. package/script/generated-sdk/jobs/types.js +2 -2
  368. package/script/generated-sdk/state/api.d.ts +64 -2
  369. package/script/generated-sdk/state/api.d.ts.map +1 -1
  370. package/script/generated-sdk/state/api.js +2 -2
  371. package/script/generated-sdk/state/client.d.ts.map +1 -1
  372. package/script/generated-sdk/state/contract.d.ts +64 -1
  373. package/script/generated-sdk/state/contract.d.ts.map +1 -1
  374. package/script/generated-sdk/state/mod.d.ts.map +1 -1
  375. package/script/generated-sdk/state/owned_api.d.ts +65 -2
  376. package/script/generated-sdk/state/owned_api.d.ts.map +1 -1
  377. package/script/generated-sdk/state/owned_api.js +15 -15
  378. package/script/generated-sdk/state/schemas.d.ts.map +1 -1
  379. package/script/generated-sdk/state/types.d.ts.map +1 -1
  380. package/script/generated-sdk/trellis-core/api.d.ts +44 -3
  381. package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
  382. package/script/generated-sdk/trellis-core/api.js +4 -1
  383. package/script/generated-sdk/trellis-core/client.d.ts +14 -2
  384. package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
  385. package/script/generated-sdk/trellis-core/contract.d.ts +40 -1
  386. package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  387. package/script/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  388. package/script/generated-sdk/trellis-core/owned_api.d.ts +41 -2
  389. package/script/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
  390. package/script/generated-sdk/trellis-core/owned_api.js +9 -9
  391. package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  392. package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
  393. package/script/globals.d.ts.map +1 -1
  394. package/script/health.d.ts +4 -3
  395. package/script/health.d.ts.map +1 -1
  396. package/script/health.js +16 -15
  397. package/script/helpers.d.ts.map +1 -1
  398. package/script/host/mod.d.ts.map +1 -0
  399. package/script/host/node.d.ts.map +1 -0
  400. package/script/index.d.ts +33 -32
  401. package/script/index.d.ts.map +1 -1
  402. package/script/index.js +86 -85
  403. package/script/jobs.d.ts.map +1 -1
  404. package/script/jobs.js +3 -3
  405. package/script/kv.d.ts +1 -1
  406. package/script/kv.d.ts.map +1 -1
  407. package/script/kv.js +22 -22
  408. package/script/models/auth/rpc/Logout.d.ts.map +1 -1
  409. package/script/models/trellis/Page.d.ts +1 -1
  410. package/script/models/trellis/Page.d.ts.map +1 -1
  411. package/script/models/trellis/Page.js +3 -3
  412. package/script/models/trellis/State.d.ts +1 -1
  413. package/script/models/trellis/State.d.ts.map +1 -1
  414. package/script/models/trellis/TrellisError.d.ts.map +1 -1
  415. package/script/models/trellis/rpc/StateDelete.d.ts.map +1 -1
  416. package/script/models/trellis/rpc/StateGet.d.ts +1 -1
  417. package/script/models/trellis/rpc/StateGet.d.ts.map +1 -1
  418. package/script/models/trellis/rpc/StateGet.js +3 -3
  419. package/script/models/trellis/rpc/StateList.d.ts.map +1 -1
  420. package/script/models/trellis/rpc/StateList.js +3 -3
  421. package/script/models/trellis/rpc/StatePut.d.ts +1 -1
  422. package/script/models/trellis/rpc/StatePut.d.ts.map +1 -1
  423. package/script/models/trellis/rpc/StatePut.js +5 -5
  424. package/script/operations.d.ts +4 -4
  425. package/script/operations.d.ts.map +1 -1
  426. package/script/operations.js +16 -16
  427. package/script/runtime_transport.d.ts.map +1 -1
  428. package/script/runtime_transport.js +2 -1
  429. package/script/sdk/auth.d.ts +2 -0
  430. package/script/sdk/auth.d.ts.map +1 -0
  431. package/script/{npm/src/sdk → sdk}/auth.js +1 -1
  432. package/script/sdk/core.d.ts +2 -0
  433. package/script/sdk/core.d.ts.map +1 -0
  434. package/script/{npm/src/sdk/health.js → sdk/core.js} +1 -1
  435. package/script/sdk/health.d.ts +2 -0
  436. package/script/sdk/health.d.ts.map +1 -0
  437. package/script/sdk/health.js +17 -0
  438. package/script/sdk/jobs.d.ts +2 -0
  439. package/script/sdk/jobs.d.ts.map +1 -0
  440. package/script/{npm/src/sdk → sdk}/jobs.js +1 -1
  441. package/script/sdk/state.d.ts +2 -0
  442. package/script/sdk/state.d.ts.map +1 -0
  443. package/script/{npm/src/sdk → sdk}/state.js +1 -1
  444. package/script/server/health.d.ts +2 -11
  445. package/script/server/health.d.ts.map +1 -1
  446. package/script/server/health.js +45 -11
  447. package/{esm/npm/src → script}/server/health_rpc.d.ts +1 -1
  448. package/script/server/health_rpc.d.ts.map +1 -0
  449. package/script/server/health_schemas.d.ts.map +1 -1
  450. package/script/server/internal_jobs/active-job.d.ts.map +1 -0
  451. package/script/server/internal_jobs/bindings.d.ts.map +1 -0
  452. package/script/server/internal_jobs/cancellation-registry.d.ts.map +1 -0
  453. package/script/server/internal_jobs/heartbeat.d.ts.map +1 -0
  454. package/script/server/internal_jobs/job-manager.d.ts.map +1 -0
  455. package/script/server/internal_jobs/projection.d.ts.map +1 -0
  456. package/script/server/internal_jobs/runtime-worker.d.ts.map +1 -0
  457. package/script/server/internal_jobs/types.d.ts.map +1 -0
  458. package/script/server/runtime.d.ts.map +1 -0
  459. package/{esm/npm/src → script}/server/service.d.ts +4 -4
  460. package/script/server/service.d.ts.map +1 -0
  461. package/script/{npm/src/server → server}/service.js +19 -19
  462. package/script/{npm/src/server → server}/subscription.d.ts +1 -1
  463. package/script/server/subscription.d.ts.map +1 -0
  464. package/script/server/transfer.d.ts.map +1 -0
  465. package/script/server.d.ts.map +1 -0
  466. package/script/server_logger.d.ts.map +1 -0
  467. package/script/service/deno.d.ts.map +1 -0
  468. package/script/service/mod.d.ts.map +1 -0
  469. package/script/service/node.d.ts.map +1 -0
  470. package/script/service/outbox_inbox.d.ts.map +1 -0
  471. package/script/store.d.ts +2 -2
  472. package/script/store.d.ts.map +1 -1
  473. package/script/store.js +20 -20
  474. package/script/tasks.d.ts +1 -1
  475. package/script/tasks.d.ts.map +1 -1
  476. package/script/tasks.js +2 -2
  477. package/script/telemetry/carrier.d.ts.map +1 -1
  478. package/script/telemetry/core.d.ts.map +1 -1
  479. package/script/telemetry/env.d.ts.map +1 -1
  480. package/script/telemetry/env.js +36 -2
  481. package/script/telemetry/mod.d.ts +9 -9
  482. package/script/telemetry/mod.d.ts.map +1 -1
  483. package/script/telemetry/mod.js +23 -23
  484. package/script/telemetry/nats.d.ts +1 -1
  485. package/script/telemetry/nats.d.ts.map +1 -1
  486. package/script/telemetry/result.d.ts.map +1 -1
  487. package/script/telemetry/trace.d.ts.map +1 -1
  488. package/script/telemetry/trace.js +2 -2
  489. package/script/telemetry/trellis.d.ts +1 -1
  490. package/script/telemetry/trellis.d.ts.map +1 -1
  491. package/script/telemetry/trellis.js +4 -4
  492. package/script/tracing.d.ts +3 -2
  493. package/script/tracing.d.ts.map +1 -1
  494. package/script/tracing.js +19 -16
  495. package/script/transfer.d.ts +1 -1
  496. package/script/transfer.d.ts.map +1 -1
  497. package/script/transfer.js +26 -26
  498. package/script/trellis.d.ts +13 -13
  499. package/script/trellis.d.ts.map +1 -1
  500. package/script/trellis.js +127 -127
  501. package/src/auth/protocol.ts +1 -1
  502. package/src/generate.ts +1 -0
  503. package/src/sdk/_generated/auth/api.ts +3 -0
  504. package/src/sdk/_generated/auth/client.ts +5 -1
  505. package/src/sdk/_generated/auth/contract.ts +1 -1
  506. package/src/sdk/_generated/auth/owned_api.ts +2 -2
  507. package/src/sdk/_generated/auth/types.ts +1 -1
  508. package/src/sdk/_generated/core/api.ts +3 -0
  509. package/src/sdk/_generated/core/client.ts +7 -2
  510. package/src/sdk/_generated/core/contract.ts +1 -1
  511. package/src/sdk/_generated/core/owned_api.ts +2 -2
  512. package/src/sdk/_generated/core/types.ts +1 -1
  513. package/src/sdk/_generated/health/client.ts +1 -1
  514. package/src/sdk/_generated/health/contract.ts +1 -1
  515. package/src/sdk/_generated/health/owned_api.ts +2 -2
  516. package/src/sdk/_generated/jobs/api.ts +3 -3
  517. package/src/sdk/_generated/jobs/client.ts +4 -4
  518. package/src/sdk/_generated/jobs/contract.ts +1 -1
  519. package/src/sdk/_generated/jobs/owned_api.ts +2 -2
  520. package/src/sdk/_generated/jobs/types.ts +2 -2
  521. package/src/sdk/_generated/state/api.ts +1 -1
  522. package/src/sdk/_generated/state/client.ts +2 -2
  523. package/src/sdk/_generated/state/contract.ts +1 -1
  524. package/src/sdk/_generated/state/owned_api.ts +2 -2
  525. package/src/sdk/_generated/state/types.ts +1 -1
  526. package/src/server/health.ts +2 -2
  527. package/src/server/health_rpc.ts +1 -1
  528. package/src/server/service.ts +5 -5
  529. package/src/server/subscription.ts +1 -4
  530. package/esm/npm/src/_dnt.polyfills.d.ts.map +0 -1
  531. package/esm/npm/src/_dnt.shims.d.ts.map +0 -1
  532. package/esm/npm/src/auth/browser/login.d.ts +0 -34
  533. package/esm/npm/src/auth/browser/login.d.ts.map +0 -1
  534. package/esm/npm/src/auth/browser/login.js +0 -141
  535. package/esm/npm/src/auth/browser/portal.d.ts +0 -11
  536. package/esm/npm/src/auth/browser/portal.d.ts.map +0 -1
  537. package/esm/npm/src/auth/browser/portal.js +0 -37
  538. package/esm/npm/src/auth/browser/session.d.ts +0 -29
  539. package/esm/npm/src/auth/browser/session.d.ts.map +0 -1
  540. package/esm/npm/src/auth/browser/session.js +0 -109
  541. package/esm/npm/src/auth/browser/storage.d.ts +0 -17
  542. package/esm/npm/src/auth/browser/storage.d.ts.map +0 -1
  543. package/esm/npm/src/auth/browser/storage.js +0 -73
  544. package/esm/npm/src/auth/browser.d.ts +0 -14
  545. package/esm/npm/src/auth/browser.d.ts.map +0 -1
  546. package/esm/npm/src/auth/browser.js +0 -12
  547. package/esm/npm/src/auth/device_activation.d.ts +0 -146
  548. package/esm/npm/src/auth/device_activation.d.ts.map +0 -1
  549. package/esm/npm/src/auth/device_activation.js +0 -369
  550. package/esm/npm/src/auth/keys.d.ts +0 -8
  551. package/esm/npm/src/auth/keys.d.ts.map +0 -1
  552. package/esm/npm/src/auth/keys.js +0 -70
  553. package/esm/npm/src/auth/mod.d.ts +0 -19
  554. package/esm/npm/src/auth/mod.d.ts.map +0 -1
  555. package/esm/npm/src/auth/mod.js +0 -18
  556. package/esm/npm/src/auth/proof.d.ts +0 -11
  557. package/esm/npm/src/auth/proof.d.ts.map +0 -1
  558. package/esm/npm/src/auth/proof.js +0 -49
  559. package/esm/npm/src/auth/protocol.d.ts +0 -3108
  560. package/esm/npm/src/auth/protocol.d.ts.map +0 -1
  561. package/esm/npm/src/auth/protocol.js +0 -1329
  562. package/esm/npm/src/auth/schemas.d.ts +0 -163
  563. package/esm/npm/src/auth/schemas.d.ts.map +0 -1
  564. package/esm/npm/src/auth/schemas.js +0 -89
  565. package/esm/npm/src/auth/session_auth.d.ts +0 -26
  566. package/esm/npm/src/auth/session_auth.d.ts.map +0 -1
  567. package/esm/npm/src/auth/session_auth.js +0 -70
  568. package/esm/npm/src/auth/time.d.ts +0 -7
  569. package/esm/npm/src/auth/time.d.ts.map +0 -1
  570. package/esm/npm/src/auth/time.js +0 -7
  571. package/esm/npm/src/auth/trellis_id.d.ts +0 -2
  572. package/esm/npm/src/auth/trellis_id.d.ts.map +0 -1
  573. package/esm/npm/src/auth/trellis_id.js +0 -5
  574. package/esm/npm/src/auth/types.d.ts +0 -4
  575. package/esm/npm/src/auth/types.d.ts.map +0 -1
  576. package/esm/npm/src/auth/types.js +0 -1
  577. package/esm/npm/src/auth/utils.d.ts +0 -11
  578. package/esm/npm/src/auth/utils.d.ts.map +0 -1
  579. package/esm/npm/src/auth/utils.js +0 -69
  580. package/esm/npm/src/auth.d.ts +0 -3
  581. package/esm/npm/src/auth.d.ts.map +0 -1
  582. package/esm/npm/src/auth.js +0 -2
  583. package/esm/npm/src/browser.d.ts.map +0 -1
  584. package/esm/npm/src/client.d.ts +0 -60
  585. package/esm/npm/src/client.d.ts.map +0 -1
  586. package/esm/npm/src/client.js +0 -39
  587. package/esm/npm/src/client_connect.d.ts +0 -87
  588. package/esm/npm/src/client_connect.d.ts.map +0 -1
  589. package/esm/npm/src/client_connect.js +0 -839
  590. package/esm/npm/src/codec.d.ts +0 -13
  591. package/esm/npm/src/codec.d.ts.map +0 -1
  592. package/esm/npm/src/codec.js +0 -73
  593. package/esm/npm/src/connection.d.ts +0 -91
  594. package/esm/npm/src/connection.d.ts.map +0 -1
  595. package/esm/npm/src/connection.js +0 -305
  596. package/esm/npm/src/contract.d.ts +0 -23
  597. package/esm/npm/src/contract.d.ts.map +0 -1
  598. package/esm/npm/src/contract.js +0 -1
  599. package/esm/npm/src/contract_support/canonical.d.ts +0 -14
  600. package/esm/npm/src/contract_support/canonical.d.ts.map +0 -1
  601. package/esm/npm/src/contract_support/canonical.js +0 -190
  602. package/esm/npm/src/contract_support/mod.d.ts +0 -1188
  603. package/esm/npm/src/contract_support/mod.d.ts.map +0 -1
  604. package/esm/npm/src/contract_support/mod.js +0 -2182
  605. package/esm/npm/src/contract_support/protocol.d.ts +0 -384
  606. package/esm/npm/src/contract_support/protocol.d.ts.map +0 -1
  607. package/esm/npm/src/contract_support/protocol.js +0 -164
  608. package/esm/npm/src/contract_support/runtime.d.ts +0 -84
  609. package/esm/npm/src/contract_support/runtime.d.ts.map +0 -1
  610. package/esm/npm/src/contract_support/runtime.js +0 -9
  611. package/esm/npm/src/contract_support/schema_pointers.d.ts +0 -18
  612. package/esm/npm/src/contract_support/schema_pointers.d.ts.map +0 -1
  613. package/esm/npm/src/contract_support/schema_pointers.js +0 -79
  614. package/esm/npm/src/contracts.d.ts +0 -5
  615. package/esm/npm/src/contracts.d.ts.map +0 -1
  616. package/esm/npm/src/contracts.js +0 -3
  617. package/esm/npm/src/device/deno.d.ts.map +0 -1
  618. package/esm/npm/src/device.d.ts +0 -150
  619. package/esm/npm/src/device.d.ts.map +0 -1
  620. package/esm/npm/src/device.js +0 -549
  621. package/esm/npm/src/env.d.ts.map +0 -1
  622. package/esm/npm/src/errors/AuthError.d.ts +0 -31
  623. package/esm/npm/src/errors/AuthError.d.ts.map +0 -1
  624. package/esm/npm/src/errors/AuthError.js +0 -79
  625. package/esm/npm/src/errors/KVError.d.ts +0 -31
  626. package/esm/npm/src/errors/KVError.d.ts.map +0 -1
  627. package/esm/npm/src/errors/KVError.js +0 -46
  628. package/esm/npm/src/errors/OperationLifecycleError.d.ts +0 -111
  629. package/esm/npm/src/errors/OperationLifecycleError.d.ts.map +0 -1
  630. package/esm/npm/src/errors/OperationLifecycleError.js +0 -207
  631. package/esm/npm/src/errors/RemoteError.d.ts +0 -55
  632. package/esm/npm/src/errors/RemoteError.d.ts.map +0 -1
  633. package/esm/npm/src/errors/RemoteError.js +0 -81
  634. package/esm/npm/src/errors/StoreError.d.ts +0 -22
  635. package/esm/npm/src/errors/StoreError.d.ts.map +0 -1
  636. package/esm/npm/src/errors/StoreError.js +0 -41
  637. package/esm/npm/src/errors/TransferError.d.ts +0 -22
  638. package/esm/npm/src/errors/TransferError.d.ts.map +0 -1
  639. package/esm/npm/src/errors/TransferError.js +0 -41
  640. package/esm/npm/src/errors/TransportError.d.ts +0 -30
  641. package/esm/npm/src/errors/TransportError.d.ts.map +0 -1
  642. package/esm/npm/src/errors/TransportError.js +0 -48
  643. package/esm/npm/src/errors/TrellisError.d.ts +0 -16
  644. package/esm/npm/src/errors/TrellisError.d.ts.map +0 -1
  645. package/esm/npm/src/errors/TrellisError.js +0 -15
  646. package/esm/npm/src/errors/ValidationError.d.ts +0 -51
  647. package/esm/npm/src/errors/ValidationError.d.ts.map +0 -1
  648. package/esm/npm/src/errors/ValidationError.js +0 -77
  649. package/esm/npm/src/errors/index.d.ts +0 -212
  650. package/esm/npm/src/errors/index.d.ts.map +0 -1
  651. package/esm/npm/src/errors/index.js +0 -190
  652. package/esm/npm/src/generate.d.ts.map +0 -1
  653. package/esm/npm/src/globals.d.ts +0 -10
  654. package/esm/npm/src/globals.d.ts.map +0 -1
  655. package/esm/npm/src/globals.js +0 -16
  656. package/esm/npm/src/health.d.ts +0 -5
  657. package/esm/npm/src/health.d.ts.map +0 -1
  658. package/esm/npm/src/health.js +0 -3
  659. package/esm/npm/src/helpers.d.ts +0 -10
  660. package/esm/npm/src/helpers.d.ts.map +0 -1
  661. package/esm/npm/src/helpers.js +0 -38
  662. package/esm/npm/src/host/mod.d.ts.map +0 -1
  663. package/esm/npm/src/host/node.d.ts.map +0 -1
  664. package/esm/npm/src/index.d.ts +0 -37
  665. package/esm/npm/src/index.d.ts.map +0 -1
  666. package/esm/npm/src/index.js +0 -18
  667. package/esm/npm/src/jobs.d.ts +0 -145
  668. package/esm/npm/src/jobs.d.ts.map +0 -1
  669. package/esm/npm/src/jobs.js +0 -220
  670. package/esm/npm/src/kv.d.ts +0 -82
  671. package/esm/npm/src/kv.d.ts.map +0 -1
  672. package/esm/npm/src/kv.js +0 -448
  673. package/esm/npm/src/models/auth/rpc/Logout.d.ts +0 -8
  674. package/esm/npm/src/models/auth/rpc/Logout.d.ts.map +0 -1
  675. package/esm/npm/src/models/auth/rpc/Logout.js +0 -5
  676. package/esm/npm/src/models/trellis/Page.d.ts +0 -2
  677. package/esm/npm/src/models/trellis/Page.d.ts.map +0 -1
  678. package/esm/npm/src/models/trellis/Page.js +0 -1
  679. package/esm/npm/src/models/trellis/State.d.ts +0 -49
  680. package/esm/npm/src/models/trellis/State.d.ts.map +0 -1
  681. package/esm/npm/src/models/trellis/State.js +0 -29
  682. package/esm/npm/src/models/trellis/TrellisError.d.ts +0 -20
  683. package/esm/npm/src/models/trellis/TrellisError.d.ts.map +0 -1
  684. package/esm/npm/src/models/trellis/TrellisError.js +0 -15
  685. package/esm/npm/src/models/trellis/rpc/StateDelete.d.ts +0 -12
  686. package/esm/npm/src/models/trellis/rpc/StateDelete.d.ts.map +0 -1
  687. package/esm/npm/src/models/trellis/rpc/StateDelete.js +0 -9
  688. package/esm/npm/src/models/trellis/rpc/StateGet.d.ts +0 -38
  689. package/esm/npm/src/models/trellis/rpc/StateGet.d.ts.map +0 -1
  690. package/esm/npm/src/models/trellis/rpc/StateGet.js +0 -16
  691. package/esm/npm/src/models/trellis/rpc/StateList.d.ts +0 -35
  692. package/esm/npm/src/models/trellis/rpc/StateList.d.ts.map +0 -1
  693. package/esm/npm/src/models/trellis/rpc/StateList.js +0 -18
  694. package/esm/npm/src/models/trellis/rpc/StatePut.d.ts +0 -51
  695. package/esm/npm/src/models/trellis/rpc/StatePut.d.ts.map +0 -1
  696. package/esm/npm/src/models/trellis/rpc/StatePut.js +0 -26
  697. package/esm/npm/src/operations.d.ts +0 -171
  698. package/esm/npm/src/operations.d.ts.map +0 -1
  699. package/esm/npm/src/operations.js +0 -775
  700. package/esm/npm/src/runtime_transport.d.ts +0 -25
  701. package/esm/npm/src/runtime_transport.d.ts.map +0 -1
  702. package/esm/npm/src/runtime_transport.js +0 -84
  703. package/esm/npm/src/sdk/auth.d.ts +0 -2
  704. package/esm/npm/src/sdk/auth.d.ts.map +0 -1
  705. package/esm/npm/src/sdk/auth.js +0 -1
  706. package/esm/npm/src/sdk/core.d.ts +0 -2
  707. package/esm/npm/src/sdk/core.d.ts.map +0 -1
  708. package/esm/npm/src/sdk/core.js +0 -1
  709. package/esm/npm/src/sdk/health.d.ts +0 -2
  710. package/esm/npm/src/sdk/health.d.ts.map +0 -1
  711. package/esm/npm/src/sdk/health.js +0 -1
  712. package/esm/npm/src/sdk/jobs.d.ts +0 -2
  713. package/esm/npm/src/sdk/jobs.d.ts.map +0 -1
  714. package/esm/npm/src/sdk/jobs.js +0 -1
  715. package/esm/npm/src/sdk/state.d.ts +0 -2
  716. package/esm/npm/src/sdk/state.d.ts.map +0 -1
  717. package/esm/npm/src/sdk/state.js +0 -1
  718. package/esm/npm/src/server/health.d.ts +0 -161
  719. package/esm/npm/src/server/health.d.ts.map +0 -1
  720. package/esm/npm/src/server/health.js +0 -262
  721. package/esm/npm/src/server/health_rpc.d.ts.map +0 -1
  722. package/esm/npm/src/server/health_schemas.d.ts +0 -71
  723. package/esm/npm/src/server/health_schemas.d.ts.map +0 -1
  724. package/esm/npm/src/server/health_schemas.js +0 -54
  725. package/esm/npm/src/server/internal_jobs/active-job.d.ts.map +0 -1
  726. package/esm/npm/src/server/internal_jobs/bindings.d.ts.map +0 -1
  727. package/esm/npm/src/server/internal_jobs/cancellation-registry.d.ts.map +0 -1
  728. package/esm/npm/src/server/internal_jobs/heartbeat.d.ts.map +0 -1
  729. package/esm/npm/src/server/internal_jobs/job-manager.d.ts.map +0 -1
  730. package/esm/npm/src/server/internal_jobs/projection.d.ts.map +0 -1
  731. package/esm/npm/src/server/internal_jobs/runtime-worker.d.ts.map +0 -1
  732. package/esm/npm/src/server/internal_jobs/types.d.ts.map +0 -1
  733. package/esm/npm/src/server/runtime.d.ts.map +0 -1
  734. package/esm/npm/src/server/service.d.ts.map +0 -1
  735. package/esm/npm/src/server/subscription.d.ts.map +0 -1
  736. package/esm/npm/src/server/transfer.d.ts.map +0 -1
  737. package/esm/npm/src/server.d.ts.map +0 -1
  738. package/esm/npm/src/server_logger.d.ts.map +0 -1
  739. package/esm/npm/src/service/deno.d.ts.map +0 -1
  740. package/esm/npm/src/service/mod.d.ts.map +0 -1
  741. package/esm/npm/src/service/node.d.ts.map +0 -1
  742. package/esm/npm/src/service/outbox_inbox.d.ts.map +0 -1
  743. package/esm/npm/src/store.d.ts +0 -67
  744. package/esm/npm/src/store.d.ts.map +0 -1
  745. package/esm/npm/src/store.js +0 -474
  746. package/esm/npm/src/tasks.d.ts +0 -11
  747. package/esm/npm/src/tasks.d.ts.map +0 -1
  748. package/esm/npm/src/tasks.js +0 -41
  749. package/esm/npm/src/telemetry/carrier.d.ts +0 -9
  750. package/esm/npm/src/telemetry/carrier.d.ts.map +0 -1
  751. package/esm/npm/src/telemetry/carrier.js +0 -20
  752. package/esm/npm/src/telemetry/core.d.ts +0 -8
  753. package/esm/npm/src/telemetry/core.d.ts.map +0 -1
  754. package/esm/npm/src/telemetry/core.js +0 -14
  755. package/esm/npm/src/telemetry/env.d.ts +0 -2
  756. package/esm/npm/src/telemetry/env.d.ts.map +0 -1
  757. package/esm/npm/src/telemetry/env.js +0 -10
  758. package/esm/npm/src/telemetry/mod.d.ts +0 -10
  759. package/esm/npm/src/telemetry/mod.d.ts.map +0 -1
  760. package/esm/npm/src/telemetry/mod.js +0 -6
  761. package/esm/npm/src/telemetry/nats.d.ts +0 -7
  762. package/esm/npm/src/telemetry/nats.d.ts.map +0 -1
  763. package/esm/npm/src/telemetry/nats.js +0 -6
  764. package/esm/npm/src/telemetry/result.d.ts +0 -2
  765. package/esm/npm/src/telemetry/result.d.ts.map +0 -1
  766. package/esm/npm/src/telemetry/result.js +0 -18
  767. package/esm/npm/src/telemetry/trace.d.ts +0 -5
  768. package/esm/npm/src/telemetry/trace.d.ts.map +0 -1
  769. package/esm/npm/src/telemetry/trace.js +0 -26
  770. package/esm/npm/src/telemetry/trellis.d.ts +0 -2
  771. package/esm/npm/src/telemetry/trellis.d.ts.map +0 -1
  772. package/esm/npm/src/telemetry/trellis.js +0 -1
  773. package/esm/npm/src/tracing.d.ts +0 -5
  774. package/esm/npm/src/tracing.d.ts.map +0 -1
  775. package/esm/npm/src/tracing.js +0 -8
  776. package/esm/npm/src/transfer.d.ts +0 -118
  777. package/esm/npm/src/transfer.d.ts.map +0 -1
  778. package/esm/npm/src/transfer.js +0 -407
  779. package/esm/npm/src/trellis.d.ts +0 -678
  780. package/esm/npm/src/trellis.d.ts.map +0 -1
  781. package/esm/npm/src/trellis.js +0 -2284
  782. package/script/npm/src/_dnt.polyfills.d.ts.map +0 -1
  783. package/script/npm/src/_dnt.shims.d.ts.map +0 -1
  784. package/script/npm/src/auth/browser/login.d.ts +0 -34
  785. package/script/npm/src/auth/browser/login.d.ts.map +0 -1
  786. package/script/npm/src/auth/browser/login.js +0 -147
  787. package/script/npm/src/auth/browser/portal.d.ts +0 -11
  788. package/script/npm/src/auth/browser/portal.d.ts.map +0 -1
  789. package/script/npm/src/auth/browser/portal.js +0 -44
  790. package/script/npm/src/auth/browser/session.d.ts +0 -29
  791. package/script/npm/src/auth/browser/session.d.ts.map +0 -1
  792. package/script/npm/src/auth/browser/session.js +0 -122
  793. package/script/npm/src/auth/browser/storage.d.ts +0 -17
  794. package/script/npm/src/auth/browser/storage.d.ts.map +0 -1
  795. package/script/npm/src/auth/browser/storage.js +0 -79
  796. package/script/npm/src/auth/browser.d.ts +0 -14
  797. package/script/npm/src/auth/browser.d.ts.map +0 -1
  798. package/script/npm/src/auth/browser.js +0 -53
  799. package/script/npm/src/auth/device_activation.d.ts +0 -146
  800. package/script/npm/src/auth/device_activation.d.ts.map +0 -1
  801. package/script/npm/src/auth/device_activation.js +0 -387
  802. package/script/npm/src/auth/keys.d.ts +0 -8
  803. package/script/npm/src/auth/keys.d.ts.map +0 -1
  804. package/script/npm/src/auth/keys.js +0 -82
  805. package/script/npm/src/auth/mod.d.ts +0 -19
  806. package/script/npm/src/auth/mod.d.ts.map +0 -1
  807. package/script/npm/src/auth/mod.js +0 -248
  808. package/script/npm/src/auth/proof.d.ts +0 -11
  809. package/script/npm/src/auth/proof.d.ts.map +0 -1
  810. package/script/npm/src/auth/proof.js +0 -54
  811. package/script/npm/src/auth/protocol.d.ts +0 -3108
  812. package/script/npm/src/auth/protocol.d.ts.map +0 -1
  813. package/script/npm/src/auth/protocol.js +0 -1335
  814. package/script/npm/src/auth/schemas.d.ts +0 -163
  815. package/script/npm/src/auth/schemas.d.ts.map +0 -1
  816. package/script/npm/src/auth/schemas.js +0 -93
  817. package/script/npm/src/auth/session_auth.d.ts +0 -26
  818. package/script/npm/src/auth/session_auth.d.ts.map +0 -1
  819. package/script/npm/src/auth/session_auth.js +0 -74
  820. package/script/npm/src/auth/time.d.ts +0 -7
  821. package/script/npm/src/auth/time.d.ts.map +0 -1
  822. package/script/npm/src/auth/time.js +0 -11
  823. package/script/npm/src/auth/trellis_id.d.ts +0 -2
  824. package/script/npm/src/auth/trellis_id.d.ts.map +0 -1
  825. package/script/npm/src/auth/trellis_id.js +0 -8
  826. package/script/npm/src/auth/types.d.ts +0 -4
  827. package/script/npm/src/auth/types.d.ts.map +0 -1
  828. package/script/npm/src/auth/types.js +0 -2
  829. package/script/npm/src/auth/utils.d.ts +0 -11
  830. package/script/npm/src/auth/utils.d.ts.map +0 -1
  831. package/script/npm/src/auth/utils.js +0 -78
  832. package/script/npm/src/auth.d.ts +0 -3
  833. package/script/npm/src/auth.d.ts.map +0 -1
  834. package/script/npm/src/auth.js +0 -18
  835. package/script/npm/src/browser.d.ts.map +0 -1
  836. package/script/npm/src/client.d.ts +0 -60
  837. package/script/npm/src/client.d.ts.map +0 -1
  838. package/script/npm/src/client.js +0 -76
  839. package/script/npm/src/client_connect.d.ts +0 -87
  840. package/script/npm/src/client_connect.d.ts.map +0 -1
  841. package/script/npm/src/client_connect.js +0 -878
  842. package/script/npm/src/codec.d.ts +0 -13
  843. package/script/npm/src/codec.d.ts.map +0 -1
  844. package/script/npm/src/codec.js +0 -80
  845. package/script/npm/src/connection.d.ts +0 -91
  846. package/script/npm/src/connection.d.ts.map +0 -1
  847. package/script/npm/src/connection.js +0 -311
  848. package/script/npm/src/contract.d.ts +0 -23
  849. package/script/npm/src/contract.d.ts.map +0 -1
  850. package/script/npm/src/contract.js +0 -8
  851. package/script/npm/src/contract_support/canonical.d.ts +0 -14
  852. package/script/npm/src/contract_support/canonical.d.ts.map +0 -1
  853. package/script/npm/src/contract_support/canonical.js +0 -199
  854. package/script/npm/src/contract_support/mod.d.ts +0 -1188
  855. package/script/npm/src/contract_support/mod.d.ts.map +0 -1
  856. package/script/npm/src/contract_support/mod.js +0 -2225
  857. package/script/npm/src/contract_support/protocol.d.ts +0 -384
  858. package/script/npm/src/contract_support/protocol.d.ts.map +0 -1
  859. package/script/npm/src/contract_support/protocol.js +0 -171
  860. package/script/npm/src/contract_support/runtime.d.ts +0 -84
  861. package/script/npm/src/contract_support/runtime.d.ts.map +0 -1
  862. package/script/npm/src/contract_support/runtime.js +0 -13
  863. package/script/npm/src/contract_support/schema_pointers.d.ts +0 -18
  864. package/script/npm/src/contract_support/schema_pointers.d.ts.map +0 -1
  865. package/script/npm/src/contract_support/schema_pointers.js +0 -83
  866. package/script/npm/src/contracts.d.ts +0 -5
  867. package/script/npm/src/contracts.d.ts.map +0 -1
  868. package/script/npm/src/contracts.js +0 -24
  869. package/script/npm/src/device/deno.d.ts.map +0 -1
  870. package/script/npm/src/device.d.ts +0 -150
  871. package/script/npm/src/device.d.ts.map +0 -1
  872. package/script/npm/src/device.js +0 -555
  873. package/script/npm/src/env.d.ts.map +0 -1
  874. package/script/npm/src/errors/AuthError.d.ts +0 -31
  875. package/script/npm/src/errors/AuthError.d.ts.map +0 -1
  876. package/script/npm/src/errors/AuthError.js +0 -86
  877. package/script/npm/src/errors/KVError.d.ts +0 -31
  878. package/script/npm/src/errors/KVError.d.ts.map +0 -1
  879. package/script/npm/src/errors/KVError.js +0 -53
  880. package/script/npm/src/errors/OperationLifecycleError.d.ts +0 -111
  881. package/script/npm/src/errors/OperationLifecycleError.d.ts.map +0 -1
  882. package/script/npm/src/errors/OperationLifecycleError.js +0 -216
  883. package/script/npm/src/errors/RemoteError.d.ts +0 -55
  884. package/script/npm/src/errors/RemoteError.d.ts.map +0 -1
  885. package/script/npm/src/errors/RemoteError.js +0 -88
  886. package/script/npm/src/errors/StoreError.d.ts +0 -22
  887. package/script/npm/src/errors/StoreError.d.ts.map +0 -1
  888. package/script/npm/src/errors/StoreError.js +0 -48
  889. package/script/npm/src/errors/TransferError.d.ts +0 -22
  890. package/script/npm/src/errors/TransferError.d.ts.map +0 -1
  891. package/script/npm/src/errors/TransferError.js +0 -48
  892. package/script/npm/src/errors/TransportError.d.ts +0 -30
  893. package/script/npm/src/errors/TransportError.d.ts.map +0 -1
  894. package/script/npm/src/errors/TransportError.js +0 -55
  895. package/script/npm/src/errors/TrellisError.d.ts +0 -16
  896. package/script/npm/src/errors/TrellisError.d.ts.map +0 -1
  897. package/script/npm/src/errors/TrellisError.js +0 -19
  898. package/script/npm/src/errors/ValidationError.d.ts +0 -51
  899. package/script/npm/src/errors/ValidationError.d.ts.map +0 -1
  900. package/script/npm/src/errors/ValidationError.js +0 -84
  901. package/script/npm/src/errors/index.d.ts +0 -212
  902. package/script/npm/src/errors/index.d.ts.map +0 -1
  903. package/script/npm/src/errors/index.js +0 -217
  904. package/script/npm/src/generate.d.ts.map +0 -1
  905. package/script/npm/src/globals.d.ts +0 -10
  906. package/script/npm/src/globals.d.ts.map +0 -1
  907. package/script/npm/src/globals.js +0 -19
  908. package/script/npm/src/health.d.ts +0 -5
  909. package/script/npm/src/health.d.ts.map +0 -1
  910. package/script/npm/src/health.js +0 -19
  911. package/script/npm/src/helpers.d.ts +0 -10
  912. package/script/npm/src/helpers.d.ts.map +0 -1
  913. package/script/npm/src/helpers.js +0 -44
  914. package/script/npm/src/host/mod.d.ts.map +0 -1
  915. package/script/npm/src/host/node.d.ts.map +0 -1
  916. package/script/npm/src/index.d.ts +0 -37
  917. package/script/npm/src/index.d.ts.map +0 -1
  918. package/script/npm/src/index.js +0 -98
  919. package/script/npm/src/jobs.d.ts +0 -145
  920. package/script/npm/src/jobs.d.ts.map +0 -1
  921. package/script/npm/src/jobs.js +0 -227
  922. package/script/npm/src/kv.d.ts +0 -82
  923. package/script/npm/src/kv.d.ts.map +0 -1
  924. package/script/npm/src/kv.js +0 -486
  925. package/script/npm/src/models/auth/rpc/Logout.d.ts +0 -8
  926. package/script/npm/src/models/auth/rpc/Logout.d.ts.map +0 -1
  927. package/script/npm/src/models/auth/rpc/Logout.js +0 -11
  928. package/script/npm/src/models/trellis/Page.d.ts +0 -2
  929. package/script/npm/src/models/trellis/Page.d.ts.map +0 -1
  930. package/script/npm/src/models/trellis/Page.js +0 -6
  931. package/script/npm/src/models/trellis/State.d.ts +0 -49
  932. package/script/npm/src/models/trellis/State.d.ts.map +0 -1
  933. package/script/npm/src/models/trellis/State.js +0 -35
  934. package/script/npm/src/models/trellis/TrellisError.d.ts +0 -20
  935. package/script/npm/src/models/trellis/TrellisError.d.ts.map +0 -1
  936. package/script/npm/src/models/trellis/TrellisError.js +0 -21
  937. package/script/npm/src/models/trellis/rpc/StateDelete.d.ts +0 -12
  938. package/script/npm/src/models/trellis/rpc/StateDelete.d.ts.map +0 -1
  939. package/script/npm/src/models/trellis/rpc/StateDelete.js +0 -15
  940. package/script/npm/src/models/trellis/rpc/StateGet.d.ts +0 -38
  941. package/script/npm/src/models/trellis/rpc/StateGet.d.ts.map +0 -1
  942. package/script/npm/src/models/trellis/rpc/StateGet.js +0 -22
  943. package/script/npm/src/models/trellis/rpc/StateList.d.ts +0 -35
  944. package/script/npm/src/models/trellis/rpc/StateList.d.ts.map +0 -1
  945. package/script/npm/src/models/trellis/rpc/StateList.js +0 -24
  946. package/script/npm/src/models/trellis/rpc/StatePut.d.ts +0 -51
  947. package/script/npm/src/models/trellis/rpc/StatePut.d.ts.map +0 -1
  948. package/script/npm/src/models/trellis/rpc/StatePut.js +0 -32
  949. package/script/npm/src/operations.d.ts +0 -171
  950. package/script/npm/src/operations.d.ts.map +0 -1
  951. package/script/npm/src/operations.js +0 -780
  952. package/script/npm/src/runtime_transport.d.ts +0 -25
  953. package/script/npm/src/runtime_transport.d.ts.map +0 -1
  954. package/script/npm/src/runtime_transport.js +0 -122
  955. package/script/npm/src/sdk/auth.d.ts +0 -2
  956. package/script/npm/src/sdk/auth.d.ts.map +0 -1
  957. package/script/npm/src/sdk/core.d.ts +0 -2
  958. package/script/npm/src/sdk/core.d.ts.map +0 -1
  959. package/script/npm/src/sdk/core.js +0 -17
  960. package/script/npm/src/sdk/health.d.ts +0 -2
  961. package/script/npm/src/sdk/health.d.ts.map +0 -1
  962. package/script/npm/src/sdk/jobs.d.ts +0 -2
  963. package/script/npm/src/sdk/jobs.d.ts.map +0 -1
  964. package/script/npm/src/sdk/state.d.ts +0 -2
  965. package/script/npm/src/sdk/state.d.ts.map +0 -1
  966. package/script/npm/src/server/health.d.ts +0 -161
  967. package/script/npm/src/server/health.d.ts.map +0 -1
  968. package/script/npm/src/server/health.js +0 -304
  969. package/script/npm/src/server/health_rpc.d.ts.map +0 -1
  970. package/script/npm/src/server/health_schemas.d.ts +0 -71
  971. package/script/npm/src/server/health_schemas.d.ts.map +0 -1
  972. package/script/npm/src/server/health_schemas.js +0 -57
  973. package/script/npm/src/server/internal_jobs/active-job.d.ts.map +0 -1
  974. package/script/npm/src/server/internal_jobs/bindings.d.ts.map +0 -1
  975. package/script/npm/src/server/internal_jobs/cancellation-registry.d.ts.map +0 -1
  976. package/script/npm/src/server/internal_jobs/heartbeat.d.ts.map +0 -1
  977. package/script/npm/src/server/internal_jobs/job-manager.d.ts.map +0 -1
  978. package/script/npm/src/server/internal_jobs/projection.d.ts.map +0 -1
  979. package/script/npm/src/server/internal_jobs/runtime-worker.d.ts.map +0 -1
  980. package/script/npm/src/server/internal_jobs/types.d.ts.map +0 -1
  981. package/script/npm/src/server/runtime.d.ts.map +0 -1
  982. package/script/npm/src/server/service.d.ts.map +0 -1
  983. package/script/npm/src/server/subscription.d.ts.map +0 -1
  984. package/script/npm/src/server/transfer.d.ts.map +0 -1
  985. package/script/npm/src/server.d.ts.map +0 -1
  986. package/script/npm/src/server_logger.d.ts.map +0 -1
  987. package/script/npm/src/service/deno.d.ts.map +0 -1
  988. package/script/npm/src/service/mod.d.ts.map +0 -1
  989. package/script/npm/src/service/node.d.ts.map +0 -1
  990. package/script/npm/src/service/outbox_inbox.d.ts.map +0 -1
  991. package/script/npm/src/store.d.ts +0 -67
  992. package/script/npm/src/store.d.ts.map +0 -1
  993. package/script/npm/src/store.js +0 -480
  994. package/script/npm/src/tasks.d.ts +0 -11
  995. package/script/npm/src/tasks.d.ts.map +0 -1
  996. package/script/npm/src/tasks.js +0 -45
  997. package/script/npm/src/telemetry/carrier.d.ts +0 -9
  998. package/script/npm/src/telemetry/carrier.d.ts.map +0 -1
  999. package/script/npm/src/telemetry/carrier.js +0 -25
  1000. package/script/npm/src/telemetry/core.d.ts +0 -8
  1001. package/script/npm/src/telemetry/core.d.ts.map +0 -1
  1002. package/script/npm/src/telemetry/core.js +0 -24
  1003. package/script/npm/src/telemetry/env.d.ts +0 -2
  1004. package/script/npm/src/telemetry/env.d.ts.map +0 -1
  1005. package/script/npm/src/telemetry/env.js +0 -46
  1006. package/script/npm/src/telemetry/mod.d.ts +0 -10
  1007. package/script/npm/src/telemetry/mod.d.ts.map +0 -1
  1008. package/script/npm/src/telemetry/mod.js +0 -26
  1009. package/script/npm/src/telemetry/nats.d.ts +0 -7
  1010. package/script/npm/src/telemetry/nats.d.ts.map +0 -1
  1011. package/script/npm/src/telemetry/nats.js +0 -9
  1012. package/script/npm/src/telemetry/result.d.ts +0 -2
  1013. package/script/npm/src/telemetry/result.d.ts.map +0 -1
  1014. package/script/npm/src/telemetry/result.js +0 -21
  1015. package/script/npm/src/telemetry/trace.d.ts +0 -5
  1016. package/script/npm/src/telemetry/trace.d.ts.map +0 -1
  1017. package/script/npm/src/telemetry/trace.js +0 -31
  1018. package/script/npm/src/telemetry/trellis.d.ts +0 -2
  1019. package/script/npm/src/telemetry/trellis.d.ts.map +0 -1
  1020. package/script/npm/src/telemetry/trellis.js +0 -7
  1021. package/script/npm/src/tracing.d.ts +0 -5
  1022. package/script/npm/src/tracing.d.ts.map +0 -1
  1023. package/script/npm/src/tracing.js +0 -27
  1024. package/script/npm/src/transfer.d.ts +0 -118
  1025. package/script/npm/src/transfer.d.ts.map +0 -1
  1026. package/script/npm/src/transfer.js +0 -417
  1027. package/script/npm/src/trellis.d.ts +0 -678
  1028. package/script/npm/src/trellis.d.ts.map +0 -1
  1029. package/script/npm/src/trellis.js +0 -2299
  1030. /package/esm/{npm/src/_dnt.polyfills.d.ts → _dnt.polyfills.d.ts} +0 -0
  1031. /package/esm/{npm/src/_dnt.polyfills.js → _dnt.polyfills.js} +0 -0
  1032. /package/esm/{npm/src/_dnt.shims.d.ts → _dnt.shims.d.ts} +0 -0
  1033. /package/esm/{npm/src/_dnt.shims.js → _dnt.shims.js} +0 -0
  1034. /package/esm/{npm/src/browser.d.ts → browser.d.ts} +0 -0
  1035. /package/esm/{npm/src/browser.js → browser.js} +0 -0
  1036. /package/esm/{npm/src/device → device}/deno.d.ts +0 -0
  1037. /package/esm/{npm/src/device → device}/deno.js +0 -0
  1038. /package/esm/{npm/src/env.d.ts → env.d.ts} +0 -0
  1039. /package/esm/{npm/src/env.js → env.js} +0 -0
  1040. /package/esm/{npm/src/generate.d.ts → generate.d.ts} +0 -0
  1041. /package/esm/{npm/src/host → host}/mod.d.ts +0 -0
  1042. /package/esm/{npm/src/host → host}/mod.js +0 -0
  1043. /package/esm/{npm/src/host → host}/node.d.ts +0 -0
  1044. /package/esm/{npm/src/host → host}/node.js +0 -0
  1045. /package/esm/{npm/src/server → server}/health_rpc.js +0 -0
  1046. /package/esm/{npm/src/server → server}/internal_jobs/active-job.d.ts +0 -0
  1047. /package/esm/{npm/src/server → server}/internal_jobs/active-job.js +0 -0
  1048. /package/esm/{npm/src/server → server}/internal_jobs/bindings.d.ts +0 -0
  1049. /package/esm/{npm/src/server → server}/internal_jobs/bindings.js +0 -0
  1050. /package/esm/{npm/src/server → server}/internal_jobs/cancellation-registry.d.ts +0 -0
  1051. /package/esm/{npm/src/server → server}/internal_jobs/cancellation-registry.js +0 -0
  1052. /package/esm/{npm/src/server → server}/internal_jobs/heartbeat.d.ts +0 -0
  1053. /package/esm/{npm/src/server → server}/internal_jobs/heartbeat.js +0 -0
  1054. /package/esm/{npm/src/server → server}/internal_jobs/job-manager.d.ts +0 -0
  1055. /package/esm/{npm/src/server → server}/internal_jobs/job-manager.js +0 -0
  1056. /package/esm/{npm/src/server → server}/internal_jobs/projection.d.ts +0 -0
  1057. /package/esm/{npm/src/server → server}/internal_jobs/projection.js +0 -0
  1058. /package/esm/{npm/src/server → server}/internal_jobs/runtime-worker.d.ts +0 -0
  1059. /package/esm/{npm/src/server → server}/internal_jobs/runtime-worker.js +0 -0
  1060. /package/esm/{npm/src/server → server}/internal_jobs/types.d.ts +0 -0
  1061. /package/esm/{npm/src/server → server}/internal_jobs/types.js +0 -0
  1062. /package/esm/{npm/src/server → server}/runtime.d.ts +0 -0
  1063. /package/esm/{npm/src/server → server}/runtime.js +0 -0
  1064. /package/esm/{npm/src/server → server}/subscription.js +0 -0
  1065. /package/esm/{npm/src/server → server}/transfer.d.ts +0 -0
  1066. /package/esm/{npm/src/server → server}/transfer.js +0 -0
  1067. /package/esm/{npm/src/server.d.ts → server.d.ts} +0 -0
  1068. /package/esm/{npm/src/server.js → server.js} +0 -0
  1069. /package/esm/{npm/src/server_logger.d.ts → server_logger.d.ts} +0 -0
  1070. /package/esm/{npm/src/server_logger.js → server_logger.js} +0 -0
  1071. /package/esm/{npm/src/service → service}/deno.d.ts +0 -0
  1072. /package/esm/{npm/src/service → service}/deno.js +0 -0
  1073. /package/esm/{npm/src/service → service}/mod.d.ts +0 -0
  1074. /package/esm/{npm/src/service → service}/mod.js +0 -0
  1075. /package/esm/{npm/src/service → service}/node.d.ts +0 -0
  1076. /package/esm/{npm/src/service → service}/node.js +0 -0
  1077. /package/esm/{npm/src/service → service}/outbox_inbox.d.ts +0 -0
  1078. /package/esm/{npm/src/service → service}/outbox_inbox.js +0 -0
  1079. /package/script/{npm/src/_dnt.polyfills.d.ts → _dnt.polyfills.d.ts} +0 -0
  1080. /package/script/{npm/src/_dnt.polyfills.js → _dnt.polyfills.js} +0 -0
  1081. /package/script/{npm/src/_dnt.shims.d.ts → _dnt.shims.d.ts} +0 -0
  1082. /package/script/{npm/src/_dnt.shims.js → _dnt.shims.js} +0 -0
  1083. /package/script/{npm/src/browser.d.ts → browser.d.ts} +0 -0
  1084. /package/script/{npm/src/browser.js → browser.js} +0 -0
  1085. /package/script/{npm/src/device → device}/deno.d.ts +0 -0
  1086. /package/script/{npm/src/device → device}/deno.js +0 -0
  1087. /package/script/{npm/src/env.d.ts → env.d.ts} +0 -0
  1088. /package/script/{npm/src/env.js → env.js} +0 -0
  1089. /package/script/{npm/src/generate.d.ts → generate.d.ts} +0 -0
  1090. /package/script/{npm/src/host → host}/mod.d.ts +0 -0
  1091. /package/script/{npm/src/host → host}/mod.js +0 -0
  1092. /package/script/{npm/src/host → host}/node.d.ts +0 -0
  1093. /package/script/{npm/src/host → host}/node.js +0 -0
  1094. /package/script/{npm/src/server → server}/health_rpc.js +0 -0
  1095. /package/script/{npm/src/server → server}/internal_jobs/active-job.d.ts +0 -0
  1096. /package/script/{npm/src/server → server}/internal_jobs/active-job.js +0 -0
  1097. /package/script/{npm/src/server → server}/internal_jobs/bindings.d.ts +0 -0
  1098. /package/script/{npm/src/server → server}/internal_jobs/bindings.js +0 -0
  1099. /package/script/{npm/src/server → server}/internal_jobs/cancellation-registry.d.ts +0 -0
  1100. /package/script/{npm/src/server → server}/internal_jobs/cancellation-registry.js +0 -0
  1101. /package/script/{npm/src/server → server}/internal_jobs/heartbeat.d.ts +0 -0
  1102. /package/script/{npm/src/server → server}/internal_jobs/heartbeat.js +0 -0
  1103. /package/script/{npm/src/server → server}/internal_jobs/job-manager.d.ts +0 -0
  1104. /package/script/{npm/src/server → server}/internal_jobs/job-manager.js +0 -0
  1105. /package/script/{npm/src/server → server}/internal_jobs/projection.d.ts +0 -0
  1106. /package/script/{npm/src/server → server}/internal_jobs/projection.js +0 -0
  1107. /package/script/{npm/src/server → server}/internal_jobs/runtime-worker.d.ts +0 -0
  1108. /package/script/{npm/src/server → server}/internal_jobs/runtime-worker.js +0 -0
  1109. /package/script/{npm/src/server → server}/internal_jobs/types.d.ts +0 -0
  1110. /package/script/{npm/src/server → server}/internal_jobs/types.js +0 -0
  1111. /package/script/{npm/src/server → server}/runtime.d.ts +0 -0
  1112. /package/script/{npm/src/server → server}/runtime.js +0 -0
  1113. /package/script/{npm/src/server → server}/subscription.js +0 -0
  1114. /package/script/{npm/src/server → server}/transfer.d.ts +0 -0
  1115. /package/script/{npm/src/server → server}/transfer.js +0 -0
  1116. /package/script/{npm/src/server.d.ts → server.d.ts} +0 -0
  1117. /package/script/{npm/src/server.js → server.js} +0 -0
  1118. /package/script/{npm/src/server_logger.d.ts → server_logger.d.ts} +0 -0
  1119. /package/script/{npm/src/server_logger.js → server_logger.js} +0 -0
  1120. /package/script/{npm/src/service → service}/deno.d.ts +0 -0
  1121. /package/script/{npm/src/service → service}/deno.js +0 -0
  1122. /package/script/{npm/src/service → service}/mod.d.ts +0 -0
  1123. /package/script/{npm/src/service → service}/mod.js +0 -0
  1124. /package/script/{npm/src/service → service}/node.d.ts +0 -0
  1125. /package/script/{npm/src/service → service}/node.js +0 -0
  1126. /package/script/{npm/src/service → service}/outbox_inbox.d.ts +0 -0
  1127. /package/script/{npm/src/service → service}/outbox_inbox.js +0 -0
@@ -1,2299 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _Trellis_instances, _Trellis_log, _Trellis_tasks, _Trellis_hasExplicitApi, _Trellis_noResponderMaxRetries, _Trellis_noResponderRetryMs, _Trellis_onSessionNotFound, _Trellis_operationStore, _Trellis_eventConsumers, _Trellis_durableEventLoops, _Trellis_createStateFacade, _Trellis_createRpcFacade, _Trellis_createRpcHandleFacade, _Trellis_createEventFacade, _Trellis_createEventPublishFacade, _Trellis_createFeedFacade, _Trellis_createHandlerTrellis, _Trellis_createOperationFacade, _Trellis_unknownApiError, _Trellis_requestBuiltRpcUnknown, _Trellis_requestBuiltRpc, _Trellis_handleBrowserAuthRequired, _Trellis_authenticateFeedRequest, _Trellis_subscribeFeed, _Trellis_handleFeed, _Trellis_processFeedMessage, _Trellis_handleRPC, _Trellis_processRPCMessage, _Trellis_respondWithPayload, _Trellis_respondWithError, _Trellis_startEphemeralEvent, _Trellis_resolveEventConsumerGroup, _Trellis_registerDurableEventHandler, _Trellis_startDurableEventConsumer, _Trellis_durableEventConsumerGroupReady, _Trellis_runDurableEventConsumer, _Trellis_handleDurableEvent, _Trellis_handleDurableEventConsumer, _Trellis_parseEventMessage, _Trellis_escapeSubjectToken, _Trellis_currentIat, _Trellis_createProof, _Trellis_requestMessageWithRetry, _Trellis_requestJson, _Trellis_watchJson;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Trellis = exports.DurableOperationRecordSchema = void 0;
16
- exports.safeJson = safeJson;
17
- exports.base64urlEncode = base64urlEncode;
18
- exports.base64urlDecode = base64urlDecode;
19
- exports.toArrayBuffer = toArrayBuffer;
20
- exports.sha256 = sha256;
21
- exports.buildProofInput = buildProofInput;
22
- exports.isOperationDeferred = isOperationDeferred;
23
- exports.isResultLike = isResultLike;
24
- exports.buildRuntimeOperationSnapshot = buildRuntimeOperationSnapshot;
25
- exports.isTerminalRuntimeOperationSnapshot = isTerminalRuntimeOperationSnapshot;
26
- exports.createTrellisInternal = createTrellisInternal;
27
- const jetstream_1 = require("@nats-io/jetstream");
28
- const nats_core_1 = require("@nats-io/nats-core");
29
- const mod_js_1 = require("./contract_support/mod.js");
30
- const result_1 = require("@qlever-llc/result");
31
- const tracing_js_1 = require("./tracing.js");
32
- const typebox_1 = require("typebox");
33
- const value_1 = require("typebox/value");
34
- const ulid_1 = require("ulid");
35
- const codec_js_1 = require("./codec.js");
36
- const index_js_1 = require("./errors/index.js");
37
- const RemoteError_js_1 = require("./errors/RemoteError.js");
38
- const globals_js_1 = require("./globals.js");
39
- const kv_js_1 = require("./kv.js");
40
- const TrellisError_js_1 = require("./models/trellis/TrellisError.js");
41
- const operations_js_1 = require("./operations.js");
42
- const StateDelete_js_1 = require("./models/trellis/rpc/StateDelete.js");
43
- const StateGet_js_1 = require("./models/trellis/rpc/StateGet.js");
44
- const StateList_js_1 = require("./models/trellis/rpc/StateList.js");
45
- const StatePut_js_1 = require("./models/trellis/rpc/StatePut.js");
46
- const transfer_js_1 = require("./transfer.js");
47
- const tasks_js_1 = require("./tasks.js");
48
- const connection_js_1 = require("./connection.js");
49
- /**
50
- * Safely extract JSON from a NATS message.
51
- * The .json() method can throw if the message data is not valid JSON.
52
- */
53
- function safeJson(msg) {
54
- return result_1.Result.try(() => msg.json());
55
- }
56
- function transportCauseContext(cause) {
57
- if (cause instanceof Error) {
58
- return {
59
- causeName: cause.name,
60
- causeMessage: cause.message,
61
- };
62
- }
63
- return { cause: String(cause) };
64
- }
65
- function createTransportError(args) {
66
- return new index_js_1.TransportError({
67
- code: args.code,
68
- message: args.message,
69
- hint: args.hint,
70
- cause: args.cause,
71
- context: {
72
- ...(args.context ?? {}),
73
- ...(args.cause === undefined ? {} : transportCauseContext(args.cause)),
74
- },
75
- });
76
- }
77
- function requestFailedTransportError(args) {
78
- return createTransportError({
79
- code: args.code,
80
- message: args.message,
81
- hint: args.hint,
82
- cause: args.cause,
83
- context: {
84
- subject: args.subject,
85
- ...(args.method === undefined ? {} : { method: args.method }),
86
- ...(args.context ?? {}),
87
- },
88
- });
89
- }
90
- function classifyRequestTransportFailure(args) {
91
- const message = args.cause instanceof Error
92
- ? args.cause.message
93
- : String(args.cause);
94
- const isNoResponders = message.includes("no responders");
95
- const isNatsPermission = message.includes("Permissions Violation");
96
- return requestFailedTransportError({
97
- code: isNoResponders
98
- ? "trellis.request.unavailable"
99
- : isNatsPermission
100
- ? "trellis.request.denied"
101
- : "trellis.request.failed",
102
- message: isNoResponders
103
- ? "Trellis could not reach the requested capability."
104
- : isNatsPermission
105
- ? "Trellis denied this request."
106
- : "Trellis could not complete the request.",
107
- hint: isNoResponders
108
- ? "Check that the target service is installed and reachable, then try again."
109
- : isNatsPermission
110
- ? "Sign in with a profile that has the required capability, then try again."
111
- : "Retry the request. If it keeps failing, check Trellis runtime health.",
112
- cause: args.cause,
113
- method: args.method,
114
- subject: args.subject,
115
- context: {
116
- ...(args.callerCapabilities === undefined
117
- ? {}
118
- : { requiredCapabilities: args.callerCapabilities }),
119
- noResponders: isNoResponders,
120
- lowLevelMessage: message,
121
- },
122
- });
123
- }
124
- function encodeRuntimeSchema(schema, data) {
125
- return (0, codec_js_1.encodeSchema)(schema, data);
126
- }
127
- function parseRuntimeSchema(schema, data) {
128
- return (0, codec_js_1.parseUnknownSchema)(schema, data);
129
- }
130
- function base64urlEncode(data) {
131
- const b64 = btoa(String.fromCharCode(...data));
132
- return b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
133
- }
134
- function base64urlDecode(s) {
135
- const normalized = s.replace(/-/g, "+").replace(/_/g, "/");
136
- const padLen = (4 - (normalized.length % 4)) % 4;
137
- const padded = normalized + "=".repeat(padLen);
138
- const bin = atob(padded);
139
- const out = new Uint8Array(bin.length);
140
- for (let i = 0; i < bin.length; i++)
141
- out[i] = bin.charCodeAt(i);
142
- return out;
143
- }
144
- function toArrayBuffer(data) {
145
- const buf = data.buffer;
146
- if (buf instanceof ArrayBuffer) {
147
- return buf.slice(data.byteOffset, data.byteOffset + data.byteLength);
148
- }
149
- const copy = new Uint8Array(data.byteLength);
150
- copy.set(data);
151
- return copy.buffer;
152
- }
153
- async function sha256(data) {
154
- const digest = await crypto.subtle.digest("SHA-256", toArrayBuffer(data));
155
- return new Uint8Array(digest);
156
- }
157
- function buildProofInput(sessionKey, subject, payloadHash, iat, requestId) {
158
- const enc = new TextEncoder();
159
- const sessionKeyBytes = enc.encode(sessionKey);
160
- const subjectBytes = enc.encode(subject);
161
- const iatBytes = enc.encode(String(iat));
162
- const requestIdBytes = enc.encode(requestId);
163
- const buf = new Uint8Array(4 +
164
- sessionKeyBytes.length +
165
- 4 +
166
- subjectBytes.length +
167
- 4 +
168
- payloadHash.length +
169
- 4 +
170
- iatBytes.length +
171
- 4 +
172
- requestIdBytes.length);
173
- const view = new DataView(buf.buffer);
174
- let offset = 0;
175
- view.setUint32(offset, sessionKeyBytes.length);
176
- offset += 4;
177
- buf.set(sessionKeyBytes, offset);
178
- offset += sessionKeyBytes.length;
179
- view.setUint32(offset, subjectBytes.length);
180
- offset += 4;
181
- buf.set(subjectBytes, offset);
182
- offset += subjectBytes.length;
183
- view.setUint32(offset, payloadHash.length);
184
- offset += 4;
185
- buf.set(payloadHash, offset);
186
- offset += payloadHash.length;
187
- view.setUint32(offset, iatBytes.length);
188
- offset += 4;
189
- buf.set(iatBytes, offset);
190
- offset += iatBytes.length;
191
- view.setUint32(offset, requestIdBytes.length);
192
- offset += 4;
193
- buf.set(requestIdBytes, offset);
194
- return buf;
195
- }
196
- /**
197
- * Returns true when a handler result explicitly leaves operation completion to
198
- * an external control path.
199
- */
200
- function isOperationDeferred(value) {
201
- return !!value && typeof value === "object" &&
202
- "kind" in value && value.kind === "deferred";
203
- }
204
- function isResultLike(value) {
205
- return value instanceof result_1.Result;
206
- }
207
- const DurableOperationSignalSchema = typebox_1.Type.Object({
208
- operationId: typebox_1.Type.String(),
209
- sequence: typebox_1.Type.Number(),
210
- signal: typebox_1.Type.String(),
211
- input: typebox_1.Type.Optional(typebox_1.Type.Any()),
212
- acceptedAt: typebox_1.Type.String(),
213
- });
214
- const DurableOperationSnapshotSchema = typebox_1.Type.Object({
215
- id: typebox_1.Type.String(),
216
- service: typebox_1.Type.String(),
217
- operation: typebox_1.Type.String(),
218
- revision: typebox_1.Type.Number(),
219
- state: typebox_1.Type.Union([
220
- typebox_1.Type.Literal("pending"),
221
- typebox_1.Type.Literal("running"),
222
- typebox_1.Type.Literal("completed"),
223
- typebox_1.Type.Literal("failed"),
224
- typebox_1.Type.Literal("cancelled"),
225
- ]),
226
- createdAt: typebox_1.Type.String(),
227
- updatedAt: typebox_1.Type.String(),
228
- completedAt: typebox_1.Type.Optional(typebox_1.Type.String()),
229
- progress: typebox_1.Type.Optional(typebox_1.Type.Any()),
230
- transfer: typebox_1.Type.Optional(typebox_1.Type.Object({
231
- chunkIndex: typebox_1.Type.Number(),
232
- chunkBytes: typebox_1.Type.Number(),
233
- transferredBytes: typebox_1.Type.Number(),
234
- })),
235
- output: typebox_1.Type.Optional(typebox_1.Type.Any()),
236
- error: typebox_1.Type.Optional(typebox_1.Type.Object({
237
- type: typebox_1.Type.String(),
238
- message: typebox_1.Type.String(),
239
- })),
240
- });
241
- exports.DurableOperationRecordSchema = typebox_1.Type.Object({
242
- ownerSessionKey: typebox_1.Type.String(),
243
- sequence: typebox_1.Type.Number(),
244
- signalSequence: typebox_1.Type.Optional(typebox_1.Type.Number()),
245
- signals: typebox_1.Type.Optional(typebox_1.Type.Array(DurableOperationSignalSchema)),
246
- snapshot: DurableOperationSnapshotSchema,
247
- });
248
- function buildRuntimeOperationSnapshot(runtime, state, patch) {
249
- const updatedAt = new Date().toISOString();
250
- const completedAt = state === "completed" || state === "failed" || state === "cancelled"
251
- ? (patch?.completedAt ?? updatedAt)
252
- : patch?.completedAt;
253
- return {
254
- id: runtime.id,
255
- service: runtime.service,
256
- operation: runtime.operation,
257
- revision: patch?.revision ?? runtime.snapshot.revision + 1,
258
- state,
259
- createdAt: patch?.createdAt ?? runtime.snapshot.createdAt,
260
- updatedAt,
261
- ...(completedAt ? { completedAt } : {}),
262
- ...(patch?.progress !== undefined
263
- ? { progress: patch.progress }
264
- : runtime.snapshot.progress !== undefined
265
- ? { progress: runtime.snapshot.progress }
266
- : {}),
267
- ...(patch?.transfer !== undefined
268
- ? { transfer: patch.transfer }
269
- : runtime.snapshot.transfer !== undefined
270
- ? { transfer: runtime.snapshot.transfer }
271
- : {}),
272
- ...(patch?.output !== undefined
273
- ? { output: patch.output }
274
- : runtime.snapshot.output !== undefined
275
- ? { output: runtime.snapshot.output }
276
- : {}),
277
- ...(patch?.error
278
- ? { error: patch.error }
279
- : runtime.snapshot.error
280
- ? { error: runtime.snapshot.error }
281
- : {}),
282
- };
283
- }
284
- function isRuntimeOperationSnapshot(value) {
285
- return !!value && typeof value === "object" &&
286
- typeof value.id === "string" &&
287
- typeof value.service === "string" &&
288
- typeof value.operation === "string" &&
289
- typeof value.revision === "number" &&
290
- typeof value.state === "string" &&
291
- typeof value.createdAt === "string" &&
292
- typeof value.updatedAt === "string";
293
- }
294
- function isTerminalRuntimeOperationSnapshot(value) {
295
- return isRuntimeOperationSnapshot(value) && (value.state === "completed" || value.state === "failed" ||
296
- value.state === "cancelled");
297
- }
298
- let pendingInternalEventConsumers;
299
- /**
300
- * Creates a Trellis runtime with bootstrap-resolved bindings.
301
- *
302
- * @internal
303
- */
304
- function createTrellisInternal(name, nats, auth, opts) {
305
- const { eventConsumers, ...publicOpts } = opts ?? {};
306
- pendingInternalEventConsumers = eventConsumers;
307
- try {
308
- return new Trellis(name, nats, auth, publicOpts);
309
- }
310
- finally {
311
- pendingInternalEventConsumers = undefined;
312
- }
313
- }
314
- function surfaceGroupName(key) {
315
- return lowerCamelIdent(key.split(".")[0] ?? key);
316
- }
317
- function surfaceLeafName(key) {
318
- const parts = key.split(".");
319
- parts.shift();
320
- return lowerCamelIdent(parts.length === 0 ? key : parts.join("."));
321
- }
322
- function lowerCamelIdent(value) {
323
- const pascal = value
324
- .split(/[^A-Za-z0-9]+/)
325
- .filter((part) => part.length > 0)
326
- .map((part) => part[0].toUpperCase() + part.slice(1))
327
- .join("");
328
- return pascal.length === 0 ? "_" : pascal[0].toLowerCase() + pascal.slice(1);
329
- }
330
- function addSurfaceLeaf(surface, key, leaf) {
331
- const group = surfaceGroupName(key);
332
- surface[group] ??= {};
333
- surface[group][surfaceLeafName(key)] = leaf;
334
- }
335
- function natsSubjectMatches(pattern, subject) {
336
- const patternParts = pattern.split(".");
337
- const subjectParts = subject.split(".");
338
- for (let index = 0; index < patternParts.length; index += 1) {
339
- const part = patternParts[index];
340
- if (part === ">")
341
- return true;
342
- const subjectPart = subjectParts[index];
343
- if (subjectPart === undefined)
344
- return false;
345
- if (part !== "*" && part !== subjectPart)
346
- return false;
347
- }
348
- return patternParts.length === subjectParts.length;
349
- }
350
- const DEFAULT_STATE_LIST_LIMIT = 100;
351
- const STATE_RUNTIME_RPC = {
352
- get: {
353
- subject: "rpc.v1.State.Get",
354
- input: StateGet_js_1.StateGetSchema,
355
- output: StateGet_js_1.StateGetResponseSchema,
356
- callerCapabilities: [],
357
- errors: ["AuthError", "ValidationError", "UnexpectedError"],
358
- declaredErrorTypes: [
359
- "AuthError",
360
- "ValidationError",
361
- "UnexpectedError",
362
- ],
363
- },
364
- put: {
365
- subject: "rpc.v1.State.Put",
366
- input: StatePut_js_1.StatePutSchema,
367
- output: StatePut_js_1.StatePutResponseSchema,
368
- callerCapabilities: [],
369
- errors: ["AuthError", "ValidationError", "UnexpectedError"],
370
- declaredErrorTypes: [
371
- "AuthError",
372
- "ValidationError",
373
- "UnexpectedError",
374
- ],
375
- },
376
- delete: {
377
- subject: "rpc.v1.State.Delete",
378
- input: StateDelete_js_1.StateDeleteSchema,
379
- output: StateDelete_js_1.StateDeleteResponseSchema,
380
- callerCapabilities: [],
381
- errors: ["AuthError", "ValidationError", "UnexpectedError"],
382
- declaredErrorTypes: [
383
- "AuthError",
384
- "ValidationError",
385
- "UnexpectedError",
386
- ],
387
- },
388
- list: {
389
- subject: "rpc.v1.State.List",
390
- input: StateList_js_1.StateListSchema,
391
- output: StateList_js_1.StateListResponseSchema,
392
- callerCapabilities: [],
393
- errors: ["AuthError", "ValidationError", "UnexpectedError"],
394
- declaredErrorTypes: [
395
- "AuthError",
396
- "ValidationError",
397
- "UnexpectedError",
398
- ],
399
- },
400
- };
401
- function joinStatePath(prefix, key) {
402
- return [prefix, key]
403
- .flatMap((value) => value?.split("/") ?? [])
404
- .filter((segment) => segment.length > 0)
405
- .join("/");
406
- }
407
- function validateStateValue(schema, value) {
408
- return parseRuntimeSchema(schema, value);
409
- }
410
- function validateStateGetResult(descriptor, result) {
411
- if ("migrationRequired" in result) {
412
- const schema = descriptor.acceptedVersions?.[result.stateVersion];
413
- if (!schema) {
414
- return result_1.Result.err(new index_js_1.ValidationError({
415
- errors: [{
416
- path: "/stateVersion",
417
- message: `state version '${result.stateVersion}' is not accepted by the runtime store`,
418
- }],
419
- }));
420
- }
421
- const parsed = validateStateValue(schema, result.entry.value);
422
- if (parsed.isErr())
423
- return result_1.Result.err(parsed.error);
424
- return result_1.Result.ok({
425
- ...result,
426
- entry: {
427
- ...result.entry,
428
- value: parsed.unwrapOrElse(() => {
429
- throw new Error("state value validation unexpectedly failed");
430
- }),
431
- },
432
- });
433
- }
434
- if (!result.found) {
435
- return result_1.Result.ok(result);
436
- }
437
- const parsed = validateStateValue(descriptor.schema, result.entry.value);
438
- if (parsed.isErr()) {
439
- return result_1.Result.err(parsed.error);
440
- }
441
- return result_1.Result.ok({
442
- ...result,
443
- entry: {
444
- ...result.entry,
445
- value: parsed.unwrapOrElse(() => {
446
- throw new Error("state value validation unexpectedly failed");
447
- }),
448
- },
449
- });
450
- }
451
- function validateStatePutResult(descriptor, result) {
452
- if (result.applied) {
453
- const parsed = validateStateValue(descriptor.schema, result.entry.value);
454
- if (parsed.isErr())
455
- return result_1.Result.err(parsed.error);
456
- return result_1.Result.ok({
457
- ...result,
458
- entry: {
459
- ...result.entry,
460
- value: parsed.unwrapOrElse(() => {
461
- throw new Error("state value validation unexpectedly failed");
462
- }),
463
- },
464
- });
465
- }
466
- if (!result.entry) {
467
- return result_1.Result.ok(result);
468
- }
469
- if ("migrationRequired" in result.entry) {
470
- const schema = descriptor.acceptedVersions?.[result.entry.stateVersion];
471
- if (!schema) {
472
- return result_1.Result.err(new index_js_1.ValidationError({
473
- errors: [{
474
- path: "/stateVersion",
475
- message: `state version '${result.entry.stateVersion}' is not accepted by the runtime store`,
476
- }],
477
- }));
478
- }
479
- const parsed = validateStateValue(schema, result.entry.entry.value);
480
- if (parsed.isErr())
481
- return result_1.Result.err(parsed.error);
482
- return result_1.Result.ok({
483
- ...result,
484
- entry: {
485
- ...result.entry,
486
- entry: {
487
- ...result.entry.entry,
488
- value: parsed.unwrapOrElse(() => {
489
- throw new Error("state value validation unexpectedly failed");
490
- }),
491
- },
492
- },
493
- });
494
- }
495
- const parsed = validateStateValue(descriptor.schema, result.entry.value);
496
- if (parsed.isErr()) {
497
- return result_1.Result.err(parsed.error);
498
- }
499
- return result_1.Result.ok({
500
- ...result,
501
- entry: {
502
- ...result.entry,
503
- value: parsed.unwrapOrElse(() => {
504
- throw new Error("state value validation unexpectedly failed");
505
- }),
506
- },
507
- });
508
- }
509
- function validateStateListResult(descriptor, result) {
510
- const entries = [];
511
- for (const entry of result.entries) {
512
- if ("migrationRequired" in entry) {
513
- const schema = descriptor.acceptedVersions?.[entry.stateVersion];
514
- if (!schema) {
515
- return result_1.Result.err(new index_js_1.ValidationError({
516
- errors: [{
517
- path: "/stateVersion",
518
- message: `state version '${entry.stateVersion}' is not accepted by the runtime store`,
519
- }],
520
- }));
521
- }
522
- const parsed = validateStateValue(schema, entry.entry.value);
523
- if (parsed.isErr())
524
- return result_1.Result.err(parsed.error);
525
- entries.push({
526
- ...entry,
527
- entry: {
528
- ...entry.entry,
529
- value: parsed.unwrapOrElse(() => {
530
- throw new Error("state value validation unexpectedly failed");
531
- }),
532
- },
533
- });
534
- continue;
535
- }
536
- const parsed = validateStateValue(descriptor.schema, entry.value);
537
- if (parsed.isErr()) {
538
- return result_1.Result.err(parsed.error);
539
- }
540
- entries.push({
541
- ...entry,
542
- value: parsed.unwrapOrElse(() => {
543
- throw new Error("state value validation unexpectedly failed");
544
- }),
545
- });
546
- }
547
- return result_1.Result.ok({ ...result, entries });
548
- }
549
- const NATS_SUBJECT_TOKEN_FORBIDDEN = /[\u0000\s.*>~]/gu;
550
- const DEFAULT_NO_RESPONDER_MAX_RETRIES = 2;
551
- const DEFAULT_NO_RESPONDER_RETRY_MS = 200;
552
- const DEFAULT_AUTH_VALIDATE_SESSION_RETRY_ATTEMPTS = 3;
553
- const DEFAULT_AUTH_VALIDATE_SESSION_RETRY_MS = 25;
554
- function activeTraceId(span) {
555
- const traceId = span.spanContext().traceId;
556
- return traceId === "00000000000000000000000000000000" ? undefined : traceId;
557
- }
558
- function traceIdFromTraceparent(traceparent) {
559
- const [version, traceId, parentId, flags, extra] = traceparent?.split("-") ??
560
- [];
561
- if (extra !== undefined ||
562
- !/^[0-9a-f]{2}$/u.test(version ?? "") ||
563
- version === "ff" ||
564
- !/^[0-9a-f]{32}$/u.test(traceId ?? "") ||
565
- traceId === "00000000000000000000000000000000" ||
566
- !/^[0-9a-f]{16}$/u.test(parentId ?? "") ||
567
- parentId === "0000000000000000" ||
568
- !/^[0-9a-f]{2}$/u.test(flags ?? "")) {
569
- return undefined;
570
- }
571
- return traceId;
572
- }
573
- const EMPTY_TRELLIS_API = {
574
- rpc: {},
575
- operations: {},
576
- events: {},
577
- feeds: {},
578
- subjects: {},
579
- };
580
- function isBrowserAuthRequiredError(error) {
581
- const isAuthRequiredReason = (reason) => reason === "session_not_found";
582
- if (error instanceof index_js_1.AuthError) {
583
- return isAuthRequiredReason(error.reason);
584
- }
585
- if (error instanceof RemoteError_js_1.RemoteError &&
586
- error.remoteError.type === "AuthError") {
587
- const reason = Reflect.get(error.remoteError, "reason");
588
- return isAuthRequiredReason(reason);
589
- }
590
- return false;
591
- }
592
- function isTransientAuthValidateSessionError(error) {
593
- if (error instanceof index_js_1.AuthError) {
594
- return error.reason === "session_not_found";
595
- }
596
- if (error instanceof RemoteError_js_1.RemoteError &&
597
- error.remoteError.type === "AuthError") {
598
- const reason = Reflect.get(error.remoteError, "reason");
599
- return reason === "session_not_found";
600
- }
601
- return false;
602
- }
603
- function isDeclaredRpcError(errorNames, type) {
604
- return !!errorNames?.includes(type);
605
- }
606
- function isRuntimeRpcErrorDesc(value) {
607
- return !!value && typeof value === "object" &&
608
- typeof Reflect.get(value, "type") === "string" &&
609
- typeof Reflect.get(value, "fromSerializable") === "function";
610
- }
611
- const payloadSizeEncoder = new TextEncoder();
612
- function payloadByteLength(payload) {
613
- return typeof payload === "string"
614
- ? payloadSizeEncoder.encode(payload).byteLength
615
- : payload.byteLength;
616
- }
617
- function causeMessage(cause) {
618
- return cause instanceof Error ? cause.message : String(cause);
619
- }
620
- function causeLogData(cause) {
621
- return cause instanceof Error
622
- ? { message: cause.message, stack: cause.stack, name: cause.name }
623
- : cause;
624
- }
625
- function reconstructDeclaredRpcError(errorNames, runtimeErrors, data, json) {
626
- if (!isDeclaredRpcError(errorNames, data.type)) {
627
- return null;
628
- }
629
- const runtimeError = (0, index_js_1.getBuiltinRpcError)(data.type) ??
630
- runtimeErrors?.find((candidate) => candidate.type === data.type);
631
- if (!runtimeError) {
632
- return null;
633
- }
634
- const parsed = runtimeError.schema
635
- ? parseRuntimeSchema(runtimeError.schema, json).take()
636
- : data;
637
- if ((0, result_1.isErr)(parsed)) {
638
- return parsed.error instanceof index_js_1.ValidationError ||
639
- parsed.error instanceof index_js_1.UnexpectedError
640
- ? parsed.error
641
- : new index_js_1.UnexpectedError({ cause: parsed.error });
642
- }
643
- try {
644
- const reconstructed = runtimeError.fromSerializable(parsed);
645
- if (reconstructed instanceof result_1.BaseError) {
646
- return reconstructed;
647
- }
648
- return new index_js_1.UnexpectedError({
649
- cause: new Error(`RPC error '${data.type}' reconstructed to a non-Trellis error instance`),
650
- });
651
- }
652
- catch (cause) {
653
- return new index_js_1.UnexpectedError({ cause });
654
- }
655
- }
656
- async function sleep(ms) {
657
- await new Promise((resolve) => setTimeout(resolve, ms));
658
- }
659
- class Trellis {
660
- constructor(name, // Must be unique for a service
661
- nats, auth, opts) {
662
- _Trellis_instances.add(this);
663
- Object.defineProperty(this, "name", {
664
- enumerable: true,
665
- configurable: true,
666
- writable: true,
667
- value: void 0
668
- });
669
- Object.defineProperty(this, "timeout", {
670
- enumerable: true,
671
- configurable: true,
672
- writable: true,
673
- value: void 0
674
- });
675
- Object.defineProperty(this, "stream", {
676
- enumerable: true,
677
- configurable: true,
678
- writable: true,
679
- value: void 0
680
- });
681
- Object.defineProperty(this, "state", {
682
- enumerable: true,
683
- configurable: true,
684
- writable: true,
685
- value: void 0
686
- });
687
- Object.defineProperty(this, "rpc", {
688
- enumerable: true,
689
- configurable: true,
690
- writable: true,
691
- value: void 0
692
- });
693
- Object.defineProperty(this, "event", {
694
- enumerable: true,
695
- configurable: true,
696
- writable: true,
697
- value: void 0
698
- });
699
- Object.defineProperty(this, "feed", {
700
- enumerable: true,
701
- configurable: true,
702
- writable: true,
703
- value: void 0
704
- });
705
- Object.defineProperty(this, "operation", {
706
- enumerable: true,
707
- configurable: true,
708
- writable: true,
709
- value: void 0
710
- });
711
- Object.defineProperty(this, "handle", {
712
- enumerable: true,
713
- configurable: true,
714
- writable: true,
715
- value: void 0
716
- });
717
- /** Framework-neutral lifecycle handle for this Trellis runtime connection. */
718
- Object.defineProperty(this, "connection", {
719
- enumerable: true,
720
- configurable: true,
721
- writable: true,
722
- value: void 0
723
- });
724
- Object.defineProperty(this, "nats", {
725
- enumerable: true,
726
- configurable: true,
727
- writable: true,
728
- value: void 0
729
- });
730
- Object.defineProperty(this, "js", {
731
- enumerable: true,
732
- configurable: true,
733
- writable: true,
734
- value: void 0
735
- });
736
- Object.defineProperty(this, "auth", {
737
- enumerable: true,
738
- configurable: true,
739
- writable: true,
740
- value: void 0
741
- });
742
- Object.defineProperty(this, "api", {
743
- enumerable: true,
744
- configurable: true,
745
- writable: true,
746
- value: void 0
747
- });
748
- _Trellis_log.set(this, void 0);
749
- _Trellis_tasks.set(this, void 0);
750
- _Trellis_hasExplicitApi.set(this, void 0);
751
- _Trellis_noResponderMaxRetries.set(this, void 0);
752
- _Trellis_noResponderRetryMs.set(this, void 0);
753
- _Trellis_onSessionNotFound.set(this, void 0);
754
- _Trellis_operationStore.set(this, void 0);
755
- _Trellis_eventConsumers.set(this, void 0);
756
- _Trellis_durableEventLoops.set(this, new Map());
757
- const api = opts?.api;
758
- this.name = name;
759
- this.nats = nats;
760
- this.js = (0, jetstream_1.jetstream)(this.nats);
761
- this.auth = auth;
762
- this.api = (api ?? EMPTY_TRELLIS_API);
763
- __classPrivateFieldSet(this, _Trellis_log, (opts?.log ?? globals_js_1.logger).child({ lib: "trellis" }), "f");
764
- this.timeout = opts?.timeout ?? 3000;
765
- this.stream = opts?.stream ?? "trellis";
766
- __classPrivateFieldSet(this, _Trellis_hasExplicitApi, api !== undefined, "f");
767
- __classPrivateFieldSet(this, _Trellis_noResponderMaxRetries, opts?.noResponderRetry?.maxAttempts ??
768
- DEFAULT_NO_RESPONDER_MAX_RETRIES, "f");
769
- __classPrivateFieldSet(this, _Trellis_noResponderRetryMs, opts?.noResponderRetry?.baseDelayMs ??
770
- DEFAULT_NO_RESPONDER_RETRY_MS, "f");
771
- __classPrivateFieldSet(this, _Trellis_onSessionNotFound, opts?.onSessionNotFound, "f");
772
- __classPrivateFieldSet(this, _Trellis_eventConsumers, pendingInternalEventConsumers ?? {}, "f");
773
- this.connection = opts?.connection ??
774
- new connection_js_1.TrellisConnection({ kind: "client" });
775
- __classPrivateFieldSet(this, _Trellis_tasks, new tasks_js_1.TrellisTasks({ log: __classPrivateFieldGet(this, _Trellis_log, "f") }), "f");
776
- this.state = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createStateFacade).call(this, opts?.state);
777
- this.rpc = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createRpcFacade).call(this);
778
- this.handle = { rpc: __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createRpcHandleFacade).call(this) };
779
- this.event = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createEventFacade).call(this);
780
- this.feed = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createFeedFacade).call(this);
781
- this.operation = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createOperationFacade).call(this);
782
- }
783
- /**
784
- * Returns the underlying NATS connection.
785
- */
786
- get natsConnection() {
787
- return this.nats;
788
- }
789
- async operationStoreHandle() {
790
- if (!__classPrivateFieldGet(this, _Trellis_operationStore, "f")) {
791
- const bucket = `trellis_operations_${this.auth.sessionKey.slice(0, 16)}`;
792
- __classPrivateFieldSet(this, _Trellis_operationStore, (async () => {
793
- const result = await kv_js_1.TypedKV.open(this.nats, bucket, exports.DurableOperationRecordSchema, {
794
- history: 5,
795
- ttl: 0,
796
- });
797
- const value = result.take();
798
- if ((0, result_1.isErr)(value)) {
799
- throw value.error;
800
- }
801
- return value;
802
- })(), "f");
803
- }
804
- return __classPrivateFieldGet(this, _Trellis_operationStore, "f");
805
- }
806
- async loadOperationRecord(operationId) {
807
- const store = await this.operationStoreHandle();
808
- const entry = await store.get(operationId);
809
- const value = entry.take();
810
- if ((0, result_1.isErr)(value)) {
811
- return null;
812
- }
813
- return value.value;
814
- }
815
- async saveOperationRecord(runtime) {
816
- const store = await this.operationStoreHandle();
817
- const record = {
818
- ownerSessionKey: runtime.ownerSessionKey,
819
- sequence: runtime.sequence,
820
- signalSequence: runtime.signalSequence,
821
- signals: runtime.signals,
822
- snapshot: runtime.snapshot,
823
- };
824
- await store.put(runtime.id, record);
825
- }
826
- request(method, input, opts) {
827
- const rpcApi = this.api["rpc"];
828
- const ctx = rpcApi[method];
829
- if (!ctx) {
830
- return result_1.AsyncResult.from(Promise.resolve((0, result_1.err)(new index_js_1.UnexpectedError({
831
- cause: __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_unknownApiError).call(this, "RPC method", method.toString()),
832
- context: { method: method.toString() },
833
- }))));
834
- }
835
- return __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpcUnknown).call(this, method, input, ctx, opts);
836
- }
837
- feedHandle(feed) {
838
- const descriptor = this.api.feeds?.[feed];
839
- if (!descriptor) {
840
- throw __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_unknownApiError).call(this, "feed", feed.toString());
841
- }
842
- return {
843
- input: (input) => ({
844
- subscribe: (opts) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_subscribeFeed).call(this, feed.toString(), descriptor, input, opts),
845
- }),
846
- handle: (handler) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleFeed).call(this, feed.toString(), descriptor, handler),
847
- };
848
- }
849
- operationHandle(operation) {
850
- const descriptor = this.api["operations"]?.[operation];
851
- if (!descriptor) {
852
- throw __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_unknownApiError).call(this, "operation", operation.toString());
853
- }
854
- const transport = {
855
- requestJson: (subject, body) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestJson).call(this, subject, body),
856
- watchJson: (subject, body) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_watchJson).call(this, subject, body),
857
- putTransfer: (grant, body) => result_1.AsyncResult.from((async () => {
858
- const handle = (0, transfer_js_1.createTransferHandle)(this.nats, this.auth, this.timeout, grant);
859
- if (!(handle instanceof Object) || !("send" in handle)) {
860
- return (0, result_1.err)(new index_js_1.TransferError({
861
- operation: "transfer",
862
- context: { reason: "invalid_operation_transfer_grant" },
863
- }));
864
- }
865
- return await handle.send(body);
866
- })()),
867
- };
868
- return new operations_js_1.OperationInvoker(transport, descriptor);
869
- }
870
- transfer(grant) {
871
- return (0, transfer_js_1.createTransferHandle)(this.nats, this.auth, this.timeout, grant);
872
- }
873
- /*
874
- * Mount a handler to process requests made to a specific Trellis API
875
- */
876
- async mount(method, fn) {
877
- const methodName = method;
878
- const ctx = this.api["rpc"][methodName];
879
- if (!ctx) {
880
- throw __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_unknownApiError).call(this, "RPC method", method.toString());
881
- }
882
- const task = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleRPC).call(this, methodName, fn);
883
- __classPrivateFieldGet(this, _Trellis_tasks, "f").add(methodName, task);
884
- }
885
- respondWithError(msg, error) {
886
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, error);
887
- }
888
- /**
889
- * Builds a stable event subject, encoded payload, and publish headers.
890
- *
891
- * The prepared event intentionally carries no contract id or digest so callers
892
- * can persist it in a service-owned outbox without coupling storage to the
893
- * publisher's current deployment metadata.
894
- */
895
- prepare(event, data) {
896
- try {
897
- const eventName = event;
898
- const ctx = this.api["events"][eventName];
899
- if (!ctx) {
900
- return (0, result_1.err)(new index_js_1.UnexpectedError({
901
- cause: __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_unknownApiError).call(this, "event", event.toString()),
902
- context: { event: event.toString() },
903
- }));
904
- }
905
- const subject = this.template(ctx.subject, data).take();
906
- if ((0, result_1.isErr)(subject)) {
907
- globals_js_1.logger.error({ err: subject.error }, "Failed to template event.");
908
- return subject;
909
- }
910
- const header = {
911
- id: (0, ulid_1.ulid)(),
912
- time: new Date().toISOString(),
913
- };
914
- const payload = Object.freeze({
915
- ...data,
916
- header: Object.freeze(header),
917
- });
918
- const msg = (0, codec_js_1.encodeSchema)(ctx.event, payload).take();
919
- if ((0, result_1.isErr)(msg)) {
920
- globals_js_1.logger.error({ err: msg.error }, "Failed to encode event.");
921
- return (0, result_1.err)(new index_js_1.UnexpectedError({ cause: msg.error }));
922
- }
923
- const headers = (0, nats_core_1.headers)();
924
- headers.set("Nats-Msg-Id", header.id);
925
- (0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers));
926
- const headerRecord = {};
927
- for (const [key, value] of headers) {
928
- headerRecord[key] = value.join(",");
929
- }
930
- return (0, result_1.ok)(Object.freeze({
931
- event: event.toString(),
932
- subject,
933
- payload,
934
- encodedPayload: msg,
935
- headers: Object.freeze(headerRecord),
936
- }));
937
- }
938
- catch (cause) {
939
- return (0, result_1.err)(new index_js_1.UnexpectedError({ cause, context: { event: event.toString() } }));
940
- }
941
- }
942
- /**
943
- * Publishes a previously prepared event without regenerating its id, time,
944
- * subject, payload, or headers.
945
- */
946
- publishPrepared(event) {
947
- return result_1.AsyncResult.from((async () => {
948
- try {
949
- const headers = (0, nats_core_1.headers)();
950
- for (const [key, value] of Object.entries(event.headers)) {
951
- headers.set(key, value);
952
- }
953
- globals_js_1.logger.trace({ subject: event.subject }, `Publishing ${event.event} event.`);
954
- await this.js.publish(event.subject, event.encodedPayload, { headers });
955
- return (0, result_1.ok)(undefined);
956
- }
957
- catch (cause) {
958
- return (0, result_1.err)(new index_js_1.UnexpectedError({ cause, context: { event: event.event } }));
959
- }
960
- })());
961
- }
962
- publish(event, data) {
963
- return result_1.AsyncResult.from((async () => {
964
- const prepared = this.prepare(event, data).take();
965
- if ((0, result_1.isErr)(prepared))
966
- return prepared;
967
- return await this.publishPrepared(prepared);
968
- })());
969
- }
970
- listenEvent(event, subjectData, fn, opts) {
971
- return result_1.AsyncResult.from((async () => {
972
- try {
973
- const eventName = event;
974
- const ctx = this.api["events"][eventName];
975
- if (!ctx) {
976
- return (0, result_1.err)(new index_js_1.UnexpectedError({
977
- cause: __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_unknownApiError).call(this, "event", event.toString()),
978
- context: { event: event.toString() },
979
- }));
980
- }
981
- const subject = this.template(ctx.subject, subjectData, true).take();
982
- if ((0, result_1.isErr)(subject))
983
- return subject;
984
- if (opts?.mode === "ephemeral") {
985
- return __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_startEphemeralEvent).call(this, eventName, ctx, subject, fn, opts.signal);
986
- }
987
- if (opts?.durableName) {
988
- return (0, result_1.err)(new index_js_1.UnexpectedError({
989
- cause: new Error("Durable event listener names are provisioned by Trellis event consumer bindings; use opts.group instead."),
990
- context: {
991
- event: event.toString(),
992
- durableName: opts.durableName,
993
- },
994
- }));
995
- }
996
- const groupResult = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_resolveEventConsumerGroup).call(this, eventName, opts);
997
- const group = groupResult.take();
998
- if ((0, result_1.isErr)(group))
999
- return group;
1000
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_registerDurableEventHandler).call(this, {
1001
- group,
1002
- event: eventName,
1003
- ctx,
1004
- subject,
1005
- fn,
1006
- signal: opts?.signal,
1007
- });
1008
- return (0, result_1.ok)(undefined);
1009
- }
1010
- catch (cause) {
1011
- return (0, result_1.err)(new index_js_1.UnexpectedError({ cause, context: { event: event.toString() } }));
1012
- }
1013
- })());
1014
- }
1015
- wait() {
1016
- return __classPrivateFieldGet(this, _Trellis_tasks, "f").wait();
1017
- }
1018
- // FIXME: If are validating things twice in most cases...
1019
- template(subject, data, allowWildcards = false) {
1020
- // Find all template placeholders and check if values exist
1021
- const placeholders = subject.match(/\{([^}]+)\}/g) || [];
1022
- for (const placeholder of placeholders) {
1023
- const key = placeholder.slice(1, -1); // Remove { and }
1024
- const value = value_1.Pointer.Get(data, key);
1025
- if ((value === undefined || value === null) && !allowWildcards) {
1026
- return (0, result_1.err)(new index_js_1.ValidationError({
1027
- errors: [
1028
- {
1029
- path: key,
1030
- message: "Missing required data for subject template",
1031
- },
1032
- ],
1033
- context: { key },
1034
- }));
1035
- }
1036
- }
1037
- const result = subject.replace(/\{([^}]+)\}/g, (_, key) => {
1038
- const value = value_1.Pointer.Get(data, key);
1039
- if (allowWildcards && value === "*") {
1040
- return "*";
1041
- }
1042
- if (allowWildcards && (value === undefined || value === null)) {
1043
- return "*";
1044
- }
1045
- return __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_escapeSubjectToken).call(this, `${value}`);
1046
- });
1047
- return (0, result_1.ok)(result);
1048
- }
1049
- requestAuthValidate(input) {
1050
- const request = this.request.bind(this);
1051
- return request("Auth.Requests.Validate", input);
1052
- }
1053
- }
1054
- exports.Trellis = Trellis;
1055
- _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplicitApi = new WeakMap(), _Trellis_noResponderMaxRetries = new WeakMap(), _Trellis_noResponderRetryMs = new WeakMap(), _Trellis_onSessionNotFound = new WeakMap(), _Trellis_operationStore = new WeakMap(), _Trellis_eventConsumers = new WeakMap(), _Trellis_durableEventLoops = new WeakMap(), _Trellis_instances = new WeakSet(), _Trellis_createStateFacade = function _Trellis_createStateFacade(state) {
1056
- const stores = (state ?? {});
1057
- const facade = Object.fromEntries(Object.entries(stores).map(([store, descriptor]) => {
1058
- if (descriptor.kind === "value") {
1059
- const client = {
1060
- get: () => result_1.AsyncResult.from((async () => {
1061
- const result = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, "State.Get", { store }, STATE_RUNTIME_RPC.get);
1062
- if (result.isErr())
1063
- return result;
1064
- return validateStateGetResult(descriptor, result.unwrapOrElse(() => {
1065
- throw new Error("state get unexpectedly failed");
1066
- }));
1067
- })()),
1068
- put: (value, opts) => result_1.AsyncResult.from((async () => {
1069
- const encoded = encodeRuntimeSchema(descriptor.schema, value)
1070
- .take();
1071
- if ((0, result_1.isErr)(encoded)) {
1072
- return result_1.Result.err(encoded.error);
1073
- }
1074
- const result = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, "State.Put", { store, value, ...opts }, STATE_RUNTIME_RPC.put);
1075
- if (result.isErr())
1076
- return result;
1077
- return validateStatePutResult(descriptor, result.unwrapOrElse(() => {
1078
- throw new Error("state put unexpectedly failed");
1079
- }));
1080
- })()),
1081
- delete: (opts) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, "State.Delete", { store, ...opts }, STATE_RUNTIME_RPC.delete),
1082
- };
1083
- return [store, client];
1084
- }
1085
- const mapClient = (prefix) => ({
1086
- get: (key) => result_1.AsyncResult.from((async () => {
1087
- const result = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, "State.Get", { store, key: joinStatePath(prefix, key) }, STATE_RUNTIME_RPC.get);
1088
- if (result.isErr())
1089
- return result;
1090
- return validateStateGetResult(descriptor, result.unwrapOrElse(() => {
1091
- throw new Error("state get unexpectedly failed");
1092
- }));
1093
- })()),
1094
- put: (key, value, opts) => result_1.AsyncResult.from((async () => {
1095
- const encoded = encodeRuntimeSchema(descriptor.schema, value)
1096
- .take();
1097
- if ((0, result_1.isErr)(encoded)) {
1098
- return result_1.Result.err(encoded.error);
1099
- }
1100
- const result = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, "State.Put", { store, key: joinStatePath(prefix, key), value, ...opts }, STATE_RUNTIME_RPC.put);
1101
- if (result.isErr())
1102
- return result;
1103
- return validateStatePutResult(descriptor, result.unwrapOrElse(() => {
1104
- throw new Error("state put unexpectedly failed");
1105
- }));
1106
- })()),
1107
- delete: (key, opts) => __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, "State.Delete", { store, key: joinStatePath(prefix, key), ...opts }, STATE_RUNTIME_RPC.delete),
1108
- list: (opts) => result_1.AsyncResult.from((async () => {
1109
- const result = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, "State.List", {
1110
- store,
1111
- ...(prefix ? { prefix } : {}),
1112
- offset: opts?.offset ?? 0,
1113
- limit: opts?.limit ?? DEFAULT_STATE_LIST_LIMIT,
1114
- }, STATE_RUNTIME_RPC.list);
1115
- if (result.isErr())
1116
- return result;
1117
- return validateStateListResult(descriptor, result.unwrapOrElse(() => {
1118
- throw new Error("state list unexpectedly failed");
1119
- }));
1120
- })()),
1121
- prefix: (path) => mapClient(joinStatePath(prefix, path)),
1122
- });
1123
- return [store, mapClient()];
1124
- }));
1125
- return facade;
1126
- }, _Trellis_createRpcFacade = function _Trellis_createRpcFacade() {
1127
- const surface = {};
1128
- for (const method of Object.keys(this.api.rpc ?? {})) {
1129
- const leaf = (input, opts) => this.request(method, input, opts);
1130
- addSurfaceLeaf(surface, method, leaf);
1131
- }
1132
- return surface;
1133
- }, _Trellis_createRpcHandleFacade = function _Trellis_createRpcHandleFacade() {
1134
- const surface = {};
1135
- for (const method of Object.keys(this.api.rpc ?? {})) {
1136
- addSurfaceLeaf(surface, method, (handler) => this.mount(method, handler));
1137
- }
1138
- return surface;
1139
- }, _Trellis_createEventFacade = function _Trellis_createEventFacade() {
1140
- const surface = {};
1141
- for (const event of Object.keys(this.api.events ?? {})) {
1142
- addSurfaceLeaf(surface, event, {
1143
- prepare: (payload) => this.prepare(event, payload),
1144
- publish: (payload) => this.publish(event, payload),
1145
- listen: (handler, subjectData = {}, opts) => this.listenEvent(event, subjectData, handler, opts),
1146
- });
1147
- }
1148
- return surface;
1149
- }, _Trellis_createEventPublishFacade = function _Trellis_createEventPublishFacade() {
1150
- const surface = {};
1151
- for (const event of Object.keys(this.api.events ?? {})) {
1152
- addSurfaceLeaf(surface, event, {
1153
- prepare: (payload) => this.prepare(event, payload),
1154
- publish: (payload) => this.publish(event, payload),
1155
- });
1156
- }
1157
- return surface;
1158
- }, _Trellis_createFeedFacade = function _Trellis_createFeedFacade() {
1159
- const surface = {};
1160
- for (const feed of Object.keys(this.api.feeds ?? {})) {
1161
- const leaf = (input, opts) => this.feedHandle(feed).input(input).subscribe(opts);
1162
- addSurfaceLeaf(surface, feed, leaf);
1163
- }
1164
- return surface;
1165
- }, _Trellis_createHandlerTrellis = function _Trellis_createHandlerTrellis() {
1166
- return {
1167
- rpc: this.rpc,
1168
- event: __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createEventPublishFacade).call(this),
1169
- feed: this.feed,
1170
- operation: this.operation,
1171
- request: this.request.bind(this),
1172
- prepare: (event, data) => this.prepare(event, data),
1173
- publish: (event, data) => this.publish(event, data),
1174
- publishPrepared: (event) => this.publishPrepared(event),
1175
- };
1176
- }, _Trellis_createOperationFacade = function _Trellis_createOperationFacade() {
1177
- const surface = {};
1178
- for (const operation of Object.keys(this.api.operations ?? {})) {
1179
- addSurfaceLeaf(surface, operation, this.operationHandle(operation));
1180
- }
1181
- return surface;
1182
- }, _Trellis_unknownApiError = function _Trellis_unknownApiError(kind, name) {
1183
- const base = `Unknown ${kind} '${name}'.`;
1184
- if (__classPrivateFieldGet(this, _Trellis_hasExplicitApi, "f")) {
1185
- return new Error(`${base} Did you forget to include its API module?`);
1186
- }
1187
- return new Error(`${base} No API surface was provided. Pass opts.api, use createClient(contract, ...), or await createCoreClient(...) instead.`);
1188
- }, _Trellis_requestBuiltRpcUnknown = function _Trellis_requestBuiltRpcUnknown(method, input, ctx, opts) {
1189
- return __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestBuiltRpc).call(this, method, input, ctx, opts);
1190
- }, _Trellis_requestBuiltRpc = function _Trellis_requestBuiltRpc(method, input, ctx, opts) {
1191
- return result_1.AsyncResult.from((async () => {
1192
- __classPrivateFieldGet(this, _Trellis_log, "f").trace({ method: String(method) }, `Calling ${method.toString()}.`);
1193
- const msg = encodeRuntimeSchema(ctx.input, input).take();
1194
- if ((0, result_1.isErr)(msg)) {
1195
- return msg;
1196
- }
1197
- const subject = this.template(ctx.subject, input).take();
1198
- if ((0, result_1.isErr)(subject)) {
1199
- return subject;
1200
- }
1201
- const span = (0, tracing_js_1.startClientSpan)(method, subject);
1202
- const attempt = async () => {
1203
- const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, msg);
1204
- const headers = (0, nats_core_1.headers)();
1205
- headers.set("session-key", this.auth.sessionKey);
1206
- headers.set("proof", authHeaders.proof);
1207
- headers.set("iat", String(authHeaders.iat));
1208
- headers.set("request-id", authHeaders.requestId);
1209
- (0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers), span);
1210
- const msgResult = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestMessageWithRetry).call(this, {
1211
- method,
1212
- subject,
1213
- payload: msg,
1214
- headers,
1215
- timeout: opts?.timeout ?? this.timeout,
1216
- callerCapabilities: ctx.callerCapabilities,
1217
- });
1218
- const response = msgResult.take();
1219
- if ((0, result_1.isErr)(response)) {
1220
- return response;
1221
- }
1222
- if (response.headers?.get("status") === "error") {
1223
- const json = safeJson(response).take();
1224
- if ((0, result_1.isErr)(json)) {
1225
- return (0, result_1.err)(requestFailedTransportError({
1226
- code: "trellis.request.invalid_response",
1227
- message: "Trellis returned an invalid response.",
1228
- hint: "Retry the request. If it keeps happening, check the Trellis capability handling this request.",
1229
- method,
1230
- subject,
1231
- cause: json.error.cause,
1232
- }));
1233
- }
1234
- const errorData = (0, codec_js_1.parse)(TrellisError_js_1.TrellisErrorDataSchema, json).take();
1235
- if ((0, result_1.isErr)(errorData)) {
1236
- return (0, result_1.err)(requestFailedTransportError({
1237
- code: "trellis.request.invalid_response",
1238
- message: "Trellis returned an invalid response.",
1239
- hint: "Retry the request. If it keeps happening, check the Trellis capability handling this request.",
1240
- method,
1241
- subject,
1242
- cause: errorData.error,
1243
- }));
1244
- }
1245
- const declaredErrorTypes = Array.isArray(ctx.declaredErrorTypes)
1246
- ? ctx.declaredErrorTypes.filter((value) => typeof value === "string")
1247
- : ctx.errors;
1248
- const runtimeErrors = Array.isArray(ctx.runtimeErrors)
1249
- ? ctx.runtimeErrors.filter(isRuntimeRpcErrorDesc)
1250
- : undefined;
1251
- const reconstructed = reconstructDeclaredRpcError(declaredErrorTypes, runtimeErrors, errorData, json);
1252
- if (reconstructed) {
1253
- await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleBrowserAuthRequired).call(this, reconstructed);
1254
- return (0, result_1.err)(reconstructed);
1255
- }
1256
- const remoteError = new RemoteError_js_1.RemoteError({ error: errorData });
1257
- await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleBrowserAuthRequired).call(this, remoteError);
1258
- return (0, result_1.err)(remoteError);
1259
- }
1260
- const json = safeJson(response).take();
1261
- if ((0, result_1.isErr)(json)) {
1262
- return (0, result_1.err)(requestFailedTransportError({
1263
- code: "trellis.request.invalid_response",
1264
- message: "Trellis returned an invalid response.",
1265
- hint: "Retry the request. If it keeps happening, check the Trellis capability handling this request.",
1266
- method,
1267
- subject,
1268
- cause: json.error.cause,
1269
- }));
1270
- }
1271
- const outputResult = parseRuntimeSchema(ctx.output, json).take();
1272
- if ((0, result_1.isErr)(outputResult)) {
1273
- return (0, result_1.err)(outputResult.error);
1274
- }
1275
- return (0, result_1.ok)(outputResult);
1276
- };
1277
- return await (0, tracing_js_1.withSpanAsync)(span, async () => {
1278
- try {
1279
- const result = await attempt();
1280
- const value = result.take();
1281
- if ((0, result_1.isErr)(value)) {
1282
- span.setStatus({
1283
- code: tracing_js_1.SpanStatusCode.ERROR,
1284
- message: value.error.message,
1285
- });
1286
- }
1287
- else {
1288
- span.setStatus({ code: tracing_js_1.SpanStatusCode.OK });
1289
- }
1290
- return result;
1291
- }
1292
- catch (cause) {
1293
- const unexpected = cause instanceof index_js_1.TransportError
1294
- ? cause
1295
- : new index_js_1.UnexpectedError({ cause });
1296
- span.setStatus({
1297
- code: tracing_js_1.SpanStatusCode.ERROR,
1298
- message: unexpected.message,
1299
- });
1300
- span.recordException(unexpected);
1301
- return (0, result_1.err)(unexpected);
1302
- }
1303
- finally {
1304
- span.end();
1305
- }
1306
- });
1307
- })());
1308
- }, _Trellis_handleBrowserAuthRequired = async function _Trellis_handleBrowserAuthRequired(error) {
1309
- if (!__classPrivateFieldGet(this, _Trellis_onSessionNotFound, "f") || !isBrowserAuthRequiredError(error)) {
1310
- return;
1311
- }
1312
- await __classPrivateFieldGet(this, _Trellis_onSessionNotFound, "f").call(this);
1313
- }, _Trellis_authenticateFeedRequest = async function _Trellis_authenticateFeedRequest(args) {
1314
- const sessionKey = args.msg.headers?.get("session-key");
1315
- const proof = args.msg.headers?.get("proof");
1316
- const iatHeader = args.msg.headers?.get("iat");
1317
- const requestId = args.msg.headers?.get("request-id");
1318
- if (!sessionKey) {
1319
- return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_session_key" }));
1320
- }
1321
- if (!proof)
1322
- return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_proof" }));
1323
- const iat = Number(iatHeader);
1324
- if (!Number.isSafeInteger(iat) || !requestId) {
1325
- return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature" }));
1326
- }
1327
- const proofInput = buildProofInput(sessionKey, args.subject, args.payloadHash, iat, requestId);
1328
- const digest = await sha256(proofInput);
1329
- const verifyResult = await result_1.AsyncResult.try(async () => {
1330
- const publicKeyRaw = base64urlDecode(sessionKey);
1331
- const pub = await crypto.subtle.importKey("raw", toArrayBuffer(publicKeyRaw), { name: "Ed25519" }, true, ["verify"]);
1332
- return crypto.subtle.verify({ name: "Ed25519" }, pub, toArrayBuffer(base64urlDecode(proof)), toArrayBuffer(digest));
1333
- });
1334
- if (!verifyResult.isOk() || verifyResult.take() !== true) {
1335
- return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature", context: { sessionKey } }));
1336
- }
1337
- const auth = await this.requestAuthValidate({
1338
- sessionKey,
1339
- proof,
1340
- subject: args.subject,
1341
- payloadHash: base64urlEncode(args.payloadHash),
1342
- iat,
1343
- requestId,
1344
- capabilities: [...args.requiredCapabilities],
1345
- }).take();
1346
- if ((0, result_1.isErr)(auth))
1347
- return (0, result_1.err)(auth.error);
1348
- if (!auth.allowed) {
1349
- return (0, result_1.err)(new index_js_1.AuthError({
1350
- reason: "insufficient_permissions",
1351
- context: {
1352
- feed: args.feed,
1353
- requiredCapabilities: args.requiredCapabilities,
1354
- userCapabilities: auth.caller.capabilities,
1355
- },
1356
- }));
1357
- }
1358
- if (typeof args.msg.reply !== "string" ||
1359
- !args.msg.reply.startsWith(`${auth.inboxPrefix}.`)) {
1360
- return (0, result_1.err)(new index_js_1.AuthError({
1361
- reason: "reply_subject_mismatch",
1362
- context: { expected: auth.inboxPrefix, actual: args.msg.reply },
1363
- }));
1364
- }
1365
- return (0, result_1.ok)(auth.caller);
1366
- }, _Trellis_subscribeFeed = function _Trellis_subscribeFeed(feed, descriptor, input, opts) {
1367
- return result_1.AsyncResult.from((async () => {
1368
- const payload = encodeRuntimeSchema(descriptor.input, input).take();
1369
- if ((0, result_1.isErr)(payload))
1370
- return payload;
1371
- const subject = this.template(descriptor.subject, input).take();
1372
- if ((0, result_1.isErr)(subject))
1373
- return subject;
1374
- const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, payload);
1375
- const headers = (0, nats_core_1.headers)();
1376
- headers.set("session-key", this.auth.sessionKey);
1377
- headers.set("proof", authHeaders.proof);
1378
- headers.set("iat", String(authHeaders.iat));
1379
- headers.set("request-id", authHeaders.requestId);
1380
- (0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers));
1381
- const inbox = (0, nats_core_1.createInbox)(`_INBOX.${this.auth.sessionKey.slice(0, 16)}`);
1382
- const sub = this.nats.subscribe(inbox);
1383
- const iterator = sub[Symbol.asyncIterator]();
1384
- const abort = () => sub.unsubscribe();
1385
- opts?.signal?.addEventListener("abort", abort, { once: true });
1386
- try {
1387
- this.nats.publish(subject, payload, { headers, reply: inbox });
1388
- await this.nats.flush();
1389
- }
1390
- catch (cause) {
1391
- opts?.signal?.removeEventListener("abort", abort);
1392
- sub.unsubscribe();
1393
- return (0, result_1.err)(createTransportError({
1394
- code: "trellis.feed.subscribe_failed",
1395
- message: "Trellis could not subscribe to the feed.",
1396
- hint: "Retry the subscription. If it keeps failing, check Trellis runtime health.",
1397
- cause,
1398
- context: { feed, subject },
1399
- }));
1400
- }
1401
- let timeoutId;
1402
- let abortHandler;
1403
- const handshakePromises = [
1404
- iterator.next(),
1405
- new Promise((resolve) => {
1406
- timeoutId = setTimeout(() => resolve("timeout"), this.timeout);
1407
- }),
1408
- ];
1409
- const signal = opts?.signal;
1410
- if (signal) {
1411
- handshakePromises.push(new Promise((resolve) => {
1412
- abortHandler = () => resolve("aborted");
1413
- signal.addEventListener("abort", abortHandler, { once: true });
1414
- }));
1415
- }
1416
- const firstFrame = await Promise.race(handshakePromises);
1417
- if (timeoutId !== undefined)
1418
- clearTimeout(timeoutId);
1419
- if (signal && abortHandler) {
1420
- signal.removeEventListener("abort", abortHandler);
1421
- }
1422
- if (firstFrame === "timeout" || firstFrame === "aborted") {
1423
- opts?.signal?.removeEventListener("abort", abort);
1424
- sub.unsubscribe();
1425
- return (0, result_1.err)(createTransportError({
1426
- code: firstFrame === "timeout"
1427
- ? "trellis.feed.subscribe_timeout"
1428
- : "trellis.feed.subscribe_aborted",
1429
- message: firstFrame === "timeout"
1430
- ? "Trellis did not receive a feed acknowledgement."
1431
- : "The feed subscription was aborted before Trellis acknowledged it.",
1432
- hint: firstFrame === "timeout"
1433
- ? "Check that the target service is running and has the current deployment digest, then retry."
1434
- : "Retry the subscription if the feed is still needed.",
1435
- context: { feed, subject },
1436
- }));
1437
- }
1438
- if (firstFrame.done) {
1439
- opts?.signal?.removeEventListener("abort", abort);
1440
- sub.unsubscribe();
1441
- return (0, result_1.err)(createTransportError({
1442
- code: "trellis.feed.subscribe_closed",
1443
- message: "Trellis closed the feed before acknowledging it.",
1444
- hint: "Retry the subscription. If it keeps failing, check Trellis runtime health.",
1445
- context: { feed, subject },
1446
- }));
1447
- }
1448
- const firstMessage = firstFrame.value;
1449
- if (firstMessage.headers?.get("status") === "error") {
1450
- opts?.signal?.removeEventListener("abort", abort);
1451
- sub.unsubscribe();
1452
- return (0, result_1.err)(createTransportError({
1453
- code: "trellis.feed.failed",
1454
- message: "Trellis rejected the feed subscription.",
1455
- hint: "Retry the subscription. If it keeps failing, check Trellis runtime health and permissions.",
1456
- context: { feed, subject, frame: firstMessage.string() },
1457
- }));
1458
- }
1459
- const firstEvent = firstMessage.headers?.get("feed-status") === "ready"
1460
- ? undefined
1461
- : firstMessage;
1462
- const eventSchema = descriptor.event;
1463
- return (0, result_1.ok)((async function* () {
1464
- try {
1465
- const parseFeedFrame = (msg) => {
1466
- if (msg.headers?.get("status") === "error") {
1467
- throw createTransportError({
1468
- code: "trellis.feed.failed",
1469
- message: "Trellis stopped the feed.",
1470
- hint: "Retry the subscription. If it keeps failing, check Trellis runtime health.",
1471
- context: { feed, subject, frame: msg.string() },
1472
- });
1473
- }
1474
- const json = safeJson(msg).take();
1475
- if ((0, result_1.isErr)(json))
1476
- throw json.error;
1477
- const parsed = parseRuntimeSchema(eventSchema, json).take();
1478
- if ((0, result_1.isErr)(parsed))
1479
- throw parsed.error;
1480
- return parsed;
1481
- };
1482
- if (firstEvent)
1483
- yield parseFeedFrame(firstEvent);
1484
- while (true) {
1485
- const next = await iterator.next();
1486
- if (next.done)
1487
- break;
1488
- yield parseFeedFrame(next.value);
1489
- }
1490
- }
1491
- finally {
1492
- opts?.signal?.removeEventListener("abort", abort);
1493
- sub.unsubscribe();
1494
- }
1495
- })());
1496
- })());
1497
- }, _Trellis_handleFeed = async function _Trellis_handleFeed(feed, descriptor, handler) {
1498
- const subject = this.template(descriptor.subject, {}, true).take();
1499
- if ((0, result_1.isErr)(subject))
1500
- throw subject.error;
1501
- let sub;
1502
- try {
1503
- sub = this.nats.subscribe(subject);
1504
- await this.nats.flush();
1505
- }
1506
- catch (cause) {
1507
- throw createTransportError({
1508
- code: "trellis.feed.listen_failed",
1509
- message: "Trellis could not listen for feed requests.",
1510
- hint: "Check the service deployment digest and runtime permissions, then restart the service.",
1511
- cause,
1512
- context: { feed, subject },
1513
- });
1514
- }
1515
- const task = result_1.AsyncResult.try(async () => {
1516
- for await (const msg of sub) {
1517
- void (async () => {
1518
- try {
1519
- const result = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_processFeedMessage).call(this, feed, descriptor, msg, handler);
1520
- const value = result.take();
1521
- if ((0, result_1.isErr)(value)) {
1522
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, value.error);
1523
- }
1524
- }
1525
- catch (cause) {
1526
- const error = cause instanceof result_1.BaseError
1527
- ? cause
1528
- : new index_js_1.UnexpectedError({ cause });
1529
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, error);
1530
- }
1531
- })();
1532
- }
1533
- });
1534
- __classPrivateFieldGet(this, _Trellis_tasks, "f").add(`feed:${feed}`, task);
1535
- }, _Trellis_processFeedMessage = async function _Trellis_processFeedMessage(feed, descriptor, msg, handler) {
1536
- const json = safeJson(msg).take();
1537
- if ((0, result_1.isErr)(json))
1538
- return json;
1539
- const parsed = parseRuntimeSchema(descriptor.input, json).take();
1540
- if ((0, result_1.isErr)(parsed))
1541
- return parsed;
1542
- const caller = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_authenticateFeedRequest).call(this, {
1543
- feed,
1544
- subject: msg.subject,
1545
- msg,
1546
- payloadHash: await sha256(msg.data ?? new Uint8Array()),
1547
- requiredCapabilities: descriptor.subscribeCapabilities,
1548
- });
1549
- const callerValue = caller.take();
1550
- if ((0, result_1.isErr)(callerValue))
1551
- return callerValue;
1552
- if (!msg.reply) {
1553
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1554
- context: { feed, reason: "missing_reply" },
1555
- }));
1556
- }
1557
- const readyHeaders = (0, nats_core_1.headers)();
1558
- readyHeaders.set("feed-status", "ready");
1559
- this.nats.publish(msg.reply, new Uint8Array(), { headers: readyHeaders });
1560
- await this.nats.flush();
1561
- const controller = new AbortController();
1562
- try {
1563
- await handler({
1564
- input: parsed,
1565
- caller: callerValue,
1566
- signal: controller.signal,
1567
- emit: (event) => result_1.AsyncResult.from((async () => {
1568
- const payload = encodeRuntimeSchema(descriptor.event, event).take();
1569
- if ((0, result_1.isErr)(payload))
1570
- return payload;
1571
- if (!msg.reply) {
1572
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1573
- context: { feed, reason: "missing_reply" },
1574
- }));
1575
- }
1576
- this.nats.publish(msg.reply, payload);
1577
- await this.nats.flush();
1578
- return (0, result_1.ok)(undefined);
1579
- })()),
1580
- });
1581
- return (0, result_1.ok)(undefined);
1582
- }
1583
- finally {
1584
- controller.abort();
1585
- }
1586
- }, _Trellis_handleRPC = function _Trellis_handleRPC(method, fn, subjectData = {}) {
1587
- // Get API details
1588
- const ctx = this.api["rpc"][method];
1589
- const subject = this.template(ctx.subject, subjectData, true).take();
1590
- if ((0, result_1.isErr)(subject)) {
1591
- return result_1.AsyncResult.lift(subject);
1592
- }
1593
- const handlerTrellis = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createHandlerTrellis).call(this);
1594
- __classPrivateFieldGet(this, _Trellis_log, "f").info({ method: String(method) }, `Mounting ${method.toString()} RPC handler`);
1595
- const sub = this.nats.subscribe(subject);
1596
- return result_1.AsyncResult.try(async () => {
1597
- for await (const msg of sub) {
1598
- const resultPromise = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_processRPCMessage).call(this, method, ctx, msg, fn, handlerTrellis);
1599
- const result = resultPromise.take();
1600
- if ((0, result_1.isErr)(result)) {
1601
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, result.error, { method: String(method) });
1602
- continue;
1603
- }
1604
- const sent = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithPayload).call(this, msg, result, undefined, {
1605
- method: String(method),
1606
- responseKind: "success",
1607
- });
1608
- if (sent.isErr()) {
1609
- const responseBytes = payloadByteLength(result);
1610
- const message = causeMessage(sent.error.cause);
1611
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, new index_js_1.TransportError({
1612
- code: "trellis.rpc.response_send_failed",
1613
- message: message.includes("max_payload")
1614
- ? "Trellis RPC response exceeded NATS max_payload."
1615
- : "Trellis could not send the RPC response.",
1616
- hint: "Reduce the requested page size or use a narrower RPC that does not include large detail payloads.",
1617
- cause: sent.error.cause,
1618
- context: {
1619
- method: String(method),
1620
- subject: msg.subject,
1621
- responseBytes,
1622
- causeMessage: message,
1623
- },
1624
- }), { method: String(method), responseBytes });
1625
- }
1626
- }
1627
- });
1628
- }, _Trellis_processRPCMessage = async function _Trellis_processRPCMessage(method, ctx, msg, fn, handlerTrellis) {
1629
- __classPrivateFieldGet(this, _Trellis_log, "f").debug({ method: String(method), subject: msg.subject }, "Processing RPC message");
1630
- // Extract trace context from incoming NATS headers
1631
- const parentContext = (0, tracing_js_1.extractTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)({
1632
- get: (k) => msg.headers?.get(k) ?? undefined,
1633
- set: () => { }, // Server doesn't need to set headers on incoming messages
1634
- }));
1635
- // Start a server span for this RPC handler
1636
- const span = (0, tracing_js_1.startServerSpan)(method, msg.subject, parentContext);
1637
- const incomingTraceId = traceIdFromTraceparent(msg.headers?.get("traceparent"));
1638
- // Execute the handler within the span's context
1639
- return (0, tracing_js_1.withSpanAsync)(span, async () => {
1640
- const execute = async () => {
1641
- const jsonData = safeJson(msg).take();
1642
- if ((0, result_1.isErr)(jsonData)) {
1643
- __classPrivateFieldGet(this, _Trellis_log, "f").warn({ method, error: jsonData.error.message }, "Failed to parse JSON");
1644
- span.setStatus({
1645
- code: tracing_js_1.SpanStatusCode.ERROR,
1646
- message: "Failed to parse JSON",
1647
- });
1648
- return jsonData;
1649
- }
1650
- const parsedInput = parseRuntimeSchema(ctx.input, jsonData).take();
1651
- if ((0, result_1.isErr)(parsedInput)) {
1652
- span.setStatus({
1653
- code: tracing_js_1.SpanStatusCode.ERROR,
1654
- message: "Input validation failed",
1655
- });
1656
- return parsedInput;
1657
- }
1658
- let caller;
1659
- const callerSessionKey = msg.headers?.get("session-key") ?? "";
1660
- const authRequired = ctx.authRequired ?? true;
1661
- if (!authRequired) {
1662
- caller = {
1663
- type: "service",
1664
- id: "system",
1665
- active: true,
1666
- name: "System",
1667
- capabilities: ["service"],
1668
- };
1669
- }
1670
- else {
1671
- const sessionKey = msg.headers?.get("session-key");
1672
- const proof = msg.headers?.get("proof");
1673
- const iatHeader = msg.headers?.get("iat");
1674
- const requestId = msg.headers?.get("request-id");
1675
- if (!sessionKey) {
1676
- __classPrivateFieldGet(this, _Trellis_log, "f").warn({ method }, "Missing session-key header");
1677
- span.setStatus({
1678
- code: tracing_js_1.SpanStatusCode.ERROR,
1679
- message: "Missing session-key",
1680
- });
1681
- return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_session_key" }));
1682
- }
1683
- if (!proof) {
1684
- __classPrivateFieldGet(this, _Trellis_log, "f").warn({ method }, "Missing proof in request");
1685
- span.setStatus({
1686
- code: tracing_js_1.SpanStatusCode.ERROR,
1687
- message: "Missing proof",
1688
- });
1689
- return (0, result_1.err)(new index_js_1.AuthError({ reason: "missing_proof" }));
1690
- }
1691
- const iat = Number(iatHeader);
1692
- if (!Number.isSafeInteger(iat) || !requestId) {
1693
- return (0, result_1.err)(new index_js_1.AuthError({ reason: "invalid_signature" }));
1694
- }
1695
- // Verify proof signature locally using the raw request bytes we received.
1696
- const payloadBytes = msg.data ?? new Uint8Array();
1697
- const payloadHash = await sha256(payloadBytes);
1698
- const proofInput = buildProofInput(sessionKey, msg.subject, payloadHash, iat, requestId);
1699
- const digest = await sha256(proofInput);
1700
- const verifyResult = await result_1.AsyncResult.try(async () => {
1701
- const publicKeyRaw = base64urlDecode(sessionKey);
1702
- const pub = await crypto.subtle.importKey("raw", toArrayBuffer(publicKeyRaw), { name: "Ed25519" }, true, ["verify"]);
1703
- return crypto.subtle.verify({ name: "Ed25519" }, pub, toArrayBuffer(base64urlDecode(proof)), toArrayBuffer(digest));
1704
- });
1705
- const signatureOk = verifyResult.isOk() &&
1706
- verifyResult.take() === true;
1707
- if (!signatureOk) {
1708
- span.setStatus({
1709
- code: tracing_js_1.SpanStatusCode.ERROR,
1710
- message: "Invalid signature",
1711
- });
1712
- return (0, result_1.err)(new index_js_1.AuthError({
1713
- reason: "invalid_signature",
1714
- context: { sessionKey },
1715
- }));
1716
- }
1717
- let auth;
1718
- for (let attempt = 0; attempt < DEFAULT_AUTH_VALIDATE_SESSION_RETRY_ATTEMPTS; attempt++) {
1719
- const authValue = await this.requestAuthValidate({
1720
- sessionKey,
1721
- proof,
1722
- subject: msg.subject,
1723
- payloadHash: base64urlEncode(payloadHash),
1724
- iat,
1725
- requestId,
1726
- capabilities: [...ctx.callerCapabilities],
1727
- }).take();
1728
- if (!(0, result_1.isErr)(authValue)) {
1729
- auth = authValue;
1730
- break;
1731
- }
1732
- const authError = authValue.error;
1733
- if (!isTransientAuthValidateSessionError(authError) ||
1734
- attempt === DEFAULT_AUTH_VALIDATE_SESSION_RETRY_ATTEMPTS - 1) {
1735
- auth = authError;
1736
- break;
1737
- }
1738
- await sleep(DEFAULT_AUTH_VALIDATE_SESSION_RETRY_MS * (attempt + 1));
1739
- }
1740
- if (!auth) {
1741
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1742
- context: { reason: "missing_auth_validate_result" },
1743
- }));
1744
- }
1745
- if (auth instanceof Error) {
1746
- __classPrivateFieldGet(this, _Trellis_log, "f").warn({
1747
- method,
1748
- error: auth.message,
1749
- errorType: auth.name,
1750
- remoteError: auth instanceof RemoteError_js_1.RemoteError
1751
- ? auth.toSerializable()
1752
- : undefined,
1753
- }, "Auth.Requests.Validate failed");
1754
- span.setStatus({
1755
- code: tracing_js_1.SpanStatusCode.ERROR,
1756
- message: "Auth.Requests.Validate failed",
1757
- });
1758
- if (auth instanceof result_1.BaseError) {
1759
- return (0, result_1.err)(auth);
1760
- }
1761
- return (0, result_1.err)(new index_js_1.UnexpectedError({ cause: auth }));
1762
- }
1763
- if (!auth.allowed) {
1764
- span.setStatus({
1765
- code: tracing_js_1.SpanStatusCode.ERROR,
1766
- message: "Insufficient permissions",
1767
- });
1768
- return (0, result_1.err)(new index_js_1.AuthError({
1769
- reason: "insufficient_permissions",
1770
- context: {
1771
- requiredCapabilities: ctx.callerCapabilities,
1772
- userCapabilities: auth.caller.capabilities,
1773
- },
1774
- }));
1775
- }
1776
- if (typeof msg.reply !== "string" ||
1777
- !msg.reply.startsWith(`${auth.inboxPrefix}.`)) {
1778
- span.setStatus({
1779
- code: tracing_js_1.SpanStatusCode.ERROR,
1780
- message: "Reply subject mismatch",
1781
- });
1782
- return (0, result_1.err)(new index_js_1.AuthError({
1783
- reason: "reply_subject_mismatch",
1784
- context: { expected: auth.inboxPrefix, actual: msg.reply },
1785
- }));
1786
- }
1787
- caller = auth.caller;
1788
- }
1789
- span.setAttribute("auth.caller.type", caller.type);
1790
- if (caller.type === "user") {
1791
- span.setAttribute("user.id", caller.userId);
1792
- span.setAttribute("user.identity.provider", caller.identity.provider);
1793
- span.setAttribute("user.identity.subject", caller.identity.subject);
1794
- }
1795
- if (caller.type === "service") {
1796
- const { id } = caller;
1797
- span.setAttribute("service.id", id);
1798
- }
1799
- if (caller.type === "device") {
1800
- span.setAttribute("device.id", caller.deviceId);
1801
- span.setAttribute("device.deployment_id", caller.deploymentId);
1802
- }
1803
- const invokeHandler = fn;
1804
- const handlerResultWrapped = await result_1.AsyncResult.try(async () => await Promise.resolve(invokeHandler({
1805
- input: parsedInput,
1806
- context: {
1807
- caller,
1808
- sessionKey: callerSessionKey,
1809
- },
1810
- client: handlerTrellis,
1811
- })));
1812
- if (handlerResultWrapped.isErr()) {
1813
- const error = handlerResultWrapped.error.withContext({ method });
1814
- __classPrivateFieldGet(this, _Trellis_log, "f").error({
1815
- method,
1816
- error: error.message,
1817
- cause: error.cause instanceof Error
1818
- ? { message: error.cause.message, stack: error.cause.stack }
1819
- : error.cause,
1820
- }, "Handler threw unexpectedly.");
1821
- span.setStatus({
1822
- code: tracing_js_1.SpanStatusCode.ERROR,
1823
- message: error.message,
1824
- });
1825
- span.recordException(error);
1826
- return (0, result_1.err)(error);
1827
- }
1828
- const handlerResult = handlerResultWrapped.take();
1829
- const handlerOutcome = handlerResult.take();
1830
- if ((0, result_1.isErr)(handlerOutcome)) {
1831
- const handlerError = handlerOutcome.error;
1832
- const error = handlerError instanceof result_1.BaseError &&
1833
- !(handlerError instanceof RemoteError_js_1.RemoteError)
1834
- ? handlerError
1835
- : new index_js_1.UnexpectedError({ cause: handlerError });
1836
- __classPrivateFieldGet(this, _Trellis_log, "f").error({
1837
- method,
1838
- error: error.message,
1839
- errorType: error.name,
1840
- cause: error.cause instanceof Error
1841
- ? { message: error.cause.message, stack: error.cause.stack }
1842
- : error.cause,
1843
- }, "Handler returned error.");
1844
- span.setStatus({
1845
- code: tracing_js_1.SpanStatusCode.ERROR,
1846
- message: error.message,
1847
- });
1848
- return (0, result_1.err)(error);
1849
- }
1850
- const encoded = (0, codec_js_1.encodeSchema)(ctx.output, handlerOutcome).take();
1851
- if ((0, result_1.isErr)(encoded)) {
1852
- span.setStatus({
1853
- code: tracing_js_1.SpanStatusCode.ERROR,
1854
- message: "Output encoding failed",
1855
- });
1856
- return encoded;
1857
- }
1858
- span.setStatus({ code: tracing_js_1.SpanStatusCode.OK });
1859
- return (0, result_1.ok)(encoded);
1860
- };
1861
- const result = await execute();
1862
- if ((0, result_1.isErr)(result)) {
1863
- result.error.withTraceId(activeTraceId(span) ?? incomingTraceId);
1864
- }
1865
- span.end();
1866
- return result;
1867
- });
1868
- }, _Trellis_respondWithPayload = function _Trellis_respondWithPayload(msg, payload, options, context) {
1869
- const responseBytes = payloadByteLength(payload);
1870
- try {
1871
- msg.respond(payload, options);
1872
- return (0, result_1.ok)(undefined);
1873
- }
1874
- catch (cause) {
1875
- const error = new index_js_1.UnexpectedError({
1876
- cause,
1877
- context: {
1878
- method: context.method,
1879
- responseKind: context.responseKind,
1880
- subject: msg.subject,
1881
- reply: msg.reply,
1882
- responseBytes,
1883
- causeMessage: causeMessage(cause),
1884
- },
1885
- });
1886
- __classPrivateFieldGet(this, _Trellis_log, "f").error({
1887
- method: context.method,
1888
- responseKind: context.responseKind,
1889
- subject: msg.subject,
1890
- reply: msg.reply,
1891
- responseBytes,
1892
- cause: causeLogData(cause),
1893
- }, "Failed to send RPC response");
1894
- return (0, result_1.err)(error);
1895
- }
1896
- }, _Trellis_respondWithError = function _Trellis_respondWithError(msg, error, context = {}) {
1897
- const trellisError = error instanceof result_1.BaseError &&
1898
- !(error instanceof RemoteError_js_1.RemoteError)
1899
- ? error
1900
- : new index_js_1.UnexpectedError({ cause: error });
1901
- __classPrivateFieldGet(this, _Trellis_log, "f").error({
1902
- method: context.method,
1903
- subject: msg.subject,
1904
- responseBytes: context.responseBytes,
1905
- error: trellisError.toSerializable(),
1906
- }, "RPC error");
1907
- const errorData = trellisError.toSerializable();
1908
- const hdrs = (0, nats_core_1.headers)();
1909
- hdrs.set("status", "error");
1910
- const serialized = result_1.Result.try(() => JSON.stringify(errorData));
1911
- if (serialized.isErr()) {
1912
- __classPrivateFieldGet(this, _Trellis_log, "f").error({ error: serialized.error }, "Failed to serialize error response");
1913
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithPayload).call(this, msg, '{"type":"UnexpectedError","message":"Failed to serialize error"}', { headers: hdrs }, { method: context.method, responseKind: "error" });
1914
- return;
1915
- }
1916
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithPayload).call(this, msg, serialized.take(), { headers: hdrs }, { method: context.method, responseKind: "error" });
1917
- }, _Trellis_startEphemeralEvent = function _Trellis_startEphemeralEvent(event, ctx, subject, fn, signal) {
1918
- const sub = this.nats.subscribe(subject);
1919
- if (signal) {
1920
- if (signal.aborted) {
1921
- sub.unsubscribe();
1922
- return (0, result_1.ok)(undefined);
1923
- }
1924
- signal.addEventListener("abort", () => sub.unsubscribe(), { once: true });
1925
- }
1926
- const task = result_1.AsyncResult.try(async () => {
1927
- for await (const msg of sub) {
1928
- const parsedEvent = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_parseEventMessage).call(this, event, ctx, msg);
1929
- const m = parsedEvent.take();
1930
- if ((0, result_1.isErr)(m)) {
1931
- __classPrivateFieldGet(this, _Trellis_log, "f").error({ error: m.error }, "Event validation failed");
1932
- continue;
1933
- }
1934
- const handlerResult = await result_1.AsyncResult.lift(fn(m));
1935
- if (handlerResult.isErr()) {
1936
- __classPrivateFieldGet(this, _Trellis_log, "f").error({
1937
- error: handlerResult.error.toSerializable(),
1938
- event,
1939
- subject: msg.subject,
1940
- }, "Event handler failed");
1941
- }
1942
- }
1943
- });
1944
- __classPrivateFieldGet(this, _Trellis_tasks, "f").add(`event:${event}:${(0, ulid_1.ulid)()}`, task);
1945
- return (0, result_1.ok)(undefined);
1946
- }, _Trellis_resolveEventConsumerGroup = function _Trellis_resolveEventConsumerGroup(event, opts) {
1947
- const metadata = __classPrivateFieldGet(this, _Trellis_eventConsumers, "f").metadata;
1948
- const bindings = __classPrivateFieldGet(this, _Trellis_eventConsumers, "f").bindings ?? {};
1949
- const groups = Object.entries(metadata ?? {})
1950
- .filter(([, group]) => group.events.some((entry) => entry.event === String(event)))
1951
- .map(([group]) => group);
1952
- if (opts?.group) {
1953
- if (!groups.includes(opts.group)) {
1954
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1955
- cause: new Error(`Event '${String(event)}' is not declared in event consumer group '${opts.group}'.`),
1956
- context: { event: String(event), group: opts.group },
1957
- }));
1958
- }
1959
- if (!bindings[opts.group]) {
1960
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1961
- cause: new Error(`Event consumer group '${opts.group}' has no Trellis-provisioned binding.`),
1962
- context: { event: String(event), group: opts.group },
1963
- }));
1964
- }
1965
- return (0, result_1.ok)(opts.group);
1966
- }
1967
- if (groups.length === 0) {
1968
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1969
- cause: new Error(`Event '${String(event)}' is not declared in any event consumer group.`),
1970
- context: { event: String(event) },
1971
- }));
1972
- }
1973
- if (groups.length > 1) {
1974
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1975
- cause: new Error(`Event '${String(event)}' is declared in multiple event consumer groups; pass opts.group.`),
1976
- context: { event: String(event), groups },
1977
- }));
1978
- }
1979
- const group = groups[0];
1980
- if (!bindings[group]) {
1981
- return (0, result_1.err)(new index_js_1.UnexpectedError({
1982
- cause: new Error(`Event consumer group '${group}' has no Trellis-provisioned binding.`),
1983
- context: { event: String(event), group },
1984
- }));
1985
- }
1986
- return (0, result_1.ok)(group);
1987
- }, _Trellis_registerDurableEventHandler = function _Trellis_registerDurableEventHandler(args) {
1988
- if (args.signal?.aborted)
1989
- return;
1990
- const loop = __classPrivateFieldGet(this, _Trellis_durableEventLoops, "f").get(args.group) ?? {
1991
- registrations: [],
1992
- started: false,
1993
- };
1994
- const registration = {
1995
- event: args.event,
1996
- ctx: args.ctx,
1997
- subject: args.subject,
1998
- fn: args.fn,
1999
- };
2000
- loop.registrations.push(registration);
2001
- __classPrivateFieldGet(this, _Trellis_durableEventLoops, "f").set(args.group, loop);
2002
- args.signal?.addEventListener("abort", () => {
2003
- const index = loop.registrations.indexOf(registration);
2004
- if (index >= 0)
2005
- loop.registrations.splice(index, 1);
2006
- if (!__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_durableEventConsumerGroupReady).call(this, args.group, loop)) {
2007
- loop.messages?.stop();
2008
- }
2009
- }, { once: true });
2010
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_startDurableEventConsumer).call(this, args.group, loop);
2011
- }, _Trellis_startDurableEventConsumer = function _Trellis_startDurableEventConsumer(group, loop) {
2012
- if (loop.started || !__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_durableEventConsumerGroupReady).call(this, group, loop)) {
2013
- return;
2014
- }
2015
- loop.started = true;
2016
- __classPrivateFieldGet(this, _Trellis_tasks, "f").add(`event-consumer:${group}:${(0, ulid_1.ulid)()}`, __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_runDurableEventConsumer).call(this, group, loop));
2017
- }, _Trellis_durableEventConsumerGroupReady = function _Trellis_durableEventConsumerGroupReady(group, loop) {
2018
- const metadata = __classPrivateFieldGet(this, _Trellis_eventConsumers, "f").metadata?.[group];
2019
- if (!metadata)
2020
- return false;
2021
- return metadata.events.every((entry) => loop.registrations.some((registration) => String(registration.event) === entry.event));
2022
- }, _Trellis_runDurableEventConsumer = function _Trellis_runDurableEventConsumer(group, loop) {
2023
- return result_1.AsyncResult.from((async () => {
2024
- const binding = __classPrivateFieldGet(this, _Trellis_eventConsumers, "f").bindings?.[group];
2025
- if (!binding) {
2026
- return (0, result_1.err)(new index_js_1.UnexpectedError({
2027
- cause: new Error(`Event consumer group '${group}' has no Trellis-provisioned binding.`),
2028
- context: { group },
2029
- }));
2030
- }
2031
- try {
2032
- const infoResult = await result_1.AsyncResult.try(async () => {
2033
- const jsm = await (0, jetstream_1.jetstreamManager)(this.nats);
2034
- return await jsm.consumers.info(binding.stream, binding.consumerName);
2035
- });
2036
- const info = infoResult.take();
2037
- if ((0, result_1.isErr)(info))
2038
- return info;
2039
- const consumer = this.js.consumers.getConsumerFromInfo(info);
2040
- while (__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_durableEventConsumerGroupReady).call(this, group, loop)) {
2041
- const messages = await consumer.fetch({
2042
- max_messages: 1,
2043
- expires: 30_000,
2044
- });
2045
- loop.messages = messages;
2046
- if (!__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_durableEventConsumerGroupReady).call(this, group, loop)) {
2047
- messages.stop();
2048
- break;
2049
- }
2050
- await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_handleDurableEventConsumer).call(this, group, loop, messages)
2051
- .orThrow();
2052
- }
2053
- }
2054
- finally {
2055
- loop.started = false;
2056
- loop.messages = undefined;
2057
- __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_startDurableEventConsumer).call(this, group, loop);
2058
- }
2059
- return (0, result_1.ok)(undefined);
2060
- })());
2061
- }, _Trellis_handleDurableEvent = function _Trellis_handleDurableEvent(event, ctx, messages, fn) {
2062
- return result_1.AsyncResult.try(async () => {
2063
- for await (const msg of messages) {
2064
- const parsedEvent = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_parseEventMessage).call(this, event, ctx, msg);
2065
- const m = parsedEvent.take();
2066
- if ((0, result_1.isErr)(m)) {
2067
- __classPrivateFieldGet(this, _Trellis_log, "f").error({ error: m.error }, "Event validation failed");
2068
- msg.term();
2069
- continue;
2070
- }
2071
- const handlerResult = await result_1.AsyncResult.lift(fn(m));
2072
- if (handlerResult.isErr()) {
2073
- __classPrivateFieldGet(this, _Trellis_log, "f").error({
2074
- error: handlerResult.error.toSerializable(),
2075
- event,
2076
- subject: msg.subject,
2077
- }, "Event handler failed");
2078
- msg.nak();
2079
- continue;
2080
- }
2081
- msg.ack();
2082
- }
2083
- });
2084
- }, _Trellis_handleDurableEventConsumer = function _Trellis_handleDurableEventConsumer(group, loop, messages) {
2085
- return result_1.AsyncResult.try(async () => {
2086
- for await (const msg of messages) {
2087
- if (!__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_durableEventConsumerGroupReady).call(this, group, loop)) {
2088
- messages.stop();
2089
- break;
2090
- }
2091
- const matching = loop.registrations.filter((registration) => natsSubjectMatches(registration.subject, msg.subject));
2092
- if (matching.length === 0) {
2093
- __classPrivateFieldGet(this, _Trellis_log, "f").warn({ group, subject: msg.subject }, "Durable event consumer received message without registered handler");
2094
- msg.nak();
2095
- continue;
2096
- }
2097
- let failed = false;
2098
- for (const registration of matching) {
2099
- const parsedEvent = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_parseEventMessage).call(this, registration.event, registration.ctx, msg);
2100
- const eventPayload = parsedEvent.take();
2101
- if ((0, result_1.isErr)(eventPayload)) {
2102
- __classPrivateFieldGet(this, _Trellis_log, "f").error({ error: eventPayload.error }, "Event validation failed");
2103
- msg.term();
2104
- failed = true;
2105
- break;
2106
- }
2107
- const handlerResult = await result_1.AsyncResult.lift(registration.fn(eventPayload));
2108
- if (handlerResult.isErr()) {
2109
- __classPrivateFieldGet(this, _Trellis_log, "f").error({
2110
- error: handlerResult.error.toSerializable(),
2111
- event: registration.event,
2112
- subject: msg.subject,
2113
- }, "Event handler failed");
2114
- msg.nak();
2115
- failed = true;
2116
- break;
2117
- }
2118
- }
2119
- if (!failed)
2120
- msg.ack();
2121
- }
2122
- });
2123
- }, _Trellis_parseEventMessage = function _Trellis_parseEventMessage(event, ctx, msg) {
2124
- const jsonData = result_1.Result.try(() => msg.json());
2125
- const json = jsonData.take();
2126
- if ((0, result_1.isErr)(json)) {
2127
- __classPrivateFieldGet(this, _Trellis_log, "f").error({ error: json.error, event, subject: msg.subject }, "Event parse failed");
2128
- return json;
2129
- }
2130
- return parseRuntimeSchema(ctx.event, json);
2131
- }, _Trellis_escapeSubjectToken = function _Trellis_escapeSubjectToken(token) {
2132
- const out = token.replace(NATS_SUBJECT_TOKEN_FORBIDDEN, (ch) => `~${ch.codePointAt(0).toString(16).toUpperCase()}~`);
2133
- // Protect stapRet with $ due to NATS internal use of it
2134
- if (out.length === 0 || out.startsWith("$")) {
2135
- return `_${out}`;
2136
- }
2137
- return out;
2138
- }, _Trellis_currentIat = function _Trellis_currentIat() {
2139
- return this.auth.currentIat?.() ?? Math.floor(Date.now() / 1000);
2140
- }, _Trellis_createProof = async function _Trellis_createProof(subject, payload) {
2141
- const payloadBytes = new TextEncoder().encode(payload);
2142
- const payloadHash = await sha256(payloadBytes);
2143
- const iat = __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_currentIat).call(this);
2144
- const requestId = (0, ulid_1.ulid)();
2145
- const input = buildProofInput(this.auth.sessionKey, subject, payloadHash, iat, requestId);
2146
- const digest = await sha256(input);
2147
- const sigBytes = await this.auth.sign(digest);
2148
- return { proof: base64urlEncode(sigBytes), iat, requestId };
2149
- }, _Trellis_requestMessageWithRetry = async function _Trellis_requestMessageWithRetry(args) {
2150
- for (let retry = 0; retry <= __classPrivateFieldGet(this, _Trellis_noResponderMaxRetries, "f"); retry++) {
2151
- const result = await result_1.AsyncResult.try(() => this.nats.request(args.subject, args.payload, {
2152
- headers: args.headers,
2153
- timeout: args.timeout,
2154
- }));
2155
- if (result.isOk()) {
2156
- return (0, result_1.ok)(result.take());
2157
- }
2158
- const cause = result.error.cause;
2159
- const message = cause instanceof Error ? cause.message : String(cause);
2160
- const isNoResponders = message.includes("no responders");
2161
- if (isNoResponders && retry < __classPrivateFieldGet(this, _Trellis_noResponderMaxRetries, "f")) {
2162
- __classPrivateFieldGet(this, _Trellis_log, "f").debug({ method: args.method, subject: args.subject, retry }, "No responders, retrying...");
2163
- await new Promise((resolve) => setTimeout(resolve, __classPrivateFieldGet(this, _Trellis_noResponderRetryMs, "f") * (retry + 1)));
2164
- continue;
2165
- }
2166
- __classPrivateFieldGet(this, _Trellis_log, "f").warn({ method: args.method, subject: args.subject, error: message }, "NATS request failed");
2167
- return (0, result_1.err)(classifyRequestTransportFailure({
2168
- method: args.method,
2169
- subject: args.subject,
2170
- callerCapabilities: args.callerCapabilities,
2171
- cause,
2172
- }));
2173
- }
2174
- return (0, result_1.err)(requestFailedTransportError({
2175
- code: "trellis.request.retry_exhausted",
2176
- message: "Trellis could not complete the request after retrying.",
2177
- hint: "Retry the request. If it keeps failing, check that the target service is available.",
2178
- method: args.method,
2179
- subject: args.subject,
2180
- context: { retries: __classPrivateFieldGet(this, _Trellis_noResponderMaxRetries, "f") + 1 },
2181
- }));
2182
- }, _Trellis_requestJson = function _Trellis_requestJson(subject, body) {
2183
- return result_1.AsyncResult.from((async () => {
2184
- const span = (0, tracing_js_1.startClientSpan)(subject, subject);
2185
- return await (0, tracing_js_1.withSpanAsync)(span, async () => {
2186
- try {
2187
- const payload = JSON.stringify(body);
2188
- const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, payload);
2189
- const headers = (0, nats_core_1.headers)();
2190
- headers.set("session-key", this.auth.sessionKey);
2191
- headers.set("proof", authHeaders.proof);
2192
- headers.set("iat", String(authHeaders.iat));
2193
- headers.set("request-id", authHeaders.requestId);
2194
- (0, tracing_js_1.injectTraceContext)((0, tracing_js_1.createNatsHeaderCarrier)(headers), span);
2195
- const response = (await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_requestMessageWithRetry).call(this, {
2196
- subject,
2197
- payload,
2198
- headers,
2199
- timeout: this.timeout,
2200
- })).take();
2201
- if ((0, result_1.isErr)(response)) {
2202
- span.setStatus({
2203
- code: tracing_js_1.SpanStatusCode.ERROR,
2204
- message: response.error.message,
2205
- });
2206
- return response;
2207
- }
2208
- const json = safeJson(response).take();
2209
- if ((0, result_1.isErr)(json)) {
2210
- const error = createTransportError({
2211
- code: "trellis.request.invalid_response",
2212
- message: "Trellis returned an invalid response.",
2213
- hint: "Retry the request. If it keeps happening, reconnect to Trellis and try again.",
2214
- cause: json.error.cause,
2215
- context: { subject },
2216
- });
2217
- span.setStatus({
2218
- code: tracing_js_1.SpanStatusCode.ERROR,
2219
- message: error.message,
2220
- });
2221
- return (0, result_1.err)(error);
2222
- }
2223
- span.setStatus({ code: tracing_js_1.SpanStatusCode.OK });
2224
- return (0, result_1.ok)(json);
2225
- }
2226
- catch (cause) {
2227
- const error = new index_js_1.UnexpectedError({ cause });
2228
- span.setStatus({
2229
- code: tracing_js_1.SpanStatusCode.ERROR,
2230
- message: error.message,
2231
- });
2232
- span.recordException(error);
2233
- return (0, result_1.err)(error);
2234
- }
2235
- finally {
2236
- span.end();
2237
- }
2238
- });
2239
- })());
2240
- }, _Trellis_watchJson = function _Trellis_watchJson(subject, body) {
2241
- return result_1.AsyncResult.from((async () => {
2242
- const payload = JSON.stringify(body);
2243
- const authHeaders = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_createProof).call(this, subject, payload);
2244
- const headers = (0, nats_core_1.headers)();
2245
- headers.set("session-key", this.auth.sessionKey);
2246
- headers.set("proof", authHeaders.proof);
2247
- headers.set("iat", String(authHeaders.iat));
2248
- headers.set("request-id", authHeaders.requestId);
2249
- const inbox = (0, nats_core_1.createInbox)(`_INBOX.${this.auth.sessionKey.slice(0, 16)}`);
2250
- const sub = this.nats.subscribe(inbox);
2251
- try {
2252
- this.nats.publish(subject, payload, {
2253
- headers,
2254
- reply: inbox,
2255
- });
2256
- await this.nats.flush();
2257
- }
2258
- catch (cause) {
2259
- sub.unsubscribe();
2260
- return (0, result_1.err)(createTransportError({
2261
- code: "trellis.watch.failed",
2262
- message: "Trellis could not start the operation watch.",
2263
- hint: "Retry watching the operation. If it keeps failing, reconnect to Trellis and try again.",
2264
- cause,
2265
- context: { subject },
2266
- }));
2267
- }
2268
- return (0, result_1.ok)((async function* () {
2269
- try {
2270
- for await (const msg of sub) {
2271
- if (msg.headers?.get("status") === "error") {
2272
- yield (0, result_1.err)(createTransportError({
2273
- code: "trellis.watch.failed",
2274
- message: "Trellis stopped the operation watch.",
2275
- hint: "Retry watching the operation. If it keeps happening, reconnect to Trellis and try again.",
2276
- context: { subject, frame: msg.string() },
2277
- }));
2278
- continue;
2279
- }
2280
- const json = safeJson(msg).take();
2281
- if ((0, result_1.isErr)(json)) {
2282
- yield (0, result_1.err)(createTransportError({
2283
- code: "trellis.watch.invalid_response",
2284
- message: "Trellis returned an invalid watch update.",
2285
- hint: "Retry watching the operation. If it keeps happening, reconnect to Trellis and try again.",
2286
- cause: json.error.cause,
2287
- context: { subject },
2288
- }));
2289
- continue;
2290
- }
2291
- yield (0, result_1.ok)(json);
2292
- }
2293
- }
2294
- finally {
2295
- sub.unsubscribe();
2296
- }
2297
- })());
2298
- })());
2299
- };