@qlever-llc/trellis 0.8.3 → 0.9.0-rc.2

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 (583) hide show
  1. package/README.md +1 -1
  2. package/bin/trellis-generate.js +132 -0
  3. package/esm/auth/browser/login.d.ts.map +1 -1
  4. package/esm/auth/browser/login.js +46 -3
  5. package/esm/auth/browser/portal.d.ts.map +1 -1
  6. package/esm/auth/browser/portal.js +5 -1
  7. package/esm/auth/browser/session.d.ts +18 -7
  8. package/esm/auth/browser/session.d.ts.map +1 -1
  9. package/esm/auth/browser/session.js +47 -11
  10. package/esm/auth/browser/storage.d.ts +6 -1
  11. package/esm/auth/browser/storage.d.ts.map +1 -1
  12. package/esm/auth/browser/storage.js +15 -3
  13. package/esm/auth/browser.d.ts +2 -2
  14. package/esm/auth/browser.d.ts.map +1 -1
  15. package/esm/auth/browser.js +1 -1
  16. package/esm/auth/device_activation.d.ts +36 -33
  17. package/esm/auth/device_activation.d.ts.map +1 -1
  18. package/esm/auth/device_activation.js +26 -22
  19. package/esm/auth/mod.d.ts +4 -4
  20. package/esm/auth/mod.d.ts.map +1 -1
  21. package/esm/auth/mod.js +2 -2
  22. package/esm/auth/proof.d.ts +3 -1
  23. package/esm/auth/proof.d.ts.map +1 -1
  24. package/esm/auth/proof.js +21 -15
  25. package/esm/auth/protocol.d.ts +2457 -941
  26. package/esm/auth/protocol.d.ts.map +1 -1
  27. package/esm/auth/protocol.js +747 -375
  28. package/esm/auth/schemas.d.ts +25 -4
  29. package/esm/auth/schemas.d.ts.map +1 -1
  30. package/esm/auth/schemas.js +14 -4
  31. package/esm/auth/session_auth.d.ts +1 -1
  32. package/esm/auth/session_auth.d.ts.map +1 -1
  33. package/esm/auth/session_auth.js +7 -1
  34. package/esm/client_connect.d.ts +2 -0
  35. package/esm/client_connect.d.ts.map +1 -1
  36. package/esm/client_connect.js +76 -15
  37. package/esm/contract.d.ts +3 -0
  38. package/esm/contract.d.ts.map +1 -1
  39. package/esm/contract_support/mod.d.ts +422 -43
  40. package/esm/contract_support/mod.d.ts.map +1 -1
  41. package/esm/contract_support/mod.js +734 -33
  42. package/esm/contract_support/protocol.d.ts +20 -5
  43. package/esm/contract_support/protocol.d.ts.map +1 -1
  44. package/esm/contract_support/protocol.js +18 -10
  45. package/esm/contract_support/runtime.d.ts +11 -0
  46. package/esm/contract_support/runtime.d.ts.map +1 -1
  47. package/esm/contract_support/schema_pointers.d.ts.map +1 -1
  48. package/esm/contract_support/schema_pointers.js +32 -14
  49. package/esm/device.d.ts +2 -0
  50. package/esm/device.d.ts.map +1 -1
  51. package/esm/device.js +3 -0
  52. package/esm/errors/AuthError.d.ts +1 -1
  53. package/esm/errors/AuthError.d.ts.map +1 -1
  54. package/esm/errors/AuthError.js +5 -1
  55. package/esm/errors/index.d.ts +4 -4
  56. package/esm/generated-sdk/auth/api.d.ts +27 -9
  57. package/esm/generated-sdk/auth/api.d.ts.map +1 -1
  58. package/esm/generated-sdk/auth/api.js +16 -590
  59. package/esm/generated-sdk/auth/client.d.ts +91 -85
  60. package/esm/generated-sdk/auth/client.d.ts.map +1 -1
  61. package/esm/generated-sdk/auth/contract.d.ts +1 -1
  62. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  63. package/esm/generated-sdk/auth/contract.js +4 -2
  64. package/esm/generated-sdk/auth/mod.d.ts +1 -0
  65. package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
  66. package/esm/generated-sdk/auth/owned_api.d.ts +3 -0
  67. package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -0
  68. package/esm/generated-sdk/auth/owned_api.js +594 -0
  69. package/esm/generated-sdk/auth/schemas.d.ts +9959 -5160
  70. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  71. package/esm/generated-sdk/auth/schemas.js +136 -137
  72. package/esm/generated-sdk/auth/types.d.ts +2418 -1557
  73. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  74. package/esm/generated-sdk/auth/types.js +1 -1
  75. package/esm/generated-sdk/health/api.d.ts +24 -9
  76. package/esm/generated-sdk/health/api.d.ts.map +1 -1
  77. package/esm/generated-sdk/health/api.js +12 -20
  78. package/esm/generated-sdk/health/client.d.ts +2 -1
  79. package/esm/generated-sdk/health/client.d.ts.map +1 -1
  80. package/esm/generated-sdk/health/contract.d.ts.map +1 -1
  81. package/esm/generated-sdk/health/contract.js +2 -0
  82. package/esm/generated-sdk/health/owned_api.d.ts +3 -0
  83. package/esm/generated-sdk/health/owned_api.d.ts.map +1 -0
  84. package/esm/generated-sdk/health/owned_api.js +16 -0
  85. package/esm/generated-sdk/health/types.d.ts +2 -0
  86. package/esm/generated-sdk/health/types.d.ts.map +1 -1
  87. package/esm/generated-sdk/jobs/api.d.ts +33 -9
  88. package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
  89. package/esm/generated-sdk/jobs/api.js +22 -87
  90. package/esm/generated-sdk/jobs/client.d.ts +9 -2
  91. package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
  92. package/esm/generated-sdk/jobs/contract.d.ts +1 -1
  93. package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
  94. package/esm/generated-sdk/jobs/contract.js +4 -2
  95. package/esm/generated-sdk/jobs/owned_api.d.ts +3 -0
  96. package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -0
  97. package/esm/generated-sdk/jobs/owned_api.js +118 -0
  98. package/esm/generated-sdk/jobs/schemas.d.ts +336 -123
  99. package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
  100. package/esm/generated-sdk/jobs/schemas.js +17 -15
  101. package/esm/generated-sdk/jobs/types.d.ts +144 -34
  102. package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
  103. package/esm/generated-sdk/jobs/types.js +36 -1
  104. package/esm/generated-sdk/state/api.d.ts +27 -9
  105. package/esm/generated-sdk/state/api.d.ts.map +1 -1
  106. package/esm/generated-sdk/state/api.js +16 -71
  107. package/esm/generated-sdk/state/client.d.ts +4 -2
  108. package/esm/generated-sdk/state/client.d.ts.map +1 -1
  109. package/esm/generated-sdk/state/contract.d.ts +1 -1
  110. package/esm/generated-sdk/state/contract.d.ts.map +1 -1
  111. package/esm/generated-sdk/state/contract.js +4 -2
  112. package/esm/generated-sdk/state/owned_api.d.ts +3 -0
  113. package/esm/generated-sdk/state/owned_api.d.ts.map +1 -0
  114. package/esm/generated-sdk/state/owned_api.js +66 -0
  115. package/esm/generated-sdk/state/schemas.d.ts +264 -284
  116. package/esm/generated-sdk/state/schemas.d.ts.map +1 -1
  117. package/esm/generated-sdk/state/schemas.js +6 -6
  118. package/esm/generated-sdk/state/types.d.ts +24 -23
  119. package/esm/generated-sdk/state/types.d.ts.map +1 -1
  120. package/esm/generated-sdk/state/types.js +1 -1
  121. package/esm/generated-sdk/trellis-core/api.d.ts +27 -9
  122. package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
  123. package/esm/generated-sdk/trellis-core/api.js +16 -39
  124. package/esm/generated-sdk/trellis-core/client.d.ts +5 -2
  125. package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
  126. package/esm/generated-sdk/trellis-core/contract.d.ts +1 -1
  127. package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  128. package/esm/generated-sdk/trellis-core/contract.js +4 -2
  129. package/esm/generated-sdk/trellis-core/owned_api.d.ts +3 -0
  130. package/esm/generated-sdk/trellis-core/owned_api.d.ts.map +1 -0
  131. package/esm/generated-sdk/trellis-core/owned_api.js +42 -0
  132. package/esm/generated-sdk/trellis-core/schemas.d.ts +259 -11
  133. package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  134. package/esm/generated-sdk/trellis-core/schemas.js +5 -3
  135. package/esm/generated-sdk/trellis-core/types.d.ts +56 -1
  136. package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
  137. package/esm/generated-sdk/trellis-core/types.js +1 -1
  138. package/esm/helpers.d.ts.map +1 -1
  139. package/esm/index.d.ts +4 -3
  140. package/esm/index.d.ts.map +1 -1
  141. package/esm/index.js +1 -0
  142. package/esm/jobs.d.ts +10 -1
  143. package/esm/jobs.d.ts.map +1 -1
  144. package/esm/jobs.js +16 -1
  145. package/esm/kv.d.ts.map +1 -1
  146. package/esm/kv.js +10 -4
  147. package/esm/models/auth/rpc/Logout.d.ts +4 -4
  148. package/esm/models/auth/rpc/Logout.d.ts.map +1 -1
  149. package/esm/models/auth/rpc/Logout.js +2 -2
  150. package/esm/models/trellis/Page.d.ts +2 -0
  151. package/esm/models/trellis/Page.d.ts.map +1 -0
  152. package/esm/models/trellis/Page.js +1 -0
  153. package/esm/models/trellis/State.d.ts +1 -0
  154. package/esm/models/trellis/State.d.ts.map +1 -1
  155. package/esm/models/trellis/State.js +1 -0
  156. package/esm/models/trellis/rpc/StateList.d.ts +9 -12
  157. package/esm/models/trellis/rpc/StateList.d.ts.map +1 -1
  158. package/esm/models/trellis/rpc/StateList.js +16 -18
  159. package/esm/npm/src/auth/browser/login.d.ts.map +1 -1
  160. package/esm/npm/src/auth/browser/login.js +46 -3
  161. package/esm/npm/src/auth/browser/portal.d.ts.map +1 -1
  162. package/esm/npm/src/auth/browser/portal.js +5 -1
  163. package/esm/npm/src/auth/browser/session.d.ts +18 -7
  164. package/esm/npm/src/auth/browser/session.d.ts.map +1 -1
  165. package/esm/npm/src/auth/browser/session.js +47 -11
  166. package/esm/npm/src/auth/browser/storage.d.ts +6 -1
  167. package/esm/npm/src/auth/browser/storage.d.ts.map +1 -1
  168. package/esm/npm/src/auth/browser/storage.js +15 -3
  169. package/esm/npm/src/auth/browser.d.ts +2 -2
  170. package/esm/npm/src/auth/browser.d.ts.map +1 -1
  171. package/esm/npm/src/auth/browser.js +1 -1
  172. package/esm/npm/src/auth/device_activation.d.ts +36 -33
  173. package/esm/npm/src/auth/device_activation.d.ts.map +1 -1
  174. package/esm/npm/src/auth/device_activation.js +26 -22
  175. package/esm/npm/src/auth/mod.d.ts +4 -4
  176. package/esm/npm/src/auth/mod.d.ts.map +1 -1
  177. package/esm/npm/src/auth/mod.js +2 -2
  178. package/esm/npm/src/auth/proof.d.ts +3 -1
  179. package/esm/npm/src/auth/proof.d.ts.map +1 -1
  180. package/esm/npm/src/auth/proof.js +21 -15
  181. package/esm/npm/src/auth/protocol.d.ts +2457 -941
  182. package/esm/npm/src/auth/protocol.d.ts.map +1 -1
  183. package/esm/npm/src/auth/protocol.js +747 -375
  184. package/esm/npm/src/auth/schemas.d.ts +25 -4
  185. package/esm/npm/src/auth/schemas.d.ts.map +1 -1
  186. package/esm/npm/src/auth/schemas.js +14 -4
  187. package/esm/npm/src/auth/session_auth.d.ts +1 -1
  188. package/esm/npm/src/auth/session_auth.d.ts.map +1 -1
  189. package/esm/npm/src/auth/session_auth.js +7 -1
  190. package/esm/npm/src/client_connect.d.ts +2 -0
  191. package/esm/npm/src/client_connect.d.ts.map +1 -1
  192. package/esm/npm/src/client_connect.js +76 -15
  193. package/esm/npm/src/contract.d.ts +3 -0
  194. package/esm/npm/src/contract.d.ts.map +1 -1
  195. package/esm/npm/src/contract_support/mod.d.ts +422 -43
  196. package/esm/npm/src/contract_support/mod.d.ts.map +1 -1
  197. package/esm/npm/src/contract_support/mod.js +734 -33
  198. package/esm/npm/src/contract_support/protocol.d.ts +20 -5
  199. package/esm/npm/src/contract_support/protocol.d.ts.map +1 -1
  200. package/esm/npm/src/contract_support/protocol.js +18 -10
  201. package/esm/npm/src/contract_support/runtime.d.ts +11 -0
  202. package/esm/npm/src/contract_support/runtime.d.ts.map +1 -1
  203. package/esm/npm/src/contract_support/schema_pointers.d.ts.map +1 -1
  204. package/esm/npm/src/contract_support/schema_pointers.js +32 -14
  205. package/esm/npm/src/device/deno.d.ts.map +1 -1
  206. package/esm/npm/src/device/deno.js +6 -0
  207. package/esm/npm/src/device.d.ts +2 -0
  208. package/esm/npm/src/device.d.ts.map +1 -1
  209. package/esm/npm/src/device.js +3 -0
  210. package/esm/npm/src/errors/AuthError.d.ts +1 -1
  211. package/esm/npm/src/errors/AuthError.d.ts.map +1 -1
  212. package/esm/npm/src/errors/AuthError.js +5 -1
  213. package/esm/npm/src/errors/index.d.ts +4 -4
  214. package/esm/npm/src/helpers.d.ts.map +1 -1
  215. package/esm/npm/src/index.d.ts +4 -3
  216. package/esm/npm/src/index.d.ts.map +1 -1
  217. package/esm/npm/src/index.js +1 -0
  218. package/esm/npm/src/jobs.d.ts +10 -1
  219. package/esm/npm/src/jobs.d.ts.map +1 -1
  220. package/esm/npm/src/jobs.js +16 -1
  221. package/esm/npm/src/kv.d.ts.map +1 -1
  222. package/esm/npm/src/kv.js +10 -4
  223. package/esm/npm/src/models/auth/rpc/Logout.d.ts +4 -4
  224. package/esm/npm/src/models/auth/rpc/Logout.d.ts.map +1 -1
  225. package/esm/npm/src/models/auth/rpc/Logout.js +2 -2
  226. package/esm/npm/src/models/trellis/Page.d.ts +2 -0
  227. package/esm/npm/src/models/trellis/Page.d.ts.map +1 -0
  228. package/esm/npm/src/models/trellis/Page.js +1 -0
  229. package/esm/npm/src/models/trellis/State.d.ts +1 -0
  230. package/esm/npm/src/models/trellis/State.d.ts.map +1 -1
  231. package/esm/npm/src/models/trellis/State.js +1 -0
  232. package/esm/npm/src/models/trellis/rpc/StateList.d.ts +9 -12
  233. package/esm/npm/src/models/trellis/rpc/StateList.d.ts.map +1 -1
  234. package/esm/npm/src/models/trellis/rpc/StateList.js +16 -18
  235. package/esm/npm/src/operations.d.ts +16 -7
  236. package/esm/npm/src/operations.d.ts.map +1 -1
  237. package/esm/npm/src/operations.js +84 -19
  238. package/esm/npm/src/runtime_transport.d.ts +2 -0
  239. package/esm/npm/src/runtime_transport.d.ts.map +1 -1
  240. package/esm/npm/src/runtime_transport.js +1 -0
  241. package/esm/npm/src/server/internal_jobs/active-job.d.ts +2 -1
  242. package/esm/npm/src/server/internal_jobs/active-job.d.ts.map +1 -1
  243. package/esm/npm/src/server/internal_jobs/active-job.js +3 -0
  244. package/esm/npm/src/server/internal_jobs/job-manager.d.ts +4 -1
  245. package/esm/npm/src/server/internal_jobs/job-manager.d.ts.map +1 -1
  246. package/esm/npm/src/server/internal_jobs/job-manager.js +61 -1
  247. package/esm/npm/src/server/internal_jobs/projection.js +1 -0
  248. package/esm/npm/src/server/internal_jobs/runtime-worker.d.ts +13 -1
  249. package/esm/npm/src/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  250. package/esm/npm/src/server/internal_jobs/runtime-worker.js +73 -13
  251. package/esm/npm/src/server/internal_jobs/types.d.ts +19 -0
  252. package/esm/npm/src/server/internal_jobs/types.d.ts.map +1 -1
  253. package/esm/npm/src/server/internal_jobs/types.js +10 -0
  254. package/esm/npm/src/server/runtime.d.ts +1 -0
  255. package/esm/npm/src/server/runtime.d.ts.map +1 -1
  256. package/esm/npm/src/server/service.d.ts +10 -1
  257. package/esm/npm/src/server/service.d.ts.map +1 -1
  258. package/esm/npm/src/server/service.js +190 -64
  259. package/esm/npm/src/server/transfer.d.ts.map +1 -1
  260. package/esm/npm/src/server/transfer.js +4 -0
  261. package/esm/npm/src/server.d.ts.map +1 -1
  262. package/esm/npm/src/server.js +337 -34
  263. package/esm/npm/src/store.d.ts +8 -1
  264. package/esm/npm/src/store.d.ts.map +1 -1
  265. package/esm/npm/src/store.js +46 -8
  266. package/esm/npm/src/transfer.d.ts +3 -0
  267. package/esm/npm/src/transfer.d.ts.map +1 -1
  268. package/esm/npm/src/transfer.js +20 -30
  269. package/esm/npm/src/trellis.d.ts +85 -22
  270. package/esm/npm/src/trellis.d.ts.map +1 -1
  271. package/esm/npm/src/trellis.js +525 -61
  272. package/esm/operations.d.ts +16 -7
  273. package/esm/operations.d.ts.map +1 -1
  274. package/esm/operations.js +84 -19
  275. package/esm/runtime_transport.d.ts +2 -0
  276. package/esm/runtime_transport.d.ts.map +1 -1
  277. package/esm/runtime_transport.js +1 -0
  278. package/esm/store.d.ts +8 -1
  279. package/esm/store.d.ts.map +1 -1
  280. package/esm/store.js +46 -8
  281. package/esm/transfer.d.ts +3 -0
  282. package/esm/transfer.d.ts.map +1 -1
  283. package/esm/transfer.js +20 -30
  284. package/esm/trellis.d.ts +85 -22
  285. package/esm/trellis.d.ts.map +1 -1
  286. package/esm/trellis.js +525 -61
  287. package/package.json +6 -4
  288. package/script/auth/browser/login.d.ts.map +1 -1
  289. package/script/auth/browser/login.js +46 -3
  290. package/script/auth/browser/portal.d.ts.map +1 -1
  291. package/script/auth/browser/portal.js +5 -1
  292. package/script/auth/browser/session.d.ts +18 -7
  293. package/script/auth/browser/session.d.ts.map +1 -1
  294. package/script/auth/browser/session.js +47 -11
  295. package/script/auth/browser/storage.d.ts +6 -1
  296. package/script/auth/browser/storage.d.ts.map +1 -1
  297. package/script/auth/browser/storage.js +15 -3
  298. package/script/auth/browser.d.ts +2 -2
  299. package/script/auth/browser.d.ts.map +1 -1
  300. package/script/auth/browser.js +2 -1
  301. package/script/auth/device_activation.d.ts +36 -33
  302. package/script/auth/device_activation.d.ts.map +1 -1
  303. package/script/auth/device_activation.js +25 -21
  304. package/script/auth/mod.d.ts +4 -4
  305. package/script/auth/mod.d.ts.map +1 -1
  306. package/script/auth/mod.js +132 -137
  307. package/script/auth/proof.d.ts +3 -1
  308. package/script/auth/proof.d.ts.map +1 -1
  309. package/script/auth/proof.js +21 -15
  310. package/script/auth/protocol.d.ts +2457 -941
  311. package/script/auth/protocol.d.ts.map +1 -1
  312. package/script/auth/protocol.js +749 -377
  313. package/script/auth/schemas.d.ts +25 -4
  314. package/script/auth/schemas.d.ts.map +1 -1
  315. package/script/auth/schemas.js +16 -5
  316. package/script/auth/session_auth.d.ts +1 -1
  317. package/script/auth/session_auth.d.ts.map +1 -1
  318. package/script/auth/session_auth.js +7 -1
  319. package/script/client_connect.d.ts +2 -0
  320. package/script/client_connect.d.ts.map +1 -1
  321. package/script/client_connect.js +76 -15
  322. package/script/contract.d.ts +3 -0
  323. package/script/contract.d.ts.map +1 -1
  324. package/script/contract_support/mod.d.ts +422 -43
  325. package/script/contract_support/mod.d.ts.map +1 -1
  326. package/script/contract_support/mod.js +757 -51
  327. package/script/contract_support/protocol.d.ts +20 -5
  328. package/script/contract_support/protocol.d.ts.map +1 -1
  329. package/script/contract_support/protocol.js +20 -11
  330. package/script/contract_support/runtime.d.ts +11 -0
  331. package/script/contract_support/runtime.d.ts.map +1 -1
  332. package/script/contract_support/schema_pointers.d.ts.map +1 -1
  333. package/script/contract_support/schema_pointers.js +32 -14
  334. package/script/device.d.ts +2 -0
  335. package/script/device.d.ts.map +1 -1
  336. package/script/device.js +3 -0
  337. package/script/errors/AuthError.d.ts +1 -1
  338. package/script/errors/AuthError.d.ts.map +1 -1
  339. package/script/errors/AuthError.js +5 -1
  340. package/script/errors/index.d.ts +4 -4
  341. package/script/generated-sdk/auth/api.d.ts +27 -9
  342. package/script/generated-sdk/auth/api.d.ts.map +1 -1
  343. package/script/generated-sdk/auth/api.js +17 -591
  344. package/script/generated-sdk/auth/client.d.ts +91 -85
  345. package/script/generated-sdk/auth/client.d.ts.map +1 -1
  346. package/script/generated-sdk/auth/contract.d.ts +1 -1
  347. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  348. package/script/generated-sdk/auth/contract.js +4 -2
  349. package/script/generated-sdk/auth/mod.d.ts +1 -0
  350. package/script/generated-sdk/auth/mod.d.ts.map +1 -1
  351. package/script/generated-sdk/auth/owned_api.d.ts +3 -0
  352. package/script/generated-sdk/auth/owned_api.d.ts.map +1 -0
  353. package/script/generated-sdk/auth/owned_api.js +597 -0
  354. package/script/generated-sdk/auth/schemas.d.ts +9959 -5160
  355. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  356. package/script/generated-sdk/auth/schemas.js +139 -140
  357. package/script/generated-sdk/auth/types.d.ts +2418 -1557
  358. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  359. package/script/generated-sdk/auth/types.js +1 -1
  360. package/script/generated-sdk/health/api.d.ts +24 -9
  361. package/script/generated-sdk/health/api.d.ts.map +1 -1
  362. package/script/generated-sdk/health/api.js +13 -21
  363. package/script/generated-sdk/health/client.d.ts +2 -1
  364. package/script/generated-sdk/health/client.d.ts.map +1 -1
  365. package/script/generated-sdk/health/contract.d.ts.map +1 -1
  366. package/script/generated-sdk/health/contract.js +2 -0
  367. package/script/generated-sdk/health/owned_api.d.ts +3 -0
  368. package/script/generated-sdk/health/owned_api.d.ts.map +1 -0
  369. package/script/generated-sdk/health/owned_api.js +19 -0
  370. package/script/generated-sdk/health/types.d.ts +2 -0
  371. package/script/generated-sdk/health/types.d.ts.map +1 -1
  372. package/script/generated-sdk/jobs/api.d.ts +33 -9
  373. package/script/generated-sdk/jobs/api.d.ts.map +1 -1
  374. package/script/generated-sdk/jobs/api.js +23 -88
  375. package/script/generated-sdk/jobs/client.d.ts +9 -2
  376. package/script/generated-sdk/jobs/client.d.ts.map +1 -1
  377. package/script/generated-sdk/jobs/contract.d.ts +1 -1
  378. package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
  379. package/script/generated-sdk/jobs/contract.js +4 -2
  380. package/script/generated-sdk/jobs/owned_api.d.ts +3 -0
  381. package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -0
  382. package/script/generated-sdk/jobs/owned_api.js +154 -0
  383. package/script/generated-sdk/jobs/schemas.d.ts +336 -123
  384. package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
  385. package/script/generated-sdk/jobs/schemas.js +18 -16
  386. package/script/generated-sdk/jobs/types.d.ts +144 -34
  387. package/script/generated-sdk/jobs/types.d.ts.map +1 -1
  388. package/script/generated-sdk/jobs/types.js +38 -2
  389. package/script/generated-sdk/state/api.d.ts +27 -9
  390. package/script/generated-sdk/state/api.d.ts.map +1 -1
  391. package/script/generated-sdk/state/api.js +17 -72
  392. package/script/generated-sdk/state/client.d.ts +4 -2
  393. package/script/generated-sdk/state/client.d.ts.map +1 -1
  394. package/script/generated-sdk/state/contract.d.ts +1 -1
  395. package/script/generated-sdk/state/contract.d.ts.map +1 -1
  396. package/script/generated-sdk/state/contract.js +4 -2
  397. package/script/generated-sdk/state/owned_api.d.ts +3 -0
  398. package/script/generated-sdk/state/owned_api.d.ts.map +1 -0
  399. package/script/generated-sdk/state/owned_api.js +69 -0
  400. package/script/generated-sdk/state/schemas.d.ts +264 -284
  401. package/script/generated-sdk/state/schemas.d.ts.map +1 -1
  402. package/script/generated-sdk/state/schemas.js +6 -6
  403. package/script/generated-sdk/state/types.d.ts +24 -23
  404. package/script/generated-sdk/state/types.d.ts.map +1 -1
  405. package/script/generated-sdk/state/types.js +1 -1
  406. package/script/generated-sdk/trellis-core/api.d.ts +27 -9
  407. package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
  408. package/script/generated-sdk/trellis-core/api.js +17 -40
  409. package/script/generated-sdk/trellis-core/client.d.ts +5 -2
  410. package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
  411. package/script/generated-sdk/trellis-core/contract.d.ts +1 -1
  412. package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  413. package/script/generated-sdk/trellis-core/contract.js +4 -2
  414. package/script/generated-sdk/trellis-core/owned_api.d.ts +3 -0
  415. package/script/generated-sdk/trellis-core/owned_api.d.ts.map +1 -0
  416. package/script/generated-sdk/trellis-core/owned_api.js +45 -0
  417. package/script/generated-sdk/trellis-core/schemas.d.ts +259 -11
  418. package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  419. package/script/generated-sdk/trellis-core/schemas.js +6 -4
  420. package/script/generated-sdk/trellis-core/types.d.ts +56 -1
  421. package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
  422. package/script/generated-sdk/trellis-core/types.js +1 -1
  423. package/script/helpers.d.ts.map +1 -1
  424. package/script/index.d.ts +4 -3
  425. package/script/index.d.ts.map +1 -1
  426. package/script/index.js +5 -2
  427. package/script/jobs.d.ts +10 -1
  428. package/script/jobs.d.ts.map +1 -1
  429. package/script/jobs.js +17 -2
  430. package/script/kv.d.ts.map +1 -1
  431. package/script/kv.js +10 -4
  432. package/script/models/auth/rpc/Logout.d.ts +4 -4
  433. package/script/models/auth/rpc/Logout.d.ts.map +1 -1
  434. package/script/models/auth/rpc/Logout.js +3 -3
  435. package/script/models/trellis/Page.d.ts +2 -0
  436. package/script/models/trellis/Page.d.ts.map +1 -0
  437. package/script/models/trellis/Page.js +6 -0
  438. package/script/models/trellis/State.d.ts +1 -0
  439. package/script/models/trellis/State.d.ts.map +1 -1
  440. package/script/models/trellis/State.js +1 -0
  441. package/script/models/trellis/rpc/StateList.d.ts +9 -12
  442. package/script/models/trellis/rpc/StateList.d.ts.map +1 -1
  443. package/script/models/trellis/rpc/StateList.js +16 -18
  444. package/script/npm/src/auth/browser/login.d.ts.map +1 -1
  445. package/script/npm/src/auth/browser/login.js +46 -3
  446. package/script/npm/src/auth/browser/portal.d.ts.map +1 -1
  447. package/script/npm/src/auth/browser/portal.js +5 -1
  448. package/script/npm/src/auth/browser/session.d.ts +18 -7
  449. package/script/npm/src/auth/browser/session.d.ts.map +1 -1
  450. package/script/npm/src/auth/browser/session.js +47 -11
  451. package/script/npm/src/auth/browser/storage.d.ts +6 -1
  452. package/script/npm/src/auth/browser/storage.d.ts.map +1 -1
  453. package/script/npm/src/auth/browser/storage.js +15 -3
  454. package/script/npm/src/auth/browser.d.ts +2 -2
  455. package/script/npm/src/auth/browser.d.ts.map +1 -1
  456. package/script/npm/src/auth/browser.js +2 -1
  457. package/script/npm/src/auth/device_activation.d.ts +36 -33
  458. package/script/npm/src/auth/device_activation.d.ts.map +1 -1
  459. package/script/npm/src/auth/device_activation.js +25 -21
  460. package/script/npm/src/auth/mod.d.ts +4 -4
  461. package/script/npm/src/auth/mod.d.ts.map +1 -1
  462. package/script/npm/src/auth/mod.js +132 -137
  463. package/script/npm/src/auth/proof.d.ts +3 -1
  464. package/script/npm/src/auth/proof.d.ts.map +1 -1
  465. package/script/npm/src/auth/proof.js +21 -15
  466. package/script/npm/src/auth/protocol.d.ts +2457 -941
  467. package/script/npm/src/auth/protocol.d.ts.map +1 -1
  468. package/script/npm/src/auth/protocol.js +749 -377
  469. package/script/npm/src/auth/schemas.d.ts +25 -4
  470. package/script/npm/src/auth/schemas.d.ts.map +1 -1
  471. package/script/npm/src/auth/schemas.js +16 -5
  472. package/script/npm/src/auth/session_auth.d.ts +1 -1
  473. package/script/npm/src/auth/session_auth.d.ts.map +1 -1
  474. package/script/npm/src/auth/session_auth.js +7 -1
  475. package/script/npm/src/client_connect.d.ts +2 -0
  476. package/script/npm/src/client_connect.d.ts.map +1 -1
  477. package/script/npm/src/client_connect.js +76 -15
  478. package/script/npm/src/contract.d.ts +3 -0
  479. package/script/npm/src/contract.d.ts.map +1 -1
  480. package/script/npm/src/contract_support/mod.d.ts +422 -43
  481. package/script/npm/src/contract_support/mod.d.ts.map +1 -1
  482. package/script/npm/src/contract_support/mod.js +757 -51
  483. package/script/npm/src/contract_support/protocol.d.ts +20 -5
  484. package/script/npm/src/contract_support/protocol.d.ts.map +1 -1
  485. package/script/npm/src/contract_support/protocol.js +20 -11
  486. package/script/npm/src/contract_support/runtime.d.ts +11 -0
  487. package/script/npm/src/contract_support/runtime.d.ts.map +1 -1
  488. package/script/npm/src/contract_support/schema_pointers.d.ts.map +1 -1
  489. package/script/npm/src/contract_support/schema_pointers.js +32 -14
  490. package/script/npm/src/device/deno.d.ts.map +1 -1
  491. package/script/npm/src/device/deno.js +6 -0
  492. package/script/npm/src/device.d.ts +2 -0
  493. package/script/npm/src/device.d.ts.map +1 -1
  494. package/script/npm/src/device.js +3 -0
  495. package/script/npm/src/errors/AuthError.d.ts +1 -1
  496. package/script/npm/src/errors/AuthError.d.ts.map +1 -1
  497. package/script/npm/src/errors/AuthError.js +5 -1
  498. package/script/npm/src/errors/index.d.ts +4 -4
  499. package/script/npm/src/helpers.d.ts.map +1 -1
  500. package/script/npm/src/index.d.ts +4 -3
  501. package/script/npm/src/index.d.ts.map +1 -1
  502. package/script/npm/src/index.js +5 -2
  503. package/script/npm/src/jobs.d.ts +10 -1
  504. package/script/npm/src/jobs.d.ts.map +1 -1
  505. package/script/npm/src/jobs.js +17 -2
  506. package/script/npm/src/kv.d.ts.map +1 -1
  507. package/script/npm/src/kv.js +10 -4
  508. package/script/npm/src/models/auth/rpc/Logout.d.ts +4 -4
  509. package/script/npm/src/models/auth/rpc/Logout.d.ts.map +1 -1
  510. package/script/npm/src/models/auth/rpc/Logout.js +3 -3
  511. package/script/npm/src/models/trellis/Page.d.ts +2 -0
  512. package/script/npm/src/models/trellis/Page.d.ts.map +1 -0
  513. package/script/npm/src/models/trellis/Page.js +6 -0
  514. package/script/npm/src/models/trellis/State.d.ts +1 -0
  515. package/script/npm/src/models/trellis/State.d.ts.map +1 -1
  516. package/script/npm/src/models/trellis/State.js +1 -0
  517. package/script/npm/src/models/trellis/rpc/StateList.d.ts +9 -12
  518. package/script/npm/src/models/trellis/rpc/StateList.d.ts.map +1 -1
  519. package/script/npm/src/models/trellis/rpc/StateList.js +16 -18
  520. package/script/npm/src/operations.d.ts +16 -7
  521. package/script/npm/src/operations.d.ts.map +1 -1
  522. package/script/npm/src/operations.js +84 -19
  523. package/script/npm/src/runtime_transport.d.ts +2 -0
  524. package/script/npm/src/runtime_transport.d.ts.map +1 -1
  525. package/script/npm/src/runtime_transport.js +2 -1
  526. package/script/npm/src/server/internal_jobs/active-job.d.ts +2 -1
  527. package/script/npm/src/server/internal_jobs/active-job.d.ts.map +1 -1
  528. package/script/npm/src/server/internal_jobs/active-job.js +3 -0
  529. package/script/npm/src/server/internal_jobs/job-manager.d.ts +4 -1
  530. package/script/npm/src/server/internal_jobs/job-manager.d.ts.map +1 -1
  531. package/script/npm/src/server/internal_jobs/job-manager.js +61 -1
  532. package/script/npm/src/server/internal_jobs/projection.js +1 -0
  533. package/script/npm/src/server/internal_jobs/runtime-worker.d.ts +13 -1
  534. package/script/npm/src/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  535. package/script/npm/src/server/internal_jobs/runtime-worker.js +74 -13
  536. package/script/npm/src/server/internal_jobs/types.d.ts +19 -0
  537. package/script/npm/src/server/internal_jobs/types.d.ts.map +1 -1
  538. package/script/npm/src/server/internal_jobs/types.js +11 -1
  539. package/script/npm/src/server/runtime.d.ts +1 -0
  540. package/script/npm/src/server/runtime.d.ts.map +1 -1
  541. package/script/npm/src/server/service.d.ts +10 -1
  542. package/script/npm/src/server/service.d.ts.map +1 -1
  543. package/script/npm/src/server/service.js +188 -62
  544. package/script/npm/src/server/transfer.d.ts.map +1 -1
  545. package/script/npm/src/server/transfer.js +4 -0
  546. package/script/npm/src/server.d.ts.map +1 -1
  547. package/script/npm/src/server.js +336 -33
  548. package/script/npm/src/store.d.ts +8 -1
  549. package/script/npm/src/store.d.ts.map +1 -1
  550. package/script/npm/src/store.js +46 -8
  551. package/script/npm/src/transfer.d.ts +3 -0
  552. package/script/npm/src/transfer.d.ts.map +1 -1
  553. package/script/npm/src/transfer.js +19 -29
  554. package/script/npm/src/trellis.d.ts +85 -22
  555. package/script/npm/src/trellis.d.ts.map +1 -1
  556. package/script/npm/src/trellis.js +525 -61
  557. package/script/operations.d.ts +16 -7
  558. package/script/operations.d.ts.map +1 -1
  559. package/script/operations.js +84 -19
  560. package/script/runtime_transport.d.ts +2 -0
  561. package/script/runtime_transport.d.ts.map +1 -1
  562. package/script/runtime_transport.js +2 -1
  563. package/script/store.d.ts +8 -1
  564. package/script/store.d.ts.map +1 -1
  565. package/script/store.js +46 -8
  566. package/script/transfer.d.ts +3 -0
  567. package/script/transfer.d.ts.map +1 -1
  568. package/script/transfer.js +19 -29
  569. package/script/trellis.d.ts +85 -22
  570. package/script/trellis.d.ts.map +1 -1
  571. package/script/trellis.js +525 -61
  572. package/esm/models/trellis/Paginate.d.ts +0 -7
  573. package/esm/models/trellis/Paginate.d.ts.map +0 -1
  574. package/esm/models/trellis/Paginate.js +0 -5
  575. package/esm/npm/src/models/trellis/Paginate.d.ts +0 -7
  576. package/esm/npm/src/models/trellis/Paginate.d.ts.map +0 -1
  577. package/esm/npm/src/models/trellis/Paginate.js +0 -5
  578. package/script/models/trellis/Paginate.d.ts +0 -7
  579. package/script/models/trellis/Paginate.d.ts.map +0 -1
  580. package/script/models/trellis/Paginate.js +0 -11
  581. package/script/npm/src/models/trellis/Paginate.d.ts +0 -7
  582. package/script/npm/src/models/trellis/Paginate.d.ts.map +0 -1
  583. package/script/npm/src/models/trellis/Paginate.js +0 -11
