conductor-oss 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/backend.d.ts +112 -0
  2. package/dist/backend.d.ts.map +1 -0
  3. package/dist/backend.js +101 -0
  4. package/dist/backend.js.map +1 -0
  5. package/dist/commands/cleanup.d.ts.map +1 -1
  6. package/dist/commands/cleanup.js +8 -6
  7. package/dist/commands/cleanup.js.map +1 -1
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/doctor.js +84 -147
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/init.d.ts +3 -8
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +56 -128
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/kill.d.ts.map +1 -1
  16. package/dist/commands/kill.js +6 -11
  17. package/dist/commands/kill.js.map +1 -1
  18. package/dist/commands/list.d.ts.map +1 -1
  19. package/dist/commands/list.js +12 -10
  20. package/dist/commands/list.js.map +1 -1
  21. package/dist/commands/mcp-server.d.ts +0 -20
  22. package/dist/commands/mcp-server.d.ts.map +1 -1
  23. package/dist/commands/mcp-server.js +18 -22
  24. package/dist/commands/mcp-server.js.map +1 -1
  25. package/dist/commands/restore.d.ts.map +1 -1
  26. package/dist/commands/restore.js +7 -12
  27. package/dist/commands/restore.js.map +1 -1
  28. package/dist/commands/retry.d.ts.map +1 -1
  29. package/dist/commands/retry.js +2 -5
  30. package/dist/commands/retry.js.map +1 -1
  31. package/dist/commands/send.d.ts.map +1 -1
  32. package/dist/commands/send.js +5 -9
  33. package/dist/commands/send.js.map +1 -1
  34. package/dist/commands/spawn.d.ts.map +1 -1
  35. package/dist/commands/spawn.js +16 -17
  36. package/dist/commands/spawn.js.map +1 -1
  37. package/dist/commands/status.d.ts.map +1 -1
  38. package/dist/commands/status.js +7 -7
  39. package/dist/commands/status.js.map +1 -1
  40. package/dist/commands/task.d.ts.map +1 -1
  41. package/dist/commands/task.js +3 -5
  42. package/dist/commands/task.js.map +1 -1
  43. package/dist/rust-cli.d.ts +9 -0
  44. package/dist/rust-cli.d.ts.map +1 -0
  45. package/dist/rust-cli.js +75 -0
  46. package/dist/rust-cli.js.map +1 -0
  47. package/node_modules/@conductor-oss/plugin-agent-amp/package.json +1 -1
  48. package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +1 -1
  49. package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +1 -1
  50. package/node_modules/@conductor-oss/plugin-agent-codex/package.json +1 -1
  51. package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +1 -1
  52. package/node_modules/@conductor-oss/plugin-agent-droid/package.json +1 -1
  53. package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +1 -1
  54. package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +1 -1
  55. package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +1 -1
  56. package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +1 -1
  57. package/node_modules/@conductor-oss/plugin-mcp-server/package.json +1 -1
  58. package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +1 -1
  59. package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +1 -1
  60. package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +1 -1
  61. package/node_modules/@conductor-oss/plugin-scm-github/package.json +1 -1
  62. package/node_modules/@conductor-oss/plugin-terminal-web/package.json +1 -1
  63. package/node_modules/@conductor-oss/plugin-tracker-github/package.json +1 -1
  64. package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +1 -1
  65. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +11 -36
  66. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +10 -22
  67. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +1 -1
  68. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +8 -16
  69. package/node_modules/jose/dist/webapi/jwk/embedded.js +1 -1
  70. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +2 -2
  71. package/node_modules/jose/dist/webapi/jwks/local.js +1 -1
  72. package/node_modules/jose/dist/webapi/jwks/remote.js +2 -2
  73. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +5 -8
  74. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +6 -16
  75. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -6
  76. package/node_modules/jose/dist/webapi/jws/general/verify.js +1 -1
  77. package/node_modules/jose/dist/webapi/jwt/encrypt.js +5 -12
  78. package/node_modules/jose/dist/webapi/key/import.js +1 -1
  79. package/node_modules/jose/dist/webapi/lib/aesgcmkw.js +1 -2
  80. package/node_modules/jose/dist/webapi/lib/check_key_type.js +1 -1
  81. package/node_modules/jose/dist/webapi/lib/content_encryption.js +217 -0
  82. package/node_modules/jose/dist/webapi/lib/crypto_key.js +9 -16
  83. package/node_modules/jose/dist/webapi/lib/ecdhes.js +1 -1
  84. package/node_modules/jose/dist/webapi/lib/helpers.js +19 -0
  85. package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +9 -11
  86. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
  87. package/node_modules/jose/dist/webapi/lib/key_management.js +186 -0
  88. package/node_modules/jose/dist/webapi/lib/normalize_key.js +10 -20
  89. package/node_modules/jose/dist/webapi/lib/rsaes.js +1 -1
  90. package/node_modules/jose/dist/webapi/lib/signing.js +68 -0
  91. package/node_modules/jose/dist/webapi/lib/type_checks.js +40 -0
  92. package/node_modules/jose/dist/webapi/util/decode_jwt.js +1 -1
  93. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +1 -1
  94. package/node_modules/jose/package.json +1 -1
  95. package/package.json +23 -23
  96. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  97. package/web/.next/standalone/packages/web/.next/build-manifest.json +2 -2
  98. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
  99. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
  100. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  101. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  102. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  103. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  104. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  105. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  106. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
  107. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  108. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  109. package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  110. package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +3 -3
  111. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  112. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  113. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  114. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  115. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  116. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  117. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +3 -3
  118. package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
  119. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +3 -4
  120. package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -1
  121. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js +3 -3
  122. package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js.nft.json +1 -1
  123. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +3 -3
  124. package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
  125. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js +1 -1
  126. package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.nft.json +1 -1
  127. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js +3 -3
  128. package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js.nft.json +1 -1
  129. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +3 -3
  130. package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
  131. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +3 -3
  132. package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
  133. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js +3 -3
  134. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js.nft.json +1 -1
  135. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +3 -3
  136. package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
  137. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +2 -2
  138. package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
  139. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +3 -3
  140. package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.nft.json +1 -1
  141. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +3 -3
  142. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
  143. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +3 -3
  144. package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.nft.json +1 -1
  145. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +3 -3
  146. package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
  147. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js +3 -3
  148. package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js.nft.json +1 -1
  149. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +3 -3
  150. package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
  151. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +3 -3
  152. package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
  153. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +3 -3
  154. package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
  155. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +3 -3
  156. package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
  157. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +3 -3
  158. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  159. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +3 -3
  160. package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
  161. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +3 -3
  162. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
  163. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +3 -3
  164. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  165. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +3 -3
  166. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
  167. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +3 -3
  168. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
  169. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js +3 -3
  170. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js.nft.json +1 -1
  171. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js +2 -2
  172. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js.nft.json +1 -1
  173. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +3 -3
  174. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -1
  175. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +3 -3
  176. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
  177. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js +3 -3
  178. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js.nft.json +1 -1
  179. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +3 -3
  180. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
  181. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +3 -3
  182. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
  183. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +3 -3
  184. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
  185. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +2 -2
  186. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +1 -1
  187. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js +2 -2
  188. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js.nft.json +1 -1
  189. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js +2 -2
  190. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js.nft.json +1 -1
  191. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js +2 -2
  192. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js.nft.json +1 -1
  193. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +3 -3
  194. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
  195. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +3 -3
  196. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  197. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js +3 -3
  198. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
  199. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +3 -3
  200. package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  201. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +3 -3
  202. package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
  203. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +3 -3
  204. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
  205. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +3 -3
  206. package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  207. package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
  208. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  209. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  210. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
  211. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  212. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  213. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
  214. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  215. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  216. package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +7 -7
  217. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  218. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  219. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__02aa69a2._.js +3 -0
  220. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__06b6b4e9._.js +3 -0
  221. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__025155ac._.js → [root-of-the-server]__0cdc32e7._.js} +1 -1
  222. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__105e4f26._.js +3 -0
  223. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__119c6b92._.js +3 -0
  224. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__137fab33._.js +3 -0
  225. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__15c7d025._.js +3 -0
  226. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1be57288._.js +3 -0
  227. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__66e8ccce._.js → [root-of-the-server]__1d2f280d._.js} +1 -1
  228. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1e450a04._.js +3 -0
  229. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2ce39d51._.js +1 -1
  230. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30055cf3._.js +3 -0
  231. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__85b114a2._.js → [root-of-the-server]__308f1548._.js} +1 -1
  232. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__30e803d7._.js +3 -0
  233. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3cfb9abc._.js +3 -0
  234. package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__a45d3a1d._.js → [root-of-the-server]__3d4382ac._.js} +1 -1
  235. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__41e0efdc._.js +3 -0
  236. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__42e88695._.js +3 -0
  237. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__45147dc5._.js +3 -0
  238. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__46573554._.js +3 -0
  239. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__47b9cd43._.js +3 -0
  240. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4c56df8f._.js +3 -0
  241. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5064824d._.js +3 -0
  242. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__57113ab2._.js +3 -0
  243. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5b1a6733._.js +3 -0
  244. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__64061a84._.js +3 -0
  245. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__668ff2cd._.js +1 -1
  246. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6a1b89e2._.js +3 -0
  247. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7ddba7a1._.js +3 -0
  248. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__87674bea._.js +3 -0
  249. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__89cafbb6._.js +3 -0
  250. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8baf1991._.js +3 -0
  251. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__92efd41b._.js +3 -0
  252. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__97b2fe24._.js +3 -0
  253. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a2cdc6d9._.js +3 -0
  254. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a80a6abe._.js +3 -0
  255. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ac588927._.js +3 -0
  256. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b03e9dba._.js +3 -0
  257. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b0bc3324._.js +3 -0
  258. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b39c66d6._.js +3 -0
  259. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c207ffb8._.js +3 -0
  260. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c24a825f._.js +3 -0
  261. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c27d443a._.js +3 -0
  262. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d0fc233f._.js +3 -0
  263. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d35c3ac2._.js +3 -0
  264. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d3d0e4a1._.js +3 -0
  265. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e2d46590._.js +3 -0
  266. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e7aa992a._.js +3 -0
  267. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ec231481._.js +3 -0
  268. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef43f682._.js +3 -0
  269. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f134e517._.js +3 -0
  270. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f7e5d8de._.js +3 -0
  271. package/web/.next/standalone/packages/web/.next/server/chunks/_2c837d66._.js +5 -5
  272. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__000b8c99._.js +1 -1
  273. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__4168e031._.js → [root-of-the-server]__13c58ffa._.js} +2 -2
  274. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29d8d063._.js +1 -1
  275. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_1f2460d5._.js → _08147ea0._.js} +1 -1
  276. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
  277. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
  278. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
  279. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b6d31783._.js +1 -1
  280. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
  281. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
  282. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_4622a292._.js +3 -0
  283. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_@clerk_nextjs_dist_esm_app-router_0a811c5a._.js → node_modules_@clerk_nextjs_dist_esm_app-router_9141c401._.js} +2 -2
  284. package/web/.next/standalone/packages/web/.next/server/functions-config-manifest.json +3 -2
  285. package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
  286. package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
  287. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  288. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +8 -8
  289. package/web/.next/standalone/packages/web/.next/static/chunks/4486758753cb685a.js +1 -0
  290. package/web/.next/standalone/packages/web/.next/static/chunks/48b4b6b3dba3b0b6.js +1 -0
  291. package/web/.next/standalone/packages/web/.next/static/chunks/{2e2e8fd2ceca47dc.js → 97ae9d425d9939b0.js} +2 -2
  292. package/web/.next/standalone/packages/web/src/app/api/agents/route.ts +2 -196
  293. package/web/.next/standalone/packages/web/src/app/api/auth/session/route.ts +3 -38
  294. package/web/.next/standalone/packages/web/src/app/api/events/route.ts +61 -2
  295. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/feed/stream/route.ts +75 -5
  296. package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/output/stream/route.ts +75 -5
  297. package/web/.next/static/chunks/4486758753cb685a.js +1 -0
  298. package/web/.next/static/chunks/48b4b6b3dba3b0b6.js +1 -0
  299. package/web/.next/static/chunks/{2e2e8fd2ceca47dc.js → 97ae9d425d9939b0.js} +2 -2
  300. package/node_modules/jose/dist/webapi/lib/cek.js +0 -19
  301. package/node_modules/jose/dist/webapi/lib/check_cek_length.js +0 -7
  302. package/node_modules/jose/dist/webapi/lib/check_iv_length.js +0 -7
  303. package/node_modules/jose/dist/webapi/lib/check_key_length.js +0 -8
  304. package/node_modules/jose/dist/webapi/lib/decrypt.js +0 -106
  305. package/node_modules/jose/dist/webapi/lib/decrypt_key_management.js +0 -127
  306. package/node_modules/jose/dist/webapi/lib/digest.js +0 -4
  307. package/node_modules/jose/dist/webapi/lib/encrypt.js +0 -74
  308. package/node_modules/jose/dist/webapi/lib/encrypt_key_management.js +0 -92
  309. package/node_modules/jose/dist/webapi/lib/get_sign_verify_key.js +0 -12
  310. package/node_modules/jose/dist/webapi/lib/is_disjoint.js +0 -21
  311. package/node_modules/jose/dist/webapi/lib/is_jwk.js +0 -6
  312. package/node_modules/jose/dist/webapi/lib/is_object.js +0 -14
  313. package/node_modules/jose/dist/webapi/lib/iv.js +0 -19
  314. package/node_modules/jose/dist/webapi/lib/private_symbols.js +0 -1
  315. package/node_modules/jose/dist/webapi/lib/sign.js +0 -9
  316. package/node_modules/jose/dist/webapi/lib/subtle_dsa.js +0 -31
  317. package/node_modules/jose/dist/webapi/lib/verify.js +0 -14
  318. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__07d320fc._.js +0 -3
  319. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0d3270b2._.js +0 -3
  320. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__186317eb._.js +0 -3
  321. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1888a793._.js +0 -3
  322. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ae07be2._.js +0 -3
  323. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1c1c0e68._.js +0 -3
  324. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1ce34a21._.js +0 -3
  325. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__31703e2b._.js +0 -3
  326. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__394943dc._.js +0 -3
  327. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3bab2cf7._.js +0 -3
  328. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3f48e8a2._.js +0 -3
  329. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__405fc5bc._.js +0 -3
  330. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__428f1837._.js +0 -3
  331. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__49e358a8._.js +0 -3
  332. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5dc7cf0d._.js +0 -3
  333. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5fd67791._.js +0 -3
  334. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__61a55b93._.js +0 -3
  335. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__621d9bca._.js +0 -3
  336. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__65fcccc8._.js +0 -3
  337. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6b163dd7._.js +0 -3
  338. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6c5a5852._.js +0 -3
  339. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__78d6e137._.js +0 -3
  340. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7dac9015._.js +0 -3
  341. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7fcfdb86._.js +0 -3
  342. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__90d02df4._.js +0 -3
  343. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__95440fe8._.js +0 -3
  344. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__968aabbd._.js +0 -3
  345. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__97658502._.js +0 -3
  346. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b5c89bad._.js +0 -3
  347. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b73a3118._.js +0 -3
  348. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c06cb06b._.js +0 -3
  349. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c9626ece._.js +0 -3
  350. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cb1e2942._.js +0 -3
  351. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cc4964a5._.js +0 -3
  352. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cdcdbbe3._.js +0 -3
  353. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ce529f57._.js +0 -3
  354. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cfaae401._.js +0 -3
  355. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d2afbd4e._.js +0 -3
  356. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e0d759be._.js +0 -3
  357. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eabdec9e._.js +0 -3
  358. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ececfccf._.js +0 -3
  359. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__eda7b9ea._.js +0 -3
  360. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef38eeb2._.js +0 -3
  361. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__efd26bfc._.js +0 -3
  362. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f4d63c18._.js +0 -3
  363. package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f8ebc9db._.js +0 -3
  364. package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_5eb57175.js +0 -6
  365. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_2c78c2f3._.js +0 -3
  366. package/web/.next/standalone/packages/web/.next/static/chunks/7fd2a83e9e74f215.js +0 -1
  367. package/web/.next/standalone/packages/web/.next/static/chunks/91e9e111a2536f92.js +0 -1
  368. package/web/.next/static/chunks/7fd2a83e9e74f215.js +0 -1
  369. package/web/.next/static/chunks/91e9e111a2536f92.js +0 -1
  370. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_buildManifest.js +0 -0
  371. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_clientMiddlewareManifest.json +0 -0
  372. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_ssgManifest.js +0 -0
  373. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_buildManifest.js +0 -0
  374. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_clientMiddlewareManifest.json +0 -0
  375. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → BHEBqfhQTyzF7_rs_EqmL}/_ssgManifest.js +0 -0
