conductor-oss 0.4.0 → 0.5.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 (133) hide show
  1. package/node_modules/@conductor-oss/plugin-agent-amp/package.json +1 -1
  2. package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +1 -1
  3. package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +1 -1
  4. package/node_modules/@conductor-oss/plugin-agent-codex/package.json +1 -1
  5. package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +1 -1
  6. package/node_modules/@conductor-oss/plugin-agent-droid/package.json +1 -1
  7. package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +1 -1
  8. package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +1 -1
  9. package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +1 -1
  10. package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +1 -1
  11. package/node_modules/@conductor-oss/plugin-mcp-server/package.json +1 -1
  12. package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +1 -1
  13. package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +1 -1
  14. package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +1 -1
  15. package/node_modules/@conductor-oss/plugin-scm-github/package.json +1 -1
  16. package/node_modules/@conductor-oss/plugin-terminal-web/package.json +1 -1
  17. package/node_modules/@conductor-oss/plugin-tracker-github/package.json +1 -1
  18. package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +1 -1
  19. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +11 -36
  20. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +10 -22
  21. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +1 -1
  22. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +8 -16
  23. package/node_modules/jose/dist/webapi/jwk/embedded.js +1 -1
  24. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +2 -2
  25. package/node_modules/jose/dist/webapi/jwks/local.js +1 -1
  26. package/node_modules/jose/dist/webapi/jwks/remote.js +2 -2
  27. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +5 -8
  28. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +6 -16
  29. package/node_modules/jose/dist/webapi/jws/general/sign.js +3 -6
  30. package/node_modules/jose/dist/webapi/jws/general/verify.js +1 -1
  31. package/node_modules/jose/dist/webapi/jwt/encrypt.js +5 -12
  32. package/node_modules/jose/dist/webapi/key/import.js +1 -1
  33. package/node_modules/jose/dist/webapi/lib/aesgcmkw.js +1 -2
  34. package/node_modules/jose/dist/webapi/lib/check_key_type.js +1 -1
  35. package/node_modules/jose/dist/webapi/lib/content_encryption.js +217 -0
  36. package/node_modules/jose/dist/webapi/lib/crypto_key.js +9 -16
  37. package/node_modules/jose/dist/webapi/lib/ecdhes.js +1 -1
  38. package/node_modules/jose/dist/webapi/lib/helpers.js +19 -0
  39. package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +9 -11
  40. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
  41. package/node_modules/jose/dist/webapi/lib/key_management.js +186 -0
  42. package/node_modules/jose/dist/webapi/lib/normalize_key.js +10 -20
  43. package/node_modules/jose/dist/webapi/lib/rsaes.js +1 -1
  44. package/node_modules/jose/dist/webapi/lib/signing.js +68 -0
  45. package/node_modules/jose/dist/webapi/lib/type_checks.js +40 -0
  46. package/node_modules/jose/dist/webapi/util/decode_jwt.js +1 -1
  47. package/node_modules/jose/dist/webapi/util/decode_protected_header.js +1 -1
  48. package/node_modules/jose/package.json +1 -1
  49. package/package.json +23 -23
  50. package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
  51. package/web/.next/standalone/packages/web/.next/build-manifest.json +2 -2
  52. package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
  53. package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
  54. package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  55. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  56. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  57. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  58. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  59. package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  60. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
  61. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  62. package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  63. package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
  64. package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +3 -3
  65. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  66. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  67. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  68. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  69. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  70. package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  71. package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
  72. package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  73. package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
  74. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
  75. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
  76. package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  77. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
  78. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
  79. package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
  80. package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +7 -7
  81. package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
  82. package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
  83. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__000b8c99._.js +1 -1
  84. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29d8d063._.js +1 -1
  85. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__4168e031._.js → [root-of-the-server]__a004344a._.js} +2 -2
  86. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
  87. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_1f2460d5._.js → _23584339._.js} +1 -1
  88. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
  89. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
  90. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b6d31783._.js +1 -1
  91. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
  92. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
  93. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_2d57befe._.js +3 -0
  94. 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_c4893a23._.js} +2 -2
  95. package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
  96. package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
  97. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  98. package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +8 -8
  99. package/web/.next/standalone/packages/web/.next/static/chunks/{2e2e8fd2ceca47dc.js → 5887c6e7b41bfd4b.js} +2 -2
  100. package/web/.next/standalone/packages/web/.next/static/chunks/d60c73bb353f26d3.js +1 -0
  101. package/web/.next/standalone/packages/web/.next/static/chunks/e6e3c4fe9248dbee.js +1 -0
  102. package/web/.next/static/chunks/{2e2e8fd2ceca47dc.js → 5887c6e7b41bfd4b.js} +2 -2
  103. package/web/.next/static/chunks/d60c73bb353f26d3.js +1 -0
  104. package/web/.next/static/chunks/e6e3c4fe9248dbee.js +1 -0
  105. package/node_modules/jose/dist/webapi/lib/cek.js +0 -19
  106. package/node_modules/jose/dist/webapi/lib/check_cek_length.js +0 -7
  107. package/node_modules/jose/dist/webapi/lib/check_iv_length.js +0 -7
  108. package/node_modules/jose/dist/webapi/lib/check_key_length.js +0 -8
  109. package/node_modules/jose/dist/webapi/lib/decrypt.js +0 -106
  110. package/node_modules/jose/dist/webapi/lib/decrypt_key_management.js +0 -127
  111. package/node_modules/jose/dist/webapi/lib/digest.js +0 -4
  112. package/node_modules/jose/dist/webapi/lib/encrypt.js +0 -74
  113. package/node_modules/jose/dist/webapi/lib/encrypt_key_management.js +0 -92
  114. package/node_modules/jose/dist/webapi/lib/get_sign_verify_key.js +0 -12
  115. package/node_modules/jose/dist/webapi/lib/is_disjoint.js +0 -21
  116. package/node_modules/jose/dist/webapi/lib/is_jwk.js +0 -6
  117. package/node_modules/jose/dist/webapi/lib/is_object.js +0 -14
  118. package/node_modules/jose/dist/webapi/lib/iv.js +0 -19
  119. package/node_modules/jose/dist/webapi/lib/private_symbols.js +0 -1
  120. package/node_modules/jose/dist/webapi/lib/sign.js +0 -9
  121. package/node_modules/jose/dist/webapi/lib/subtle_dsa.js +0 -31
  122. package/node_modules/jose/dist/webapi/lib/verify.js +0 -14
  123. package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_2c78c2f3._.js +0 -3
  124. package/web/.next/standalone/packages/web/.next/static/chunks/7fd2a83e9e74f215.js +0 -1
  125. package/web/.next/standalone/packages/web/.next/static/chunks/91e9e111a2536f92.js +0 -1
  126. package/web/.next/static/chunks/7fd2a83e9e74f215.js +0 -1
  127. package/web/.next/static/chunks/91e9e111a2536f92.js +0 -1
  128. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → s8P8PtiSDD1N4unj4vBuY}/_buildManifest.js +0 -0
  129. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → s8P8PtiSDD1N4unj4vBuY}/_clientMiddlewareManifest.json +0 -0
  130. /package/web/.next/standalone/packages/web/.next/static/{E4-NvSai1Ps20r9dtdpps → s8P8PtiSDD1N4unj4vBuY}/_ssgManifest.js +0 -0
  131. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → s8P8PtiSDD1N4unj4vBuY}/_buildManifest.js +0 -0
  132. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → s8P8PtiSDD1N4unj4vBuY}/_clientMiddlewareManifest.json +0 -0
  133. /package/web/.next/static/{E4-NvSai1Ps20r9dtdpps → s8P8PtiSDD1N4unj4vBuY}/_ssgManifest.js +0 -0
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -4,7 +4,7 @@
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "dependencies": {
7
- "@conductor-oss/core": "0.4.0"
7
+ "@conductor-oss/core": "0.5.0"
8
8
  },
9
9
  "types": "dist/index.d.ts"
10
10
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0",
8
+ "@conductor-oss/core": "0.5.0",
9
9
  "@modelcontextprotocol/sdk": "^1.27.1",
10
10
  "zod": "^4.3.6"
11
11
  },
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "dependencies": {
8
- "@conductor-oss/core": "0.4.0"
8
+ "@conductor-oss/core": "0.5.0"
9
9
  },
10
10
  "types": "dist/index.d.ts"
11
11
  }
@@ -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) {