package/README.md CHANGED
@@ -16,7 +16,7 @@ const client = await TrellisClient.connect({
16
16
  trellisUrl: "https://trellis.example.com",
17
17
  contract: app,
18
18
  });
19
- const meResult = await client.request("Auth.Me", {});
19
+ const meResult = await client.request("Auth.Sessions.Me", {});
20
20
  const me = meResult.orThrow();
21
21
  ```
22
22
 
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env node
2
+ const { createHash } = require("node:crypto");
3
+ const fs = require("node:fs");
4
+ const https = require("node:https");
5
+ const os = require("node:os");
6
+ const path = require("node:path");
7
+ const { spawnSync } = require("node:child_process");
8
+
9
+ const REPO_OWNER = "qlever-llc";
10
+ const REPO_NAME = "trellis";
11
+ const BIN_NAME = "trellis-generate";
12
+ const SUPPORTED_TARGETS = new Set([
13
+ "x86_64-unknown-linux-gnu",
14
+ "aarch64-unknown-linux-gnu",
15
+ "x86_64-apple-darwin",
16
+ "aarch64-apple-darwin",
17
+ ]);
18
+
19
+ main().catch((error) => {
20
+ console.error(error);
21
+ process.exit(1);
22
+ });
23
+
24
+ async function main() {
25
+ const packageVersion = readPackageVersion();
26
+ const binary = (process.env.TRELLIS_GENERATE_BIN || "").trim() ||
27
+ await ensureCachedReleaseBinary(packageVersion);
28
+ verifyBinaryVersion(binary, packageVersion);
29
+ const status = spawnSync(binary, process.argv.slice(2), { stdio: "inherit" });
30
+ if (status.error) throw status.error;
31
+ process.exit(status.status ?? 1);
32
+ }
33
+
34
+ function readPackageVersion() {
35
+ const manifestPath = path.resolve(__dirname, "../package.json");
36
+ const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
37
+ if (typeof manifest.version !== "string" || !manifest.version.trim()) {
38
+ throw new Error("@qlever-llc/trellis package manifest does not declare a version");
39
+ }
40
+ return manifest.version.trim();
41
+ }
42
+
43
+ async function ensureCachedReleaseBinary(version) {
44
+ const target = releaseTarget();
45
+ const cacheDir = path.join(cacheRoot(), version, target);
46
+ const binary = path.join(cacheDir, BIN_NAME);
47
+ if (fs.existsSync(binary)) return binary;
48
+
49
+ fs.mkdirSync(cacheDir, { recursive: true });
50
+ const tag = "v" + version;
51
+ const archiveName = BIN_NAME + "-" + tag + "-" + target + ".tar.gz";
52
+ const checksumName = "checksum-" + tag + "-" + target + "-" + BIN_NAME + ".sha256";
53
+ const releaseBase = "https://github.com/" + REPO_OWNER + "/" + REPO_NAME + "/releases/download/" + tag;
54
+ const [archive, checksumText] = await Promise.all([
55
+ downloadBytes(releaseBase + "/" + archiveName),
56
+ downloadText(releaseBase + "/" + checksumName),
57
+ ]);
58
+ verifyChecksum(archive, checksumText, archiveName);
59
+
60
+ const archivePath = path.join(cacheDir, archiveName);
61
+ fs.writeFileSync(archivePath, archive);
62
+ const extract = spawnSync("tar", ["-xzf", archivePath, "-C", cacheDir], { stdio: "inherit" });
63
+ if (extract.error) throw extract.error;
64
+ if (extract.status !== 0) throw new Error("tar failed with exit code " + extract.status);
65
+ fs.chmodSync(binary, 0o755);
66
+ return binary;
67
+ }
68
+
69
+ function releaseTarget() {
70
+ const arch = os.arch() === "x64" ? "x86_64" : os.arch() === "arm64" ? "aarch64" : os.arch();
71
+ const platform = os.platform() === "darwin" ? "apple-darwin" : os.platform() === "linux" ? "unknown-linux-gnu" : undefined;
72
+ const target = platform ? arch + "-" + platform : undefined;
73
+ if (target && SUPPORTED_TARGETS.has(target)) return target;
74
+ throw new Error("no " + BIN_NAME + " release binary is available for " + os.platform() + " " + os.arch());
75
+ }
76
+
77
+ function cacheRoot() {
78
+ if ((process.env.TRELLIS_GENERATE_CACHE || "").trim()) return process.env.TRELLIS_GENERATE_CACHE.trim();
79
+ if ((process.env.XDG_CACHE_HOME || "").trim()) return path.join(process.env.XDG_CACHE_HOME.trim(), "trellis", BIN_NAME);
80
+ if ((process.env.LOCALAPPDATA || "").trim()) return path.join(process.env.LOCALAPPDATA.trim(), "trellis", BIN_NAME);
81
+ if ((process.env.HOME || "").trim()) return path.join(process.env.HOME.trim(), ".cache", "trellis", BIN_NAME);
82
+ throw new Error("HOME, LOCALAPPDATA, or TRELLIS_GENERATE_CACHE must be set to cache trellis-generate");
83
+ }
84
+
85
+ function downloadBytes(url) {
86
+ return new Promise((resolve, reject) => {
87
+ https.get(url, (response) => {
88
+ if (response.statusCode >= 300 && response.statusCode < 400 && response.headers.location) {
89
+ resolve(downloadBytes(response.headers.location));
90
+ return;
91
+ }
92
+ if (response.statusCode !== 200) {
93
+ reject(new Error("failed to download " + url + ": HTTP " + response.statusCode));
94
+ response.resume();
95
+ return;
96
+ }
97
+ const chunks = [];
98
+ response.on("data", (chunk) => chunks.push(chunk));
99
+ response.on("end", () => resolve(Buffer.concat(chunks)));
100
+ }).on("error", reject);
101
+ });
102
+ }
103
+
104
+ async function downloadText(url) {
105
+ return (await downloadBytes(url)).toString("utf8");
106
+ }
107
+
108
+ function verifyChecksum(bytes, checksumText, label) {
109
+ const expected = checksumText.trim().split(/\s+/)[0]?.toLowerCase();
110
+ if (!expected || !/^[0-9a-f]{64}$/.test(expected)) {
111
+ throw new Error("release checksum asset did not contain a SHA-256 digest");
112
+ }
113
+ const actual = createHash("sha256").update(bytes).digest("hex");
114
+ if (actual !== expected) {
115
+ throw new Error("checksum mismatch for " + label + ": expected " + expected + ", got " + actual);
116
+ }
117
+ }
118
+
119
+ function verifyBinaryVersion(binary, expectedVersion) {
120
+ const output = spawnSync(binary, ["--version"], { encoding: "utf8" });
121
+ if (output.error) throw output.error;
122
+ if (output.status !== 0) throw new Error("failed to run " + binary + " --version");
123
+ const text = (output.stdout || "").trim();
124
+ const actualVersion = text.split(/\s+/).find((part) => /^v?\d+\.\d+\.\d+/.test(part));
125
+ if (!actualVersion || normalizeVersion(actualVersion) !== normalizeVersion(expectedVersion)) {
126
+ throw new Error(binary + " is " + (text || "unknown version") + "; expected " + BIN_NAME + " " + expectedVersion);
127
+ }
128
+ }
129
+
130
+ function normalizeVersion(version) {
131
+ return version.trim().replace(/^v/, "").split("+")[0];
132
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../auth/browser/login.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,iBAAiB,EAEtB,KAAK,YAAY,EAEjB,KAAK,mBAAmB,EAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA2BF,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAsB,aAAa,CACjC,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAsB,aAAa,CACjC,IAAI,EAAE;IACJ,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;AA0CnB,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgC7B;AAwCD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,GACrB,QAAQ,IAAI,mBAAmB,CAEjC;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAwBvB"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../auth/browser/login.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,iBAAiB,EAEtB,KAAK,YAAY,EAEjB,KAAK,mBAAmB,EAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA2BF,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAsB,aAAa,CACjC,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAsB,aAAa,CACjC,IAAI,EAAE;IACJ,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAAC;AA0CnB,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqD7B;AA0ED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,GACrB,QAAQ,IAAI,mBAAmB,CAEjC;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAwBvB"}
@@ -1,4 +1,5 @@
1
1
  import { Value } from "typebox/value";
2
+ import { digestContractManifest, } from "../../contract_support/mod.js";
2
3
  import { AuthStartRequestSchema, AuthStartResponseSchema, BindResponseSchema, } from "../schemas.js";
3
4
  import { bindFlowSig, getPublicSessionKey, oauthInitSig } from "./session.js";
4
5
  function contextRecord(value) {
@@ -35,26 +36,61 @@ export async function buildLoginUrl(argsOrConfig, provider, redirectTo, handle,
35
36
  }
36
37
  export async function startAuthRequest(args) {
37
38
  const context = contextRecord(args.context);
38
- const sig = await oauthInitSig(args.handle, args.redirectTo, context, args.provider, args.contract);
39
+ const contractDigest = isTrellisContractV1(args.contract)
40
+ ? digestContractManifest(args.contract)
41
+ : undefined;
42
+ const sig = await oauthInitSig(args.handle, args.redirectTo, context, args.provider, contractDigest ?? args.contract);
39
43
  const request = Value.Parse(AuthStartRequestSchema, {
40
44
  redirectTo: args.redirectTo,
41
45
  sessionKey: getPublicSessionKey(args.handle),
42
46
  sig,
43
- contract: args.contract,
47
+ ...(contractDigest ? { contractDigest } : { contract: args.contract }),
44
48
  ...(args.provider ? { provider: args.provider } : {}),
45
49
  ...(context ? { context } : {}),
46
50
  });
47
- const response = await fetch(`${args.authUrl}/auth/requests`, {
51
+ let response = await fetch(`${args.authUrl}/auth/requests`, {
48
52
  method: "POST",
49
53
  headers: { "Content-Type": "application/json" },
50
54
  body: JSON.stringify(request),
51
55
  });
56
+ if (await authStartNeedsManifest(response)) {
57
+ const fullSig = await oauthInitSig(args.handle, args.redirectTo, context, args.provider, args.contract);
58
+ response = await fetch(`${args.authUrl}/auth/requests`, {
59
+ method: "POST",
60
+ headers: { "Content-Type": "application/json" },
61
+ body: JSON.stringify({
62
+ ...request,
63
+ sig: fullSig,
64
+ contract: args.contract,
65
+ }),
66
+ });
67
+ }
52
68
  if (!response.ok) {
53
69
  const text = await response.text();
54
70
  throw new Error(`Auth request failed: ${response.status} ${text}`);
55
71
  }
56
72
  return Value.Parse(AuthStartResponseSchema, await response.json());
57
73
  }
74
+ async function authStartNeedsManifest(response) {
75
+ if (response.ok || response.status !== 409)
76
+ return false;
77
+ const clone = response.clone();
78
+ let payload;
79
+ try {
80
+ payload = await clone.json();
81
+ }
82
+ catch {
83
+ payload = undefined;
84
+ }
85
+ if (payload && typeof payload === "object") {
86
+ const record = payload;
87
+ return record.reason === "manifest_required" ||
88
+ record.code === "manifest_required" ||
89
+ record.error === "manifest_required" ||
90
+ record.message === "manifest_required";
91
+ }
92
+ return (await response.clone().text()).includes("manifest_required");
93
+ }
58
94
  function buildLoginUrlArgsFromPositional(config, provider, redirectTo, handle, contract, context) {
59
95
  if (redirectTo === undefined || handle === undefined || contract === undefined) {
60
96
  throw new TypeError("buildLoginUrl requires redirectTo, handle, and contract");
@@ -68,6 +104,13 @@ function buildLoginUrlArgsFromPositional(config, provider, redirectTo, handle, c
68
104
  context,
69
105
  };
70
106
  }
107
+ function isTrellisContractV1(contract) {
108
+ return contract.format === "trellis.contract.v1" &&
109
+ typeof contract.id === "string" &&
110
+ typeof contract.displayName === "string" &&
111
+ typeof contract.description === "string" &&
112
+ typeof contract.kind === "string";
113
+ }
71
114
  function isNestedBuildLoginUrlArgs(value) {
72
115
  return "config" in value;
73
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../../auth/browser/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAE3D;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAY1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkB1B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,MAAM,GAAG,IAAI,CAEf"}
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../../../auth/browser/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAE3D;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAY1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAkB1B;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,MAAM,GAAG,IAAI,CAIf"}
@@ -29,5 +29,9 @@ export async function submitPortalApproval(config, flowId, decision) {
29
29
  return Value.Parse(PortalFlowStateSchema, await response.json());
30
30
  }
31
31
  export function portalRedirectLocation(state) {
32
- return state?.status === "redirect" ? state.location : null;
32
+ if (state?.status === "redirect")
33
+ return state.location;
34
+ if (state?.status === "approval_denied")
35
+ return state.returnLocation ?? null;
36
+ return null;
33
37
  }
@@ -3,16 +3,27 @@ export type SessionKeyHandle = {
3
3
  publicKey: CryptoKey;
4
4
  publicKeyRaw: Uint8Array;
5
5
  sessionKey: string;
6
+ persistence?: SessionKeyPersistenceMode;
7
+ expiresAt?: number;
6
8
  };
7
- export declare function generateSessionKey(): Promise<SessionKeyHandle>;
8
- export declare function loadSessionKey(): Promise<SessionKeyHandle | null>;
9
- export declare function getOrCreateSessionKey(): Promise<SessionKeyHandle>;
9
+ export type SessionKeyPersistenceMode = "temporary" | "remembered";
10
+ export type SessionKeyOptions = {
11
+ /** Defaults to remembered IndexedDB storage. */
12
+ persistence?: SessionKeyPersistenceMode;
13
+ /** Expiry for remembered keys, as epoch milliseconds or a Date. */
14
+ expiresAt?: number | Date;
15
+ /** Relative expiry for remembered keys. Ignored when expiresAt is set. */
16
+ ttlMs?: number;
17
+ };
18
+ export declare function generateSessionKey(options?: SessionKeyOptions): Promise<SessionKeyHandle>;
19
+ export declare function loadSessionKey(options?: Pick<SessionKeyOptions, "persistence">): Promise<SessionKeyHandle | null>;
20
+ export declare function getOrCreateSessionKey(options?: SessionKeyOptions): Promise<SessionKeyHandle>;
10
21
  export declare function signBytes(handle: SessionKeyHandle, data: Uint8Array): Promise<Uint8Array>;
11
22
  export declare function getPublicSessionKey(handle: SessionKeyHandle): string;
12
- export declare function oauthInitSig(handle: SessionKeyHandle, redirectTo: string, context?: unknown, provider?: string, contract?: Record<string, unknown>): Promise<string>;
23
+ export declare function oauthInitSig(handle: SessionKeyHandle, redirectTo: string, context?: unknown, provider?: string, contract?: Record<string, unknown> | string): Promise<string>;
13
24
  export declare function bindFlowSig(handle: SessionKeyHandle, flowId: string): Promise<string>;
14
25
  export declare function natsConnectSigForIat(handle: SessionKeyHandle, iat: number, contractDigest: string): Promise<string>;
15
- export declare function createRpcProof(handle: SessionKeyHandle, subject: string, payload: Uint8Array): Promise<string>;
16
- export declare function clearSessionKey(): Promise<void>;
17
- export declare function hasSessionKey(): Promise<boolean>;
26
+ export declare function createRpcProof(handle: SessionKeyHandle, subject: string, payload: Uint8Array, requestId: string, iat: number): Promise<string>;
27
+ export declare function clearSessionKey(options?: Pick<SessionKeyOptions, "persistence">): Promise<void>;
28
+ export declare function hasSessionKey(options?: Pick<SessionKeyOptions, "persistence">): Promise<boolean>;
18
29
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../auth/browser/session.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAoBpE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CASvE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAIvE;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEpE;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAEtD"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../auth/browser/session.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,YAAY,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gDAAgD;IAChD,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAWF,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAED,wBAAsB,cAAc,CAClC,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAM,GACnD,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAalC;AAED,wBAAsB,qBAAqB,CACzC,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAI3B;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEpE;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAC1C,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAsB,eAAe,CACnC,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAM,GACnD,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,aAAa,CACjC,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAM,GACnD,OAAO,CAAC,OAAO,CAAC,CAIlB"}
@@ -2,19 +2,42 @@ import { base64urlEncode, canonicalizeJsonValue, sha256, toArrayBuffer, utf8, }
2
2
  import { createProof } from "../proof.js";
3
3
  import { buildNatsConnectSignaturePayload } from "../session_auth.js";
4
4
  import { deleteKeyPair, hasKeyPair, loadKeyPair, storeKeyPair, } from "./storage.js";
5
- export async function generateSessionKey() {
5
+ let temporarySessionKey = null;
6
+ function resolveExpiresAt(options) {
7
+ if (options.expiresAt instanceof Date)
8
+ return options.expiresAt.getTime();
9
+ if (typeof options.expiresAt === "number")
10
+ return options.expiresAt;
11
+ if (typeof options.ttlMs === "number")
12
+ return Date.now() + options.ttlMs;
13
+ return undefined;
14
+ }
15
+ export async function generateSessionKey(options = {}) {
16
+ const persistence = options.persistence ?? "remembered";
17
+ const expiresAt = resolveExpiresAt(options);
6
18
  const keyPair = await crypto.subtle.generateKey({ name: "Ed25519" }, false, ["sign", "verify"]);
7
19
  const publicKeyRaw = new Uint8Array(await crypto.subtle.exportKey("raw", keyPair.publicKey));
8
20
  const sessionKey = base64urlEncode(publicKeyRaw);
9
- await storeKeyPair(keyPair, publicKeyRaw);
10
- return {
21
+ const handle = {
11
22
  privateKey: keyPair.privateKey,
12
23
  publicKey: keyPair.publicKey,
13
24
  publicKeyRaw,
14
25
  sessionKey,
26
+ persistence,
27
+ ...(expiresAt === undefined ? {} : { expiresAt }),
15
28
  };
29
+ if (persistence === "temporary") {
30
+ temporarySessionKey = handle;
31
+ }
32
+ else {
33
+ await storeKeyPair(keyPair, publicKeyRaw, { expiresAt });
34
+ }
35
+ return handle;
16
36
  }
17
- export async function loadSessionKey() {
37
+ export async function loadSessionKey(options = {}) {
38
+ const persistence = options.persistence ?? "remembered";
39
+ if (persistence === "temporary")
40
+ return temporarySessionKey;
18
41
  const stored = await loadKeyPair();
19
42
  if (!stored)
20
43
  return null;
@@ -23,13 +46,15 @@ export async function loadSessionKey() {
23
46
  publicKey: stored.publicKey,
24
47
  publicKeyRaw: stored.publicKeyRaw,
25
48
  sessionKey: base64urlEncode(stored.publicKeyRaw),
49
+ persistence: "remembered",
50
+ ...(stored.expiresAt === undefined ? {} : { expiresAt: stored.expiresAt }),
26
51
  };
27
52
  }
28
- export async function getOrCreateSessionKey() {
29
- const existing = await loadSessionKey();
53
+ export async function getOrCreateSessionKey(options = {}) {
54
+ const existing = await loadSessionKey(options);
30
55
  if (existing)
31
56
  return existing;
32
- return await generateSessionKey();
57
+ return await generateSessionKey(options);
33
58
  }
34
59
  export async function signBytes(handle, data) {
35
60
  const sig = await crypto.subtle.sign({ name: "Ed25519" }, handle.privateKey, toArrayBuffer(data));
@@ -57,17 +82,28 @@ export async function natsConnectSigForIat(handle, iat, contractDigest) {
57
82
  const sig = await signBytes(handle, digest);
58
83
  return base64urlEncode(sig);
59
84
  }
60
- export async function createRpcProof(handle, subject, payload) {
85
+ export async function createRpcProof(handle, subject, payload, requestId, iat) {
61
86
  const payloadHash = await sha256(payload);
62
87
  return await createProof(handle.privateKey, {
63
88
  sessionKey: handle.sessionKey,
64
89
  subject,
65
90
  payloadHash,
91
+ iat,
92
+ requestId,
66
93
  });
67
94
  }
68
- export async function clearSessionKey() {
69
- await deleteKeyPair();
95
+ export async function clearSessionKey(options = {}) {
96
+ const persistence = options.persistence;
97
+ if (persistence === undefined || persistence === "temporary") {
98
+ temporarySessionKey = null;
99
+ }
100
+ if (persistence === undefined || persistence === "remembered") {
101
+ await deleteKeyPair();
102
+ }
70
103
  }
71
- export async function hasSessionKey() {
104
+ export async function hasSessionKey(options = {}) {
105
+ const persistence = options.persistence ?? "remembered";
106
+ if (persistence === "temporary")
107
+ return temporarySessionKey !== null;
72
108
  return await hasKeyPair();
73
109
  }
@@ -4,8 +4,13 @@ export type StoredKeyPair = {
4
4
  publicKey: CryptoKey;
5
5
  publicKeyRaw: Uint8Array;
6
6
  createdAt: number;
7
+ persistence?: "remembered";
8
+ expiresAt?: number;
7
9
  };
8
- export declare function storeKeyPair(keyPair: CryptoKeyPair, publicKeyRaw: Uint8Array): Promise<void>;
10
+ export type StoredKeyPairOptions = {
11
+ expiresAt?: number;
12
+ };
13
+ export declare function storeKeyPair(keyPair: CryptoKeyPair, publicKeyRaw: Uint8Array, options?: StoredKeyPairOptions): Promise<void>;
9
14
  export declare function loadKeyPair(): Promise<StoredKeyPair | null>;
10
15
  export declare function deleteKeyPair(): Promise<void>;
11
16
  export declare function hasKeyPair(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../auth/browser/storage.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAYjE;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAYnD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAGnD"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../auth/browser/storage.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,UAAU,EACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAoBjE;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAYnD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAGnD"}
@@ -15,7 +15,7 @@ function openDB() {
15
15
  };
16
16
  });
17
17
  }
18
- export async function storeKeyPair(keyPair, publicKeyRaw) {
18
+ export async function storeKeyPair(keyPair, publicKeyRaw, options = {}) {
19
19
  const db = await openDB();
20
20
  return new Promise((resolve, reject) => {
21
21
  const tx = db.transaction(STORE_NAME, "readwrite");
@@ -26,6 +26,10 @@ export async function storeKeyPair(keyPair, publicKeyRaw) {
26
26
  publicKey: keyPair.publicKey,
27
27
  publicKeyRaw,
28
28
  createdAt: Date.now(),
29
+ persistence: "remembered",
30
+ ...(options.expiresAt === undefined
31
+ ? {}
32
+ : { expiresAt: options.expiresAt }),
29
33
  };
30
34
  const request = store.put(record);
31
35
  request.onerror = () => reject(request.error);
@@ -36,11 +40,19 @@ export async function storeKeyPair(keyPair, publicKeyRaw) {
36
40
  export async function loadKeyPair() {
37
41
  const db = await openDB();
38
42
  return new Promise((resolve, reject) => {
39
- const tx = db.transaction(STORE_NAME, "readonly");
43
+ const tx = db.transaction(STORE_NAME, "readwrite");
40
44
  const store = tx.objectStore(STORE_NAME);
41
45
  const request = store.get(KEY_ID);
42
46
  request.onerror = () => reject(request.error);
43
- request.onsuccess = () => resolve(request.result ?? null);
47
+ request.onsuccess = () => {
48
+ const result = request.result;
49
+ if (result?.expiresAt !== undefined && result.expiresAt <= Date.now()) {
50
+ store.delete(KEY_ID);
51
+ resolve(null);
52
+ return;
53
+ }
54
+ resolve(result ?? null);
55
+ };
44
56
  tx.oncomplete = () => db.close();
45
57
  });
46
58
  }
@@ -5,9 +5,9 @@
5
5
  */
6
6
  export { type AuthConfig, type AuthStartFlowResponse, type AuthStartRequest, type AuthStartResponse, bindFlow, type BindResponse, type BindSuccessResponse, buildLoginUrl, isBindSuccessResponse, type SentinelCreds, startAuthRequest, } from "./browser/login.ts";
7
7
  export { type ApprovalDecision, fetchPortalFlowState, portalFlowIdFromUrl, type PortalFlowState, type PortalFlowState as BrowserPortalFlowState, portalProviderLoginUrl, portalRedirectLocation, submitPortalApproval, } from "./browser/portal.ts";
8
- export { bindFlowSig, clearSessionKey, createRpcProof, generateSessionKey, getOrCreateSessionKey, getPublicSessionKey, hasSessionKey, loadSessionKey, natsConnectSigForIat, type SessionKeyHandle, signBytes, } from "./browser/session.ts";
8
+ export { bindFlowSig, clearSessionKey, createRpcProof, generateSessionKey, getOrCreateSessionKey, getPublicSessionKey, hasSessionKey, loadSessionKey, natsConnectSigForIat, type SessionKeyHandle, type SessionKeyOptions, type SessionKeyPersistenceMode, signBytes, } from "./browser/session.ts";
9
9
  export { deleteKeyPair, hasKeyPair } from "./browser/storage.ts";
10
- export { type ApprovalDecision as ApprovalDecisionData, ApprovalDecisionSchema, type AuthStartFlowResponse as AuthStartFlowResponseData, AuthStartFlowResponseSchema, type AuthStartRequest as AuthStartRequestData, AuthStartRequestSchema, type AuthStartResponse as AuthStartResponseData, AuthStartResponseSchema, type BindResponse as BindResponseData, BindResponseSchema, type BindSuccessResponse as BindSuccessResponseData, BindSuccessResponseSchema, type ClientTransportEndpoints as ClientTransportEndpointsData, ClientTransportEndpointsSchema, type ClientTransports as ClientTransportsData, ClientTransportsSchema, type ContractApproval as ContractApprovalData, ContractApprovalSchema, type NatsAuthTokenV1 as NatsAuthTokenV1Data, NatsAuthTokenV1Schema, type SentinelCreds as SentinelCredsData, SentinelCredsSchema, } from "./schemas.ts";
10
+ export { approvalCapabilityKeys, type ApprovalDecision as ApprovalDecisionData, ApprovalDecisionSchema, type AuthStartFlowResponse as AuthStartFlowResponseData, AuthStartFlowResponseSchema, type AuthStartRequest as AuthStartRequestData, AuthStartRequestSchema, type AuthStartResponse as AuthStartResponseData, AuthStartResponseSchema, type BindResponse as BindResponseData, BindResponseSchema, type BindSuccessResponse as BindSuccessResponseData, BindSuccessResponseSchema, type ClientTransportEndpoints as ClientTransportEndpointsData, ClientTransportEndpointsSchema, type ClientTransports as ClientTransportsData, ClientTransportsSchema, type ContractApproval as ContractApprovalData, type ContractApprovalCapability as ContractApprovalCapabilityData, ContractApprovalSchema, type NatsAuthTokenV1 as NatsAuthTokenV1Data, NatsAuthTokenV1Schema, type SentinelCreds as SentinelCredsData, SentinelCredsSchema, } from "./schemas.ts";
11
11
  export type { NatsAuthTokenV1 } from "./types.ts";
12
12
  export { base64urlDecode, base64urlEncode, sha256, toArrayBuffer, utf8, } from "./utils.ts";
13
13
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../auth/browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,aAAa,EACb,qBAAqB,EACrB,KAAK,aAAa,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,IAAI,sBAAsB,EAC9C,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,sBAAsB,EACtB,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,2BAA2B,EAC3B,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,sBAAsB,EACtB,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,uBAAuB,EACvB,KAAK,YAAY,IAAI,gBAAgB,EACrC,kBAAkB,EAClB,KAAK,mBAAmB,IAAI,uBAAuB,EACnD,yBAAyB,EACzB,KAAK,wBAAwB,IAAI,4BAA4B,EAC7D,8BAA8B,EAC9B,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,sBAAsB,EACtB,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,sBAAsB,EACtB,KAAK,eAAe,IAAI,mBAAmB,EAC3C,qBAAqB,EACrB,KAAK,aAAa,IAAI,iBAAiB,EACvC,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,eAAe,EACf,eAAe,EACf,MAAM,EACN,aAAa,EACb,IAAI,GACL,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../auth/browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,aAAa,EACb,qBAAqB,EACrB,KAAK,aAAa,EAClB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,gBAAgB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,IAAI,sBAAsB,EAC9C,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,sBAAsB,EACtB,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,2BAA2B,EAC3B,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,sBAAsB,EACtB,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,uBAAuB,EACvB,KAAK,YAAY,IAAI,gBAAgB,EACrC,kBAAkB,EAClB,KAAK,mBAAmB,IAAI,uBAAuB,EACnD,yBAAyB,EACzB,KAAK,wBAAwB,IAAI,4BAA4B,EAC7D,8BAA8B,EAC9B,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,sBAAsB,EACtB,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,KAAK,0BAA0B,IAAI,8BAA8B,EACjE,sBAAsB,EACtB,KAAK,eAAe,IAAI,mBAAmB,EAC3C,qBAAqB,EACrB,KAAK,aAAa,IAAI,iBAAiB,EACvC,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,eAAe,EACf,eAAe,EACf,MAAM,EACN,aAAa,EACb,IAAI,GACL,MAAM,YAAY,CAAC"}
@@ -7,5 +7,5 @@ export { bindFlow, buildLoginUrl, isBindSuccessResponse, startAuthRequest, } fro
7
7
  export { fetchPortalFlowState, portalFlowIdFromUrl, portalProviderLoginUrl, portalRedirectLocation, submitPortalApproval, } from "./browser/portal.js";
8
8
  export { bindFlowSig, clearSessionKey, createRpcProof, generateSessionKey, getOrCreateSessionKey, getPublicSessionKey, hasSessionKey, loadSessionKey, natsConnectSigForIat, signBytes, } from "./browser/session.js";
9
9
  export { deleteKeyPair, hasKeyPair } from "./browser/storage.js";
10
- export { ApprovalDecisionSchema, AuthStartFlowResponseSchema, AuthStartRequestSchema, AuthStartResponseSchema, BindResponseSchema, BindSuccessResponseSchema, ClientTransportEndpointsSchema, ClientTransportsSchema, ContractApprovalSchema, NatsAuthTokenV1Schema, SentinelCredsSchema, } from "./schemas.js";
10
+ export { approvalCapabilityKeys, ApprovalDecisionSchema, AuthStartFlowResponseSchema, AuthStartRequestSchema, AuthStartResponseSchema, BindResponseSchema, BindSuccessResponseSchema, ClientTransportEndpointsSchema, ClientTransportsSchema, ContractApprovalSchema, NatsAuthTokenV1Schema, SentinelCredsSchema, } from "./schemas.js";
11
11
  export { base64urlDecode, base64urlEncode, sha256, toArrayBuffer, utf8, } from "./utils.js";
@@ -4,7 +4,7 @@ import type { BaseError } from "@qlever-llc/result";
4
4
  import { AsyncResult } from "@qlever-llc/result";
5
5
  import type { OperationRef } from "../operations.ts";
6
6
  import type { NatsAuthTokenV1 } from "./schemas.ts";
7
- import { AuthActivateDeviceProgressSchema, AuthActivateDeviceResponseSchema, AuthActivateDeviceSchema, AuthGetDeviceConnectInfoResponseSchema, AuthGetDeviceConnectInfoSchema, AuthListDeviceActivationsResponseSchema, AuthListDeviceActivationsSchema, AuthRevokeDeviceActivationResponseSchema, AuthRevokeDeviceActivationSchema, WaitForDeviceActivationResponseSchema } from "./protocol.ts";
7
+ import { AuthDevicesConnectInfoGetResponseSchema, AuthDevicesConnectInfoGetSchema, AuthDeviceUserAuthoritiesListResponseSchema, AuthDeviceUserAuthoritiesListSchema, AuthDeviceUserAuthoritiesRevokeResponseSchema, AuthDeviceUserAuthoritiesRevokeSchema, AuthResolveDeviceUserAuthoritiesProgressSchema, AuthResolveDeviceUserAuthoritiesResponseSchema, AuthResolveDeviceUserAuthoritiesSchema, WaitForDeviceActivationResponseSchema } from "./protocol.ts";
8
8
  export declare const DeviceActivationPayloadSchema: Type.TObject<{
9
9
  v: Type.TLiteral<1>;
10
10
  publicIdentityKey: Type.TString;
@@ -12,24 +12,25 @@ export declare const DeviceActivationPayloadSchema: Type.TObject<{
12
12
  qrMac: Type.TString;
13
13
  }>;
14
14
  export declare const DeviceActivationWaitRequestSchema: Type.TObject<{
15
+ flowId: Type.TString;
15
16
  publicIdentityKey: Type.TString;
16
17
  nonce: Type.TString;
17
- contractDigest: Type.TOptional<Type.TString>;
18
+ contractDigest: Type.TString;
18
19
  iat: Type.TNumber;
19
20
  sig: Type.TString;
20
21
  }>;
21
22
  export type DeviceActivationPayload = StaticDecode<typeof DeviceActivationPayloadSchema>;
22
23
  export type DeviceActivationWaitRequest = StaticDecode<typeof DeviceActivationWaitRequestSchema>;
23
24
  export type WaitForDeviceActivationResponse = StaticDecode<typeof WaitForDeviceActivationResponseSchema>;
24
- export type AuthActivateDeviceInput = StaticDecode<typeof AuthActivateDeviceSchema>;
25
- export type AuthActivateDeviceProgress = StaticDecode<typeof AuthActivateDeviceProgressSchema>;
26
- export type AuthActivateDeviceOutput = StaticDecode<typeof AuthActivateDeviceResponseSchema>;
27
- export type AuthListDeviceActivationsInput = StaticDecode<typeof AuthListDeviceActivationsSchema>;
28
- export type AuthListDeviceActivationsOutput = StaticDecode<typeof AuthListDeviceActivationsResponseSchema>;
29
- export type AuthRevokeDeviceActivationInput = StaticDecode<typeof AuthRevokeDeviceActivationSchema>;
30
- export type AuthRevokeDeviceActivationResponse = StaticDecode<typeof AuthRevokeDeviceActivationResponseSchema>;
31
- export type GetDeviceConnectInfoInput = StaticDecode<typeof AuthGetDeviceConnectInfoSchema>;
32
- export type GetDeviceConnectInfoOutput = StaticDecode<typeof AuthGetDeviceConnectInfoResponseSchema>;
25
+ export type AuthResolveDeviceUserAuthoritiesInput = StaticDecode<typeof AuthResolveDeviceUserAuthoritiesSchema>;
26
+ export type AuthResolveDeviceUserAuthoritiesProgress = StaticDecode<typeof AuthResolveDeviceUserAuthoritiesProgressSchema>;
27
+ export type AuthResolveDeviceUserAuthoritiesOutput = StaticDecode<typeof AuthResolveDeviceUserAuthoritiesResponseSchema>;
28
+ export type AuthDeviceUserAuthoritiesListInput = StaticDecode<typeof AuthDeviceUserAuthoritiesListSchema>;
29
+ export type AuthDeviceUserAuthoritiesListOutput = StaticDecode<typeof AuthDeviceUserAuthoritiesListResponseSchema>;
30
+ export type AuthDeviceUserAuthoritiesRevokeInput = StaticDecode<typeof AuthDeviceUserAuthoritiesRevokeSchema>;
31
+ export type AuthDeviceUserAuthoritiesRevokeResponse = StaticDecode<typeof AuthDeviceUserAuthoritiesRevokeResponseSchema>;
32
+ export type GetDeviceConnectInfoInput = StaticDecode<typeof AuthDevicesConnectInfoGetSchema>;
33
+ export type GetDeviceConnectInfoOutput = StaticDecode<typeof AuthDevicesConnectInfoGetResponseSchema>;
33
34
  export type DeviceIdentity = {
34
35
  identitySeed: Uint8Array;
35
36
  identitySeedBase64url: string;
@@ -37,35 +38,35 @@ export type DeviceIdentity = {
37
38
  activationKey: Uint8Array;
38
39
  activationKeyBase64url: string;
39
40
  };
40
- type DeviceActivationRpcMethod = "Auth.ListDeviceActivations" | "Auth.RevokeDeviceActivation" | "Auth.GetDeviceConnectInfo";
41
- type AuthActivateDeviceOperationShape = {
41
+ type DeviceActivationRpcMethod = "Auth.DeviceUserAuthorities.List" | "Auth.DeviceUserAuthorities.Revoke" | "Auth.Devices.ConnectInfo.Get";
42
+ type AuthResolveDeviceUserAuthoritiesOperationShape = {
42
43
  subject: string;
43
- input: typeof AuthActivateDeviceSchema;
44
- progress: typeof AuthActivateDeviceProgressSchema;
45
- output: typeof AuthActivateDeviceResponseSchema;
44
+ input: typeof AuthResolveDeviceUserAuthoritiesSchema;
45
+ progress: typeof AuthResolveDeviceUserAuthoritiesProgressSchema;
46
+ output: typeof AuthResolveDeviceUserAuthoritiesResponseSchema;
46
47
  };
47
- export type AuthActivateDeviceOperation = OperationRef<AuthActivateDeviceOperationShape, AuthActivateDeviceProgress, AuthActivateDeviceOutput>;
48
+ export type AuthResolveDeviceUserAuthoritiesOperation = OperationRef<AuthResolveDeviceUserAuthoritiesOperationShape, AuthResolveDeviceUserAuthoritiesProgress, AuthResolveDeviceUserAuthoritiesOutput>;
48
49
  type DeviceActivationRpcInputMap = {
49
- "Auth.ListDeviceActivations": AuthListDeviceActivationsInput;
50
- "Auth.RevokeDeviceActivation": AuthRevokeDeviceActivationInput;
51
- "Auth.GetDeviceConnectInfo": GetDeviceConnectInfoInput;
50
+ "Auth.DeviceUserAuthorities.List": AuthDeviceUserAuthoritiesListInput;
51
+ "Auth.DeviceUserAuthorities.Revoke": AuthDeviceUserAuthoritiesRevokeInput;
52
+ "Auth.Devices.ConnectInfo.Get": GetDeviceConnectInfoInput;
52
53
  };
53
54
  type DeviceActivationRpcOutputMap = {
54
- "Auth.ListDeviceActivations": AuthListDeviceActivationsOutput;
55
- "Auth.RevokeDeviceActivation": AuthRevokeDeviceActivationResponse;
56
- "Auth.GetDeviceConnectInfo": GetDeviceConnectInfoOutput;
55
+ "Auth.DeviceUserAuthorities.List": AuthDeviceUserAuthoritiesListOutput;
56
+ "Auth.DeviceUserAuthorities.Revoke": AuthDeviceUserAuthoritiesRevokeResponse;
57
+ "Auth.Devices.ConnectInfo.Get": GetDeviceConnectInfoOutput;
57
58
  };
58
59
  type RequestClient = {
59
60
  request<M extends DeviceActivationRpcMethod>(method: M, input: DeviceActivationRpcInputMap[M], opts?: unknown): AsyncResult<DeviceActivationRpcOutputMap[M], BaseError>;
60
61
  };
61
- type ActivateDeviceOperationClient = {
62
- operation(method: "Auth.ActivateDevice"): {
63
- input(input: AuthActivateDeviceInput): {
64
- start(): AsyncResult<AuthActivateDeviceOperation, BaseError>;
62
+ type ResolveDeviceUserAuthoritiesOperationClient = {
63
+ operation(method: "Auth.DeviceUserAuthorities.Resolve"): {
64
+ input(input: AuthResolveDeviceUserAuthoritiesInput): {
65
+ start(): AsyncResult<AuthResolveDeviceUserAuthoritiesOperation, BaseError>;
65
66
  };
66
67
  };
67
68
  };
68
- export type DeviceActivationTransport = RequestClient & ActivateDeviceOperationClient;
69
+ export type DeviceActivationTransport = RequestClient & ResolveDeviceUserAuthoritiesOperationClient;
69
70
  export declare function deriveDeviceIdentity(deviceRootSecret: Uint8Array): Promise<DeviceIdentity>;
70
71
  export declare function deriveDeviceQrMac(input: {
71
72
  activationKey: Uint8Array | string;
@@ -99,12 +100,13 @@ export declare function verifyDeviceConfirmationCode(input: {
99
100
  nonce: string;
100
101
  confirmationCode: string;
101
102
  }): Promise<boolean>;
102
- export declare function buildDeviceWaitProofInput(publicIdentityKey: string, nonce: string, iat: number, contractDigest?: string): Uint8Array;
103
+ export declare function buildDeviceWaitProofInput(flowId: string, publicIdentityKey: string, nonce: string, iat: number, contractDigest: string): Uint8Array;
103
104
  export declare function signDeviceWaitRequest(args: {
105
+ flowId: string;
104
106
  publicIdentityKey: string;
105
107
  nonce: string;
106
108
  identitySeed: Uint8Array | string;
107
- contractDigest?: string;
109
+ contractDigest: string;
108
110
  iat?: number;
109
111
  }): Promise<DeviceActivationWaitRequest>;
110
112
  export declare function createDeviceNatsAuthToken(args: {
@@ -117,6 +119,7 @@ export declare function createDeviceNatsAuthToken(args: {
117
119
  }>;
118
120
  export declare function waitForDeviceActivation(args: {
119
121
  trellisUrl: string;
122
+ flowId: string;
120
123
  publicIdentityKey: string;
121
124
  nonce: string;
122
125
  identitySeed: Uint8Array | string;
@@ -134,9 +137,9 @@ export declare function getDeviceConnectInfo(args: {
134
137
  iat?: number;
135
138
  }): Promise<GetDeviceConnectInfoOutput>;
136
139
  export declare function createDeviceActivationClient(client: DeviceActivationTransport): {
137
- activateDevice(input: AuthActivateDeviceInput): any;
138
- listDeviceActivations(input?: AuthListDeviceActivationsInput): any;
139
- revokeDeviceActivation(input: AuthRevokeDeviceActivationInput): any;
140
+ resolveDeviceUserAuthorities(input: AuthResolveDeviceUserAuthoritiesInput): any;
141
+ listDeviceActivations(input: AuthDeviceUserAuthoritiesListInput): any;
142
+ revokeDeviceActivation(input: AuthDeviceUserAuthoritiesRevokeInput): any;
140
143
  getDeviceConnectInfo(input: GetDeviceConnectInfoInput): any;
141
144
  };
142
145
  export declare function verifyDeviceWaitSignature(input: DeviceActivationWaitRequest): Promise<boolean>;