@@ -1,11 +1,12 @@
1
1
  import { decode as b64u } from '../../util/base64url.js';
2
- import { decrypt } from '../../lib/decrypt.js';
2
+ import { decrypt } from '../../lib/content_encryption.js';
3
+ import { decodeBase64url } from '../../lib/helpers.js';
3
4
  import { JOSEAlgNotAllowed, JOSENotSupported, JWEInvalid } from '../../util/errors.js';
4
- import { isDisjoint } from '../../lib/is_disjoint.js';
5
- import { isObject } from '../../lib/is_object.js';
6
- import { decryptKeyManagement } from '../../lib/decrypt_key_management.js';
5
+ import { isDisjoint } from '../../lib/type_checks.js';
6
+ import { isObject } from '../../lib/type_checks.js';
7
+ import { decryptKeyManagement } from '../../lib/key_management.js';
7
8
  import { decoder, concat, encode } from '../../lib/buffer_utils.js';
8
- import { generateCek } from '../../lib/cek.js';
9
+ import { generateCek } from '../../lib/content_encryption.js';
9
10
  import { validateCrit } from '../../lib/validate_crit.js';
10
11
  import { validateAlgorithms } from '../../lib/validate_algorithms.js';
11
12
  import { normalizeKey } from '../../lib/normalize_key.js';
@@ -86,12 +87,7 @@ export async function flattenedDecrypt(jwe, key, options) {
86
87
  }
87
88
  let encryptedKey;
88
89
  if (jwe.encrypted_key !== undefined) {
89
- try {
90
- encryptedKey = b64u(jwe.encrypted_key);
91
- }
92
- catch {
93
- throw new JWEInvalid('Failed to base64url decode the encrypted_key');
94
- }
90
+ encryptedKey = decodeBase64url(jwe.encrypted_key, 'encrypted_key', JWEInvalid);
95
91
  }
96
92
  let resolvedKey = false;
97
93
  if (typeof key === 'function') {
@@ -113,20 +109,10 @@ export async function flattenedDecrypt(jwe, key, options) {
113
109
  let iv;
114
110
  let tag;
115
111
  if (jwe.iv !== undefined) {
116
- try {
117
- iv = b64u(jwe.iv);
118
- }
119
- catch {
120
- throw new JWEInvalid('Failed to base64url decode the iv');
121
- }
112
+ iv = decodeBase64url(jwe.iv, 'iv', JWEInvalid);
122
113
  }
123
114
  if (jwe.tag !== undefined) {
124
- try {
125
- tag = b64u(jwe.tag);
126
- }
127
- catch {
128
- throw new JWEInvalid('Failed to base64url decode the tag');
129
- }
115
+ tag = decodeBase64url(jwe.tag, 'tag', JWEInvalid);
130
116
  }
131
117
  const protectedHeader = jwe.protected !== undefined ? encode(jwe.protected) : new Uint8Array();
132
118
  let additionalData;
@@ -136,13 +122,7 @@ export async function flattenedDecrypt(jwe, key, options) {
136
122
  else {
137
123
  additionalData = protectedHeader;
138
124
  }
139
- let ciphertext;
140
- try {
141
- ciphertext = b64u(jwe.ciphertext);
142
- }
143
- catch {
144
- throw new JWEInvalid('Failed to base64url decode the ciphertext');
145
- }
125
+ const ciphertext = decodeBase64url(jwe.ciphertext, 'ciphertext', JWEInvalid);
146
126
  const plaintext = await decrypt(enc, cek, ciphertext, iv, tag, additionalData);
147
127
  const result = { plaintext };
148
128
  if (joseHeader.zip === 'DEF') {
@@ -160,12 +140,7 @@ export async function flattenedDecrypt(jwe, key, options) {
160
140
  result.protectedHeader = parsedProt;
161
141
  }
162
142
  if (jwe.aad !== undefined) {
163
- try {
164
- result.additionalAuthenticatedData = b64u(jwe.aad);
165
- }
166
- catch {
167
- throw new JWEInvalid('Failed to base64url decode the aad');
168
- }
143
+ result.additionalAuthenticatedData = decodeBase64url(jwe.aad, 'aad', JWEInvalid);
169
144
  }
170
145
  if (jwe.unprotected !== undefined) {
171
146
  result.sharedUnprotectedHeader = jwe.unprotected;
@@ -1,9 +1,9 @@
1
1
  import { encode as b64u } from '../../util/base64url.js';
2
- import { unprotected } from '../../lib/private_symbols.js';
3
- import { encrypt } from '../../lib/encrypt.js';
4
- import { encryptKeyManagement } from '../../lib/encrypt_key_management.js';
2
+ import { unprotected, assertNotSet } from '../../lib/helpers.js';
3
+ import { encrypt } from '../../lib/content_encryption.js';
4
+ import { encryptKeyManagement } from '../../lib/key_management.js';
5
5
  import { JOSENotSupported, JWEInvalid } from '../../util/errors.js';
6
- import { isDisjoint } from '../../lib/is_disjoint.js';
6
+ import { isDisjoint } from '../../lib/type_checks.js';
7
7
  import { concat, encode } from '../../lib/buffer_utils.js';
8
8
  import { validateCrit } from '../../lib/validate_crit.js';
9
9
  import { normalizeKey } from '../../lib/normalize_key.js';
@@ -25,30 +25,22 @@ export class FlattenedEncrypt {
25
25
  this.#plaintext = plaintext;
26
26
  }
27
27
  setKeyManagementParameters(parameters) {
28
- if (this.#keyManagementParameters) {
29
- throw new TypeError('setKeyManagementParameters can only be called once');
30
- }
28
+ assertNotSet(this.#keyManagementParameters, 'setKeyManagementParameters');
31
29
  this.#keyManagementParameters = parameters;
32
30
  return this;
33
31
  }
34
32
  setProtectedHeader(protectedHeader) {
35
- if (this.#protectedHeader) {
36
- throw new TypeError('setProtectedHeader can only be called once');
37
- }
33
+ assertNotSet(this.#protectedHeader, 'setProtectedHeader');
38
34
  this.#protectedHeader = protectedHeader;
39
35
  return this;
40
36
  }
41
37
  setSharedUnprotectedHeader(sharedUnprotectedHeader) {
42
- if (this.#sharedUnprotectedHeader) {
43
- throw new TypeError('setSharedUnprotectedHeader can only be called once');
44
- }
38
+ assertNotSet(this.#sharedUnprotectedHeader, 'setSharedUnprotectedHeader');
45
39
  this.#sharedUnprotectedHeader = sharedUnprotectedHeader;
46
40
  return this;
47
41
  }
48
42
  setUnprotectedHeader(unprotectedHeader) {
49
- if (this.#unprotectedHeader) {
50
- throw new TypeError('setUnprotectedHeader can only be called once');
51
- }
43
+ assertNotSet(this.#unprotectedHeader, 'setUnprotectedHeader');
52
44
  this.#unprotectedHeader = unprotectedHeader;
53
45
  return this;
54
46
  }
@@ -57,16 +49,12 @@ export class FlattenedEncrypt {
57
49
  return this;
58
50
  }
59
51
  setContentEncryptionKey(cek) {
60
- if (this.#cek) {
61
- throw new TypeError('setContentEncryptionKey can only be called once');
62
- }
52
+ assertNotSet(this.#cek, 'setContentEncryptionKey');
63
53
  this.#cek = cek;
64
54
  return this;
65
55
  }
66
56
  setInitializationVector(iv) {
67
- if (this.#iv) {
68
- throw new TypeError('setInitializationVector can only be called once');
69
- }
57
+ assertNotSet(this.#iv, 'setInitializationVector');
70
58
  this.#iv = iv;
71
59
  return this;
72
60
  }
@@ -1,6 +1,6 @@
1
1
  import { flattenedDecrypt } from '../flattened/decrypt.js';
2
2
  import { JWEDecryptionFailed, JWEInvalid } from '../../util/errors.js';
3
- import { isObject } from '../../lib/is_object.js';
3
+ import { isObject } from '../../lib/type_checks.js';
4
4
  export async function generalDecrypt(jwe, key, options) {
5
5
  if (!isObject(jwe)) {
6
6
  throw new JWEInvalid('General JWE must be an object');
@@ -1,9 +1,9 @@
1
1
  import { FlattenedEncrypt } from '../flattened/encrypt.js';
2
- import { unprotected } from '../../lib/private_symbols.js';
2
+ import { unprotected, assertNotSet } from '../../lib/helpers.js';
3
3
  import { JOSENotSupported, JWEInvalid } from '../../util/errors.js';
4
- import { generateCek } from '../../lib/cek.js';
5
- import { isDisjoint } from '../../lib/is_disjoint.js';
6
- import { encryptKeyManagement } from '../../lib/encrypt_key_management.js';
4
+ import { generateCek } from '../../lib/content_encryption.js';
5
+ import { isDisjoint } from '../../lib/type_checks.js';
6
+ import { encryptKeyManagement } from '../../lib/key_management.js';
7
7
  import { encode as b64u } from '../../util/base64url.js';
8
8
  import { validateCrit } from '../../lib/validate_crit.js';
9
9
  import { normalizeKey } from '../../lib/normalize_key.js';
@@ -20,16 +20,12 @@ class IndividualRecipient {
20
20
  this.options = options;
21
21
  }
22
22
  setUnprotectedHeader(unprotectedHeader) {
23
- if (this.unprotectedHeader) {
24
- throw new TypeError('setUnprotectedHeader can only be called once');
25
- }
23
+ assertNotSet(this.unprotectedHeader, 'setUnprotectedHeader');
26
24
  this.unprotectedHeader = unprotectedHeader;
27
25
  return this;
28
26
  }
29
27
  setKeyManagementParameters(parameters) {
30
- if (this.keyManagementParameters) {
31
- throw new TypeError('setKeyManagementParameters can only be called once');
32
- }
28
+ assertNotSet(this.keyManagementParameters, 'setKeyManagementParameters');
33
29
  this.keyManagementParameters = parameters;
34
30
  return this;
35
31
  }
@@ -58,16 +54,12 @@ export class GeneralEncrypt {
58
54
  return recipient;
59
55
  }
60
56
  setProtectedHeader(protectedHeader) {
61
- if (this.#protectedHeader) {
62
- throw new TypeError('setProtectedHeader can only be called once');
63
- }
57
+ assertNotSet(this.#protectedHeader, 'setProtectedHeader');
64
58
  this.#protectedHeader = protectedHeader;
65
59
  return this;
66
60
  }
67
61
  setSharedUnprotectedHeader(sharedUnprotectedHeader) {
68
- if (this.#unprotectedHeader) {
69
- throw new TypeError('setSharedUnprotectedHeader can only be called once');
70
- }
62
+ assertNotSet(this.#unprotectedHeader, 'setSharedUnprotectedHeader');
71
63
  this.#unprotectedHeader = sharedUnprotectedHeader;
72
64
  return this;
73
65
  }
@@ -1,5 +1,5 @@
1
1
  import { importJWK } from '../key/import.js';
2
- import { isObject } from '../lib/is_object.js';
2
+ import { isObject } from '../lib/type_checks.js';
3
3
  import { JWSInvalid } from '../util/errors.js';
4
4
  export async function EmbeddedJWK(protectedHeader, token) {
5
5
  const joseHeader = {
@@ -1,9 +1,9 @@
1
- import { digest } from '../lib/digest.js';
1
+ import { digest } from '../lib/helpers.js';
2
2
  import { encode as b64u } from '../util/base64url.js';
3
3
  import { JOSENotSupported, JWKInvalid } from '../util/errors.js';
4
4
  import { encode } from '../lib/buffer_utils.js';
5
5
  import { isKeyLike } from '../lib/is_key_like.js';
6
- import { isJWK } from '../lib/is_jwk.js';
6
+ import { isJWK } from '../lib/type_checks.js';
7
7
  import { exportJWK } from '../key/export.js';
8
8
  import { invalidKeyInput } from '../lib/invalid_key_input.js';
9
9
  const check = (value, description) => {
@@ -1,6 +1,6 @@
1
1
  import { importJWK } from '../key/import.js';
2
2
  import { JWKSInvalid, JOSENotSupported, JWKSNoMatchingKey, JWKSMultipleMatchingKeys, } from '../util/errors.js';
3
- import { isObject } from '../lib/is_object.js';
3
+ import { isObject } from '../lib/type_checks.js';
4
4
  function getKtyFromAlg(alg) {
5
5
  switch (typeof alg === 'string' && alg.slice(0, 2)) {
6
6
  case 'RS':
@@ -1,6 +1,6 @@
1
1
  import { JOSEError, JWKSNoMatchingKey, JWKSTimeout } from '../util/errors.js';
2
2
  import { createLocalJWKSet } from './local.js';
3
- import { isObject } from '../lib/is_object.js';
3
+ import { isObject } from '../lib/type_checks.js';
4
4
  function isCloudflareWorkers() {
5
5
  return (typeof WebSocketPair !== 'undefined' ||
6
6
  (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||
@@ -9,7 +9,7 @@ function isCloudflareWorkers() {
9
9
  let USER_AGENT;
10
10
  if (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {
11
11
  const NAME = 'jose';
12
- const VERSION = 'v6.2.0';
12
+ const VERSION = 'v6.2.1';
13
13
  USER_AGENT = `${NAME}/${VERSION}`;
14
14
  }
15
15
  export const customFetch = Symbol();
@@ -1,11 +1,12 @@
1
1
  import { encode as b64u } from '../../util/base64url.js';
2
- import { sign } from '../../lib/sign.js';
3
- import { isDisjoint } from '../../lib/is_disjoint.js';
2
+ import { sign } from '../../lib/signing.js';
3
+ import { isDisjoint } from '../../lib/type_checks.js';
4
4
  import { JWSInvalid } from '../../util/errors.js';
5
5
  import { concat, encode } from '../../lib/buffer_utils.js';
6
6
  import { checkKeyType } from '../../lib/check_key_type.js';
7
7
  import { validateCrit } from '../../lib/validate_crit.js';
8
8
  import { normalizeKey } from '../../lib/normalize_key.js';
9
+ import { assertNotSet } from '../../lib/helpers.js';
9
10
  export class FlattenedSign {
10
11
  #payload;
11
12
  #protectedHeader;
@@ -17,16 +18,12 @@ export class FlattenedSign {
17
18
  this.#payload = payload;
18
19
  }
19
20
  setProtectedHeader(protectedHeader) {
20
- if (this.#protectedHeader) {
21
- throw new TypeError('setProtectedHeader can only be called once');
22
- }
21
+ assertNotSet(this.#protectedHeader, 'setProtectedHeader');
23
22
  this.#protectedHeader = protectedHeader;
24
23
  return this;
25
24
  }
26
25
  setUnprotectedHeader(unprotectedHeader) {
27
- if (this.#unprotectedHeader) {
28
- throw new TypeError('setUnprotectedHeader can only be called once');
29
- }
26
+ assertNotSet(this.#unprotectedHeader, 'setUnprotectedHeader');
30
27
  this.#unprotectedHeader = unprotectedHeader;
31
28
  return this;
32
29
  }
@@ -1,9 +1,10 @@
1
1
  import { decode as b64u } from '../../util/base64url.js';
2
- import { verify } from '../../lib/verify.js';
2
+ import { verify } from '../../lib/signing.js';
3
3
  import { JOSEAlgNotAllowed, JWSInvalid, JWSSignatureVerificationFailed } from '../../util/errors.js';
4
4
  import { concat, encoder, decoder, encode } from '../../lib/buffer_utils.js';
5
- import { isDisjoint } from '../../lib/is_disjoint.js';
6
- import { isObject } from '../../lib/is_object.js';
5
+ import { decodeBase64url } from '../../lib/helpers.js';
6
+ import { isDisjoint } from '../../lib/type_checks.js';
7
+ import { isObject } from '../../lib/type_checks.js';
7
8
  import { checkKeyType } from '../../lib/check_key_type.js';
8
9
  import { validateCrit } from '../../lib/validate_crit.js';
9
10
  import { validateAlgorithms } from '../../lib/validate_algorithms.js';
@@ -79,13 +80,7 @@ export async function flattenedVerify(jws, key, options) {
79
80
  ? encode(jws.payload)
80
81
  : encoder.encode(jws.payload)
81
82
  : jws.payload);
82
- let signature;
83
- try {
84
- signature = b64u(jws.signature);
85
- }
86
- catch {
87
- throw new JWSInvalid('Failed to base64url decode the signature');
88
- }
83
+ const signature = decodeBase64url(jws.signature, 'signature', JWSInvalid);
89
84
  const k = await normalizeKey(key, alg);
90
85
  const verified = await verify(alg, k, signature, data);
91
86
  if (!verified) {
@@ -93,12 +88,7 @@ export async function flattenedVerify(jws, key, options) {
93
88
  }
94
89
  let payload;
95
90
  if (b64) {
96
- try {
97
- payload = b64u(jws.payload);
98
- }
99
- catch {
100
- throw new JWSInvalid('Failed to base64url decode the payload');
101
- }
91
+ payload = decodeBase64url(jws.payload, 'payload', JWSInvalid);
102
92
  }
103
93
  else if (typeof jws.payload === 'string') {
104
94
  payload = encoder.encode(jws.payload);
@@ -1,5 +1,6 @@
1
1
  import { FlattenedSign } from '../flattened/sign.js';
2
2
  import { JWSInvalid } from '../../util/errors.js';
3
+ import { assertNotSet } from '../../lib/helpers.js';
3
4
  class IndividualSignature {
4
5
  #parent;
5
6
  protectedHeader;
@@ -12,16 +13,12 @@ class IndividualSignature {
12
13
  this.options = options;
13
14
  }
14
15
  setProtectedHeader(protectedHeader) {
15
- if (this.protectedHeader) {
16
- throw new TypeError('setProtectedHeader can only be called once');
17
- }
16
+ assertNotSet(this.protectedHeader, 'setProtectedHeader');
18
17
  this.protectedHeader = protectedHeader;
19
18
  return this;
20
19
  }
21
20
  setUnprotectedHeader(unprotectedHeader) {
22
- if (this.unprotectedHeader) {
23
- throw new TypeError('setUnprotectedHeader can only be called once');
24
- }
21
+ assertNotSet(this.unprotectedHeader, 'setUnprotectedHeader');
25
22
  this.unprotectedHeader = unprotectedHeader;
26
23
  return this;
27
24
  }
@@ -1,6 +1,6 @@
1
1
  import { flattenedVerify } from '../flattened/verify.js';
2
2
  import { JWSInvalid, JWSSignatureVerificationFailed } from '../../util/errors.js';
3
- import { isObject } from '../../lib/is_object.js';
3
+ import { isObject } from '../../lib/type_checks.js';
4
4
  export async function generalVerify(jws, key, options) {
5
5
  if (!isObject(jws)) {
6
6
  throw new JWSInvalid('General JWS must be an object');
@@ -1,5 +1,6 @@
1
1
  import { CompactEncrypt } from '../jwe/compact/encrypt.js';
2
2
  import { JWTClaimsBuilder } from '../lib/jwt_claims_set.js';
3
+ import { assertNotSet } from '../lib/helpers.js';
3
4
  export class EncryptJWT {
4
5
  #cek;
5
6
  #iv;
@@ -41,30 +42,22 @@ export class EncryptJWT {
41
42
  return this;
42
43
  }
43
44
  setProtectedHeader(protectedHeader) {
44
- if (this.#protectedHeader) {
45
- throw new TypeError('setProtectedHeader can only be called once');
46
- }
45
+ assertNotSet(this.#protectedHeader, 'setProtectedHeader');
47
46
  this.#protectedHeader = protectedHeader;
48
47
  return this;
49
48
  }
50
49
  setKeyManagementParameters(parameters) {
51
- if (this.#keyManagementParameters) {
52
- throw new TypeError('setKeyManagementParameters can only be called once');
53
- }
50
+ assertNotSet(this.#keyManagementParameters, 'setKeyManagementParameters');
54
51
  this.#keyManagementParameters = parameters;
55
52
  return this;
56
53
  }
57
54
  setContentEncryptionKey(cek) {
58
- if (this.#cek) {
59
- throw new TypeError('setContentEncryptionKey can only be called once');
60
- }
55
+ assertNotSet(this.#cek, 'setContentEncryptionKey');
61
56
  this.#cek = cek;
62
57
  return this;
63
58
  }
64
59
  setInitializationVector(iv) {
65
- if (this.#iv) {
66
- throw new TypeError('setInitializationVector can only be called once');
67
- }
60
+ assertNotSet(this.#iv, 'setInitializationVector');
68
61
  this.#iv = iv;
69
62
  return this;
70
63
  }
@@ -2,7 +2,7 @@ import { decode as decodeBase64URL } from '../util/base64url.js';
2
2
  import { fromSPKI, fromPKCS8, fromX509 } from '../lib/asn1.js';
3
3
  import { jwkToKey } from '../lib/jwk_to_key.js';
4
4
  import { JOSENotSupported } from '../util/errors.js';
5
- import { isObject } from '../lib/is_object.js';
5
+ import { isObject } from '../lib/type_checks.js';
6
6
  export async function importSPKI(spki, alg, options) {
7
7
  if (typeof spki !== 'string' || spki.indexOf('-----BEGIN PUBLIC KEY-----') !== 0) {
8
8
  throw new TypeError('"spki" must be SPKI formatted string');
@@ -1,5 +1,4 @@
1
- import { encrypt } from './encrypt.js';
2
- import { decrypt } from './decrypt.js';
1
+ import { encrypt, decrypt } from './content_encryption.js';
3
2
  import { encode as b64u } from '../util/base64url.js';
4
3
  export async function wrap(alg, key, cek, iv) {
5
4
  const jweAlgorithm = alg.slice(0, 7);
@@ -1,6 +1,6 @@
1
1
  import { withAlg as invalidKeyInput } from './invalid_key_input.js';
2
2
  import { isKeyLike } from './is_key_like.js';
3
- import * as jwk from './is_jwk.js';
3
+ import * as jwk from './type_checks.js';
4
4
  const tag = (key) => key?.[Symbol.toStringTag];
5
5
  const jwkMatchesOp = (alg, key, usage) => {
6
6
  if (key.use !== undefined) {
@@ -0,0 +1,217 @@
1
+ import { concat, uint64be } from './buffer_utils.js';
2
+ import { checkEncCryptoKey } from './crypto_key.js';
3
+ import { invalidKeyInput } from './invalid_key_input.js';
4
+ import { JOSENotSupported, JWEDecryptionFailed, JWEInvalid } from '../util/errors.js';
5
+ import { isCryptoKey } from './is_key_like.js';
6
+ export function cekLength(alg) {
7
+ switch (alg) {
8
+ case 'A128GCM':
9
+ return 128;
10
+ case 'A192GCM':
11
+ return 192;
12
+ case 'A256GCM':
13
+ case 'A128CBC-HS256':
14
+ return 256;
15
+ case 'A192CBC-HS384':
16
+ return 384;
17
+ case 'A256CBC-HS512':
18
+ return 512;
19
+ default:
20
+ throw new JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);
21
+ }
22
+ }
23
+ export const generateCek = (alg) => crypto.getRandomValues(new Uint8Array(cekLength(alg) >> 3));
24
+ function checkCekLength(cek, expected) {
25
+ const actual = cek.byteLength << 3;
26
+ if (actual !== expected) {
27
+ throw new JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);
28
+ }
29
+ }
30
+ function ivBitLength(alg) {
31
+ switch (alg) {
32
+ case 'A128GCM':
33
+ case 'A128GCMKW':
34
+ case 'A192GCM':
35
+ case 'A192GCMKW':
36
+ case 'A256GCM':
37
+ case 'A256GCMKW':
38
+ return 96;
39
+ case 'A128CBC-HS256':
40
+ case 'A192CBC-HS384':
41
+ case 'A256CBC-HS512':
42
+ return 128;
43
+ default:
44
+ throw new JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);
45
+ }
46
+ }
47
+ export const generateIv = (alg) => crypto.getRandomValues(new Uint8Array(ivBitLength(alg) >> 3));
48
+ export function checkIvLength(enc, iv) {
49
+ if (iv.length << 3 !== ivBitLength(enc)) {
50
+ throw new JWEInvalid('Invalid Initialization Vector length');
51
+ }
52
+ }
53
+ async function cbcKeySetup(enc, cek, usage) {
54
+ if (!(cek instanceof Uint8Array)) {
55
+ throw new TypeError(invalidKeyInput(cek, 'Uint8Array'));
56
+ }
57
+ const keySize = parseInt(enc.slice(1, 4), 10);
58
+ const encKey = await crypto.subtle.importKey('raw', cek.subarray(keySize >> 3), 'AES-CBC', false, [usage]);
59
+ const macKey = await crypto.subtle.importKey('raw', cek.subarray(0, keySize >> 3), {
60
+ hash: `SHA-${keySize << 1}`,
61
+ name: 'HMAC',
62
+ }, false, ['sign']);
63
+ return { encKey, macKey, keySize };
64
+ }
65
+ async function cbcHmacTag(macKey, macData, keySize) {
66
+ return new Uint8Array((await crypto.subtle.sign('HMAC', macKey, macData)).slice(0, keySize >> 3));
67
+ }
68
+ async function cbcEncrypt(enc, plaintext, cek, iv, aad) {
69
+ const { encKey, macKey, keySize } = await cbcKeySetup(enc, cek, 'encrypt');
70
+ const ciphertext = new Uint8Array(await crypto.subtle.encrypt({
71
+ iv: iv,
72
+ name: 'AES-CBC',
73
+ }, encKey, plaintext));
74
+ const macData = concat(aad, iv, ciphertext, uint64be(aad.length << 3));
75
+ const tag = await cbcHmacTag(macKey, macData, keySize);
76
+ return { ciphertext, tag, iv };
77
+ }
78
+ async function timingSafeEqual(a, b) {
79
+ if (!(a instanceof Uint8Array)) {
80
+ throw new TypeError('First argument must be a buffer');
81
+ }
82
+ if (!(b instanceof Uint8Array)) {
83
+ throw new TypeError('Second argument must be a buffer');
84
+ }
85
+ const algorithm = { name: 'HMAC', hash: 'SHA-256' };
86
+ const key = (await crypto.subtle.generateKey(algorithm, false, ['sign']));
87
+ const aHmac = new Uint8Array(await crypto.subtle.sign(algorithm, key, a));
88
+ const bHmac = new Uint8Array(await crypto.subtle.sign(algorithm, key, b));
89
+ let out = 0;
90
+ let i = -1;
91
+ while (++i < 32) {
92
+ out |= aHmac[i] ^ bHmac[i];
93
+ }
94
+ return out === 0;
95
+ }
96
+ async function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {
97
+ const { encKey, macKey, keySize } = await cbcKeySetup(enc, cek, 'decrypt');
98
+ const macData = concat(aad, iv, ciphertext, uint64be(aad.length << 3));
99
+ const expectedTag = await cbcHmacTag(macKey, macData, keySize);
100
+ let macCheckPassed;
101
+ try {
102
+ macCheckPassed = await timingSafeEqual(tag, expectedTag);
103
+ }
104
+ catch {
105
+ }
106
+ if (!macCheckPassed) {
107
+ throw new JWEDecryptionFailed();
108
+ }
109
+ let plaintext;
110
+ try {
111
+ plaintext = new Uint8Array(await crypto.subtle.decrypt({ iv: iv, name: 'AES-CBC' }, encKey, ciphertext));
112
+ }
113
+ catch {
114
+ }
115
+ if (!plaintext) {
116
+ throw new JWEDecryptionFailed();
117
+ }
118
+ return plaintext;
119
+ }
120
+ async function gcmEncrypt(enc, plaintext, cek, iv, aad) {
121
+ let encKey;
122
+ if (cek instanceof Uint8Array) {
123
+ encKey = await crypto.subtle.importKey('raw', cek, 'AES-GCM', false, ['encrypt']);
124
+ }
125
+ else {
126
+ checkEncCryptoKey(cek, enc, 'encrypt');
127
+ encKey = cek;
128
+ }
129
+ const encrypted = new Uint8Array(await crypto.subtle.encrypt({
130
+ additionalData: aad,
131
+ iv: iv,
132
+ name: 'AES-GCM',
133
+ tagLength: 128,
134
+ }, encKey, plaintext));
135
+ const tag = encrypted.slice(-16);
136
+ const ciphertext = encrypted.slice(0, -16);
137
+ return { ciphertext, tag, iv };
138
+ }
139
+ async function gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {
140
+ let encKey;
141
+ if (cek instanceof Uint8Array) {
142
+ encKey = await crypto.subtle.importKey('raw', cek, 'AES-GCM', false, ['decrypt']);
143
+ }
144
+ else {
145
+ checkEncCryptoKey(cek, enc, 'decrypt');
146
+ encKey = cek;
147
+ }
148
+ try {
149
+ return new Uint8Array(await crypto.subtle.decrypt({
150
+ additionalData: aad,
151
+ iv: iv,
152
+ name: 'AES-GCM',
153
+ tagLength: 128,
154
+ }, encKey, concat(ciphertext, tag)));
155
+ }
156
+ catch {
157
+ throw new JWEDecryptionFailed();
158
+ }
159
+ }
160
+ const unsupportedEnc = 'Unsupported JWE Content Encryption Algorithm';
161
+ export async function encrypt(enc, plaintext, cek, iv, aad) {
162
+ if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {
163
+ throw new TypeError(invalidKeyInput(cek, 'CryptoKey', 'KeyObject', 'Uint8Array', 'JSON Web Key'));
164
+ }
165
+ if (iv) {
166
+ checkIvLength(enc, iv);
167
+ }
168
+ else {
169
+ iv = generateIv(enc);
170
+ }
171
+ switch (enc) {
172
+ case 'A128CBC-HS256':
173
+ case 'A192CBC-HS384':
174
+ case 'A256CBC-HS512':
175
+ if (cek instanceof Uint8Array) {
176
+ checkCekLength(cek, parseInt(enc.slice(-3), 10));
177
+ }
178
+ return cbcEncrypt(enc, plaintext, cek, iv, aad);
179
+ case 'A128GCM':
180
+ case 'A192GCM':
181
+ case 'A256GCM':
182
+ if (cek instanceof Uint8Array) {
183
+ checkCekLength(cek, parseInt(enc.slice(1, 4), 10));
184
+ }
185
+ return gcmEncrypt(enc, plaintext, cek, iv, aad);
186
+ default:
187
+ throw new JOSENotSupported(unsupportedEnc);
188
+ }
189
+ }
190
+ export async function decrypt(enc, cek, ciphertext, iv, tag, aad) {
191
+ if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {
192
+ throw new TypeError(invalidKeyInput(cek, 'CryptoKey', 'KeyObject', 'Uint8Array', 'JSON Web Key'));
193
+ }
194
+ if (!iv) {
195
+ throw new JWEInvalid('JWE Initialization Vector missing');
196
+ }
197
+ if (!tag) {
198
+ throw new JWEInvalid('JWE Authentication Tag missing');
199
+ }
200
+ checkIvLength(enc, iv);
201
+ switch (enc) {
202
+ case 'A128CBC-HS256':
203
+ case 'A192CBC-HS384':
204
+ case 'A256CBC-HS512':
205
+ if (cek instanceof Uint8Array)
206
+ checkCekLength(cek, parseInt(enc.slice(-3), 10));
207
+ return cbcDecrypt(enc, cek, ciphertext, iv, tag, aad);
208
+ case 'A128GCM':
209
+ case 'A192GCM':
210
+ case 'A256GCM':
211
+ if (cek instanceof Uint8Array)
212
+ checkCekLength(cek, parseInt(enc.slice(1, 4), 10));
213
+ return gcmDecrypt(enc, cek, ciphertext, iv, tag, aad);
214
+ default:
215
+ throw new JOSENotSupported(unsupportedEnc);
216
+ }
217
+ }