@nebulr-group/bridge-cli 0.6.6 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/README.md +98 -458
  2. package/dist/api/accounts.d.ts +105 -0
  3. package/dist/api/accounts.d.ts.map +1 -0
  4. package/dist/api/accounts.js +58 -0
  5. package/dist/api/accounts.js.map +1 -0
  6. package/dist/api/apps.d.ts +50 -0
  7. package/dist/api/apps.d.ts.map +1 -0
  8. package/dist/api/apps.js +62 -0
  9. package/dist/api/apps.js.map +1 -0
  10. package/dist/api/billing.d.ts +131 -0
  11. package/dist/api/billing.d.ts.map +1 -0
  12. package/dist/api/billing.js +42 -0
  13. package/dist/api/billing.js.map +1 -0
  14. package/dist/api/flags.d.ts +73 -0
  15. package/dist/api/flags.d.ts.map +1 -0
  16. package/dist/api/flags.js +108 -0
  17. package/dist/api/flags.js.map +1 -0
  18. package/dist/api/keys.d.ts +48 -0
  19. package/dist/api/keys.d.ts.map +1 -0
  20. package/dist/api/keys.js +87 -0
  21. package/dist/api/keys.js.map +1 -0
  22. package/dist/auth/browser-open.d.ts +21 -4
  23. package/dist/auth/browser-open.d.ts.map +1 -1
  24. package/dist/auth/browser-open.js +45 -65
  25. package/dist/auth/browser-open.js.map +1 -1
  26. package/dist/auth/lock.d.ts +8 -0
  27. package/dist/auth/lock.d.ts.map +1 -0
  28. package/dist/auth/lock.js +43 -0
  29. package/dist/auth/lock.js.map +1 -0
  30. package/dist/auth/loopback.d.ts +8 -12
  31. package/dist/auth/loopback.d.ts.map +1 -1
  32. package/dist/auth/loopback.js +40 -45
  33. package/dist/auth/loopback.js.map +1 -1
  34. package/dist/auth/session.d.ts +61 -0
  35. package/dist/auth/session.d.ts.map +1 -0
  36. package/dist/auth/session.js +142 -0
  37. package/dist/auth/session.js.map +1 -0
  38. package/dist/auth/sign-in.d.ts +67 -0
  39. package/dist/auth/sign-in.d.ts.map +1 -0
  40. package/dist/auth/sign-in.js +113 -0
  41. package/dist/auth/sign-in.js.map +1 -0
  42. package/dist/auth/store.d.ts +89 -0
  43. package/dist/auth/store.d.ts.map +1 -0
  44. package/dist/auth/store.js +214 -0
  45. package/dist/auth/store.js.map +1 -0
  46. package/dist/bin.js +0 -2
  47. package/dist/bin.js.map +1 -1
  48. package/dist/cli.d.ts +1 -2
  49. package/dist/cli.d.ts.map +1 -1
  50. package/dist/cli.js +13 -17
  51. package/dist/cli.js.map +1 -1
  52. package/dist/client.d.ts +31 -0
  53. package/dist/client.d.ts.map +1 -0
  54. package/dist/client.js +67 -0
  55. package/dist/client.js.map +1 -0
  56. package/dist/commands/accounts.command.d.ts +4 -0
  57. package/dist/commands/accounts.command.d.ts.map +1 -0
  58. package/dist/commands/accounts.command.js +166 -0
  59. package/dist/commands/accounts.command.js.map +1 -0
  60. package/dist/commands/app.command.d.ts +3 -2
  61. package/dist/commands/app.command.d.ts.map +1 -1
  62. package/dist/commands/app.command.js +132 -233
  63. package/dist/commands/app.command.js.map +1 -1
  64. package/dist/commands/auth.command.d.ts +2 -12
  65. package/dist/commands/auth.command.d.ts.map +1 -1
  66. package/dist/commands/auth.command.js +147 -20
  67. package/dist/commands/auth.command.js.map +1 -1
  68. package/dist/commands/billing.command.d.ts +4 -0
  69. package/dist/commands/billing.command.d.ts.map +1 -0
  70. package/dist/commands/billing.command.js +185 -0
  71. package/dist/commands/billing.command.js.map +1 -0
  72. package/dist/commands/check.command.d.ts +2 -1
  73. package/dist/commands/check.command.d.ts.map +1 -1
  74. package/dist/commands/check.command.js +11 -14
  75. package/dist/commands/check.command.js.map +1 -1
  76. package/dist/commands/context.d.ts +58 -0
  77. package/dist/commands/context.d.ts.map +1 -0
  78. package/dist/commands/context.js +78 -0
  79. package/dist/commands/context.js.map +1 -0
  80. package/dist/commands/flag.command.d.ts +3 -62
  81. package/dist/commands/flag.command.d.ts.map +1 -1
  82. package/dist/commands/flag.command.js +181 -864
  83. package/dist/commands/flag.command.js.map +1 -1
  84. package/dist/commands/key.command.d.ts +4 -0
  85. package/dist/commands/key.command.d.ts.map +1 -0
  86. package/dist/commands/key.command.js +44 -0
  87. package/dist/commands/key.command.js.map +1 -0
  88. package/dist/commands/plan.command.d.ts +3 -203
  89. package/dist/commands/plan.command.d.ts.map +1 -1
  90. package/dist/commands/plan.command.js +200 -759
  91. package/dist/commands/plan.command.js.map +1 -1
  92. package/dist/config.d.ts +19 -101
  93. package/dist/config.d.ts.map +1 -1
  94. package/dist/config.js +51 -364
  95. package/dist/config.js.map +1 -1
  96. package/dist/core/discovery.d.ts +27 -0
  97. package/dist/core/discovery.d.ts.map +1 -0
  98. package/dist/core/discovery.js +97 -0
  99. package/dist/core/discovery.js.map +1 -0
  100. package/dist/core/errors.d.ts +26 -0
  101. package/dist/core/errors.d.ts.map +1 -0
  102. package/dist/core/errors.js +33 -0
  103. package/dist/core/errors.js.map +1 -0
  104. package/dist/core/http.d.ts +23 -0
  105. package/dist/core/http.d.ts.map +1 -0
  106. package/dist/core/http.js +153 -0
  107. package/dist/core/http.js.map +1 -0
  108. package/dist/core/private-files.d.ts +6 -0
  109. package/dist/core/private-files.d.ts.map +1 -0
  110. package/dist/core/private-files.js +96 -0
  111. package/dist/core/private-files.js.map +1 -0
  112. package/dist/core/routes.d.ts +100 -0
  113. package/dist/core/routes.d.ts.map +1 -0
  114. package/dist/core/routes.js +99 -0
  115. package/dist/core/routes.js.map +1 -0
  116. package/dist/core/urls.d.ts +15 -0
  117. package/dist/core/urls.d.ts.map +1 -0
  118. package/dist/core/urls.js +55 -0
  119. package/dist/core/urls.js.map +1 -0
  120. package/dist/gate-rules.d.ts +1 -2
  121. package/dist/gate-rules.d.ts.map +1 -1
  122. package/dist/gate-rules.js +4 -5
  123. package/dist/gate-rules.js.map +1 -1
  124. package/dist/index.d.ts +24 -3
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +18 -3
  127. package/dist/index.js.map +1 -1
  128. package/dist/io.d.ts +21 -0
  129. package/dist/io.d.ts.map +1 -0
  130. package/dist/io.js +59 -0
  131. package/dist/io.js.map +1 -0
  132. package/dist/money.d.ts +42 -0
  133. package/dist/money.d.ts.map +1 -0
  134. package/dist/money.js +112 -0
  135. package/dist/money.js.map +1 -0
  136. package/dist/program.d.ts +5 -24
  137. package/dist/program.d.ts.map +1 -1
  138. package/dist/program.js +25 -113
  139. package/dist/program.js.map +1 -1
  140. package/package.json +7 -8
  141. package/dist/auth/api-client.d.ts +0 -50
  142. package/dist/auth/api-client.d.ts.map +0 -1
  143. package/dist/auth/api-client.js +0 -109
  144. package/dist/auth/api-client.js.map +0 -1
  145. package/dist/auth/relative-time.d.ts +0 -2
  146. package/dist/auth/relative-time.d.ts.map +0 -1
  147. package/dist/auth/relative-time.js +0 -27
  148. package/dist/auth/relative-time.js.map +0 -1
  149. package/dist/auth/scopes.d.ts +0 -30
  150. package/dist/auth/scopes.d.ts.map +0 -1
  151. package/dist/auth/scopes.js +0 -39
  152. package/dist/auth/scopes.js.map +0 -1
  153. package/dist/auth/workspace-client.d.ts +0 -70
  154. package/dist/auth/workspace-client.d.ts.map +0 -1
  155. package/dist/auth/workspace-client.js +0 -105
  156. package/dist/auth/workspace-client.js.map +0 -1
  157. package/dist/commands/auth/config.command.d.ts +0 -8
  158. package/dist/commands/auth/config.command.d.ts.map +0 -1
  159. package/dist/commands/auth/config.command.js +0 -60
  160. package/dist/commands/auth/config.command.js.map +0 -1
  161. package/dist/commands/auth/login.command.d.ts +0 -46
  162. package/dist/commands/auth/login.command.d.ts.map +0 -1
  163. package/dist/commands/auth/login.command.js +0 -166
  164. package/dist/commands/auth/login.command.js.map +0 -1
  165. package/dist/commands/auth/logout.command.d.ts +0 -21
  166. package/dist/commands/auth/logout.command.d.ts.map +0 -1
  167. package/dist/commands/auth/logout.command.js +0 -97
  168. package/dist/commands/auth/logout.command.js.map +0 -1
  169. package/dist/commands/auth/methods.command.d.ts +0 -68
  170. package/dist/commands/auth/methods.command.d.ts.map +0 -1
  171. package/dist/commands/auth/methods.command.js +0 -91
  172. package/dist/commands/auth/methods.command.js.map +0 -1
  173. package/dist/commands/auth/status.command.d.ts +0 -18
  174. package/dist/commands/auth/status.command.d.ts.map +0 -1
  175. package/dist/commands/auth/status.command.js +0 -104
  176. package/dist/commands/auth/status.command.js.map +0 -1
  177. package/dist/commands/auth/use.command.d.ts +0 -17
  178. package/dist/commands/auth/use.command.d.ts.map +0 -1
  179. package/dist/commands/auth/use.command.js +0 -47
  180. package/dist/commands/auth/use.command.js.map +0 -1
  181. package/dist/commands/branding.command.d.ts +0 -3
  182. package/dist/commands/branding.command.d.ts.map +0 -1
  183. package/dist/commands/branding.command.js +0 -42
  184. package/dist/commands/branding.command.js.map +0 -1
  185. package/dist/commands/event.command.d.ts +0 -3
  186. package/dist/commands/event.command.d.ts.map +0 -1
  187. package/dist/commands/event.command.js +0 -27
  188. package/dist/commands/event.command.js.map +0 -1
  189. package/dist/commands/flag-init.command.d.ts +0 -13
  190. package/dist/commands/flag-init.command.d.ts.map +0 -1
  191. package/dist/commands/flag-init.command.js +0 -463
  192. package/dist/commands/flag-init.command.js.map +0 -1
  193. package/dist/commands/guide.command.d.ts +0 -61
  194. package/dist/commands/guide.command.d.ts.map +0 -1
  195. package/dist/commands/guide.command.js +0 -655
  196. package/dist/commands/guide.command.js.map +0 -1
  197. package/dist/commands/info.command.d.ts +0 -3
  198. package/dist/commands/info.command.d.ts.map +0 -1
  199. package/dist/commands/info.command.js +0 -70
  200. package/dist/commands/info.command.js.map +0 -1
  201. package/dist/commands/integration.command.d.ts +0 -35
  202. package/dist/commands/integration.command.d.ts.map +0 -1
  203. package/dist/commands/integration.command.js +0 -290
  204. package/dist/commands/integration.command.js.map +0 -1
  205. package/dist/commands/journeys.d.ts +0 -43
  206. package/dist/commands/journeys.d.ts.map +0 -1
  207. package/dist/commands/journeys.js +0 -221
  208. package/dist/commands/journeys.js.map +0 -1
  209. package/dist/commands/ops.command.d.ts +0 -17
  210. package/dist/commands/ops.command.d.ts.map +0 -1
  211. package/dist/commands/ops.command.js +0 -129
  212. package/dist/commands/ops.command.js.map +0 -1
  213. package/dist/commands/privilege.command.d.ts +0 -16
  214. package/dist/commands/privilege.command.d.ts.map +0 -1
  215. package/dist/commands/privilege.command.js +0 -86
  216. package/dist/commands/privilege.command.js.map +0 -1
  217. package/dist/commands/role.command.d.ts +0 -3
  218. package/dist/commands/role.command.d.ts.map +0 -1
  219. package/dist/commands/role.command.js +0 -101
  220. package/dist/commands/role.command.js.map +0 -1
  221. package/dist/commands/runtime-dir.d.ts +0 -16
  222. package/dist/commands/runtime-dir.d.ts.map +0 -1
  223. package/dist/commands/runtime-dir.js +0 -18
  224. package/dist/commands/runtime-dir.js.map +0 -1
  225. package/dist/commands/setup.command.d.ts +0 -63
  226. package/dist/commands/setup.command.d.ts.map +0 -1
  227. package/dist/commands/setup.command.js +0 -148
  228. package/dist/commands/setup.command.js.map +0 -1
  229. package/dist/commands/stripe.command.d.ts +0 -29
  230. package/dist/commands/stripe.command.d.ts.map +0 -1
  231. package/dist/commands/stripe.command.js +0 -99
  232. package/dist/commands/stripe.command.js.map +0 -1
  233. package/dist/commands/tenant.command.d.ts +0 -3
  234. package/dist/commands/tenant.command.d.ts.map +0 -1
  235. package/dist/commands/tenant.command.js +0 -135
  236. package/dist/commands/tenant.command.js.map +0 -1
  237. package/dist/commands/token.command.d.ts +0 -3
  238. package/dist/commands/token.command.d.ts.map +0 -1
  239. package/dist/commands/token.command.js +0 -54
  240. package/dist/commands/token.command.js.map +0 -1
  241. package/dist/commands/user.command.d.ts +0 -3
  242. package/dist/commands/user.command.d.ts.map +0 -1
  243. package/dist/commands/user.command.js +0 -117
  244. package/dist/commands/user.command.js.map +0 -1
  245. package/dist/credentials.d.ts +0 -141
  246. package/dist/credentials.d.ts.map +0 -1
  247. package/dist/credentials.js +0 -348
  248. package/dist/credentials.js.map +0 -1
  249. package/dist/flag-coherence.d.ts +0 -42
  250. package/dist/flag-coherence.d.ts.map +0 -1
  251. package/dist/flag-coherence.js +0 -103
  252. package/dist/flag-coherence.js.map +0 -1
  253. package/dist/output.d.ts +0 -17
  254. package/dist/output.d.ts.map +0 -1
  255. package/dist/output.js +0 -107
  256. package/dist/output.js.map +0 -1
  257. package/dist/preview.d.ts +0 -9
  258. package/dist/preview.d.ts.map +0 -1
  259. package/dist/preview.js +0 -63
  260. package/dist/preview.js.map +0 -1
  261. package/dist/product-decisions.d.ts +0 -40
  262. package/dist/product-decisions.d.ts.map +0 -1
  263. package/dist/product-decisions.js +0 -52
  264. package/dist/product-decisions.js.map +0 -1
  265. package/dist/prompt-urls.d.ts +0 -31
  266. package/dist/prompt-urls.d.ts.map +0 -1
  267. package/dist/prompt-urls.js +0 -35
  268. package/dist/prompt-urls.js.map +0 -1
  269. package/dist/prompts/auth-master-integration-prompt.md +0 -255
  270. package/dist/prompts/billing/master.md +0 -332
  271. package/dist/prompts/decisions/feature-control.md +0 -131
  272. package/dist/prompts/decisions/going-live.md +0 -60
  273. package/dist/prompts/decisions/login.md +0 -71
  274. package/dist/prompts/decisions/look-and-feel.md +0 -68
  275. package/dist/prompts/decisions/payments.md +0 -97
  276. package/dist/prompts/decisions/roles.md +0 -78
  277. package/dist/prompts/decisions/teams.md +0 -61
  278. package/dist/prompts/fit-together.md +0 -97
  279. package/dist/prompts/flags/master.md +0 -220
  280. package/dist/prompts/guide-coverage.json +0 -17
  281. package/dist/prompts/integration-success.md +0 -106
  282. package/dist/prompts/mcp-tools.json +0 -90
  283. package/dist/prompts/mechanisms.md +0 -304
  284. package/dist/prompts/orientation.md +0 -42
  285. package/dist/prompts/product-decisions.json +0 -338
  286. package/dist/resolve.d.ts +0 -110
  287. package/dist/resolve.d.ts.map +0 -1
  288. package/dist/resolve.js +0 -260
  289. package/dist/resolve.js.map +0 -1
  290. package/dist/shape.d.ts +0 -25
  291. package/dist/shape.d.ts.map +0 -1
  292. package/dist/shape.js +0 -74
  293. package/dist/shape.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAU,EAAE,OAAO,GAAG,OAAO;IACxD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,gHAAgH,CAAC;SAC7H,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,gBAAgB,EAAE,iEAAiE,CAAC;SAC3F,MAAM,CAAC,YAAY,EAAE,oFAAoF,CAAC;SAC1G,kBAAkB,EAAE,CAAC;IACxB,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACpC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nebulr-group/bridge-cli",
3
- "version": "0.6.6",
4
- "description": "The Bridge CLI: set up and manage sign-in, roles, plans, feature flags and API tokens from your terminal or AI coding agent.",
3
+ "version": "1.0.0-alpha.1",
4
+ "description": "The Bridge CLI: set up your app on Bridge from the terminal. Sign in, then create apps and their addresses, keys, plans with prices and trials, Stripe in test mode, and feature flags with their rules.",
5
5
  "author": "Nebulr Group",
6
6
  "license": "MIT",
7
7
  "type": "module",
@@ -15,16 +15,16 @@
15
15
  "README.md",
16
16
  "LICENSE"
17
17
  ],
18
+ "engines": {
19
+ "node": ">=20"
20
+ },
18
21
  "scripts": {
19
- "build": "tsc && npm run copy:prompts",
20
- "copy:prompts": "node -e \"const fs=require('fs'),path=require('path');function cp(s,d){if(fs.statSync(s).isDirectory()){fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync(s))cp(path.join(s,f),path.join(d,f));}else fs.copyFileSync(s,d);}fs.rmSync('dist/prompts',{recursive:true,force:true});cp('prompts','dist/prompts');console.log('Copied prompts/ -> dist/prompts/');\"",
22
+ "build": "tsc",
21
23
  "prepublishOnly": "npm run build",
22
24
  "test": "jest --passWithNoTests",
23
- "test:coverage": "jest --coverage",
24
- "publish:local": "npm run build && node -e \"const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8')),v=p.version.match(/^(\\d+\\.\\d+\\.\\d+)-alpha\\.(\\d+)$/);if(v){p.version=v[1]+'-alpha.'+(+v[2]+1);}else{p.version=p.version+'-alpha.0';}fs.writeFileSync('package.json',JSON.stringify(p,null,' ')+'\\n');console.log('Version bumped to '+p.version);\" && npm publish --registry http://host.docker.internal:4873 --no-git-checks --ignore-scripts && npm dist-tag add @nebulr-group/bridge-cli@$(node -p \"require('./package.json').version\") alpha --registry http://host.docker.internal:4873"
25
+ "test:coverage": "jest --coverage"
25
26
  },
26
27
  "dependencies": {
27
- "@nebulr-group/bridge-auth-core": "0.8.0",
28
28
  "commander": "^12.0.0"
29
29
  },
30
30
  "devDependencies": {
@@ -39,7 +39,6 @@
39
39
  "ai-agent",
40
40
  "claude-code",
41
41
  "cursor",
42
- "mcp",
43
42
  "devtools",
44
43
  "the-bridge",
45
44
  "bridge",
@@ -1,50 +0,0 @@
1
- /**
2
- * Thin client for the bridge-api `/v1/auth/cli/*` endpoints.
3
- *
4
- * - `exchangeCode(...)` calls `POST /v1/auth/cli/token` with `{code, code_verifier}`.
5
- * - `revokeToken(...)` calls `POST /v1/auth/cli/revoke` with `x-api-key: <jwt>`.
6
- *
7
- * Errors come back RFC-style as `{ error, error_description }`. We translate
8
- * the common cases to friendly messages so end-users don't see RFC tags.
9
- *
10
- * The CLI authenticates as `x-api-key: <jwt>` (NOT `Authorization: Bearer`) —
11
- * see TBP-111 contract notes.
12
- */
13
- export interface CliTokenExchangeResponse {
14
- api_token: string;
15
- expires_at: string;
16
- app: {
17
- id: string;
18
- name: string;
19
- };
20
- user: {
21
- id: string;
22
- email: string;
23
- };
24
- /** TBP-769 — what the login covers. Absent from servers before TBP-769. */
25
- app_access?: 'app' | 'workspace';
26
- }
27
- export interface CliApiClientOptions {
28
- /** Base URL of bridge-api, e.g. `https://api.thebridge.dev`. No trailing slash. */
29
- baseUrl: string;
30
- /** Used for diagnostics; do NOT log secrets. */
31
- debug?: boolean;
32
- /** Override fetch (for tests). Defaults to the global `fetch`. */
33
- fetchImpl?: typeof fetch;
34
- }
35
- export declare class CliAuthApiError extends Error {
36
- /** RFC error code returned by bridge-api (`invalid_request`, `invalid_grant`, ...). */
37
- readonly code: string;
38
- readonly status: number;
39
- constructor(code: string, message: string, status: number);
40
- }
41
- export declare function createCliApiClient(options: CliApiClientOptions): {
42
- exchangeCode: (args: {
43
- code: string;
44
- codeVerifier: string;
45
- }) => Promise<CliTokenExchangeResponse>;
46
- revokeToken: (token: string) => Promise<{
47
- revoked: boolean;
48
- }>;
49
- };
50
- //# sourceMappingURL=api-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/auth/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM1D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;yBAU3B;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,KAAG,OAAO,CAAC,wBAAwB,CAAC;yBA+BH,MAAM,KAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;EA2BzE"}
@@ -1,109 +0,0 @@
1
- /**
2
- * Thin client for the bridge-api `/v1/auth/cli/*` endpoints.
3
- *
4
- * - `exchangeCode(...)` calls `POST /v1/auth/cli/token` with `{code, code_verifier}`.
5
- * - `revokeToken(...)` calls `POST /v1/auth/cli/revoke` with `x-api-key: <jwt>`.
6
- *
7
- * Errors come back RFC-style as `{ error, error_description }`. We translate
8
- * the common cases to friendly messages so end-users don't see RFC tags.
9
- *
10
- * The CLI authenticates as `x-api-key: <jwt>` (NOT `Authorization: Bearer`) —
11
- * see TBP-111 contract notes.
12
- */
13
- export class CliAuthApiError extends Error {
14
- /** RFC error code returned by bridge-api (`invalid_request`, `invalid_grant`, ...). */
15
- code;
16
- status;
17
- constructor(code, message, status) {
18
- super(message);
19
- this.name = 'CliAuthApiError';
20
- this.code = code;
21
- this.status = status;
22
- }
23
- }
24
- export function createCliApiClient(options) {
25
- const baseUrl = options.baseUrl.replace(/\/$/, '');
26
- const fetchImpl = options.fetchImpl ?? globalThis.fetch;
27
- if (typeof fetchImpl !== 'function') {
28
- throw new Error('No global `fetch` is available. Run bridge-cli on Node.js >= 18.');
29
- }
30
- async function exchangeCode(args) {
31
- const url = `${baseUrl}/v1/auth/cli/token`;
32
- const res = await fetchImpl(url, {
33
- method: 'POST',
34
- headers: { 'content-type': 'application/json' },
35
- body: JSON.stringify({
36
- code: args.code,
37
- code_verifier: args.codeVerifier,
38
- }),
39
- });
40
- if (!res.ok) {
41
- throw await translateError(res);
42
- }
43
- const body = (await res.json());
44
- if (!body || typeof body.api_token !== 'string') {
45
- throw new CliAuthApiError('invalid_response', 'Bridge API returned an unexpected response from /v1/auth/cli/token.', res.status);
46
- }
47
- return body;
48
- }
49
- /**
50
- * Best-effort revoke. The CLI uses self-revoke (token is identified by the
51
- * `x-api-key` it sends). 401 means the token is already gone — treat as
52
- * success.
53
- */
54
- async function revokeToken(token) {
55
- const url = `${baseUrl}/v1/auth/cli/revoke`;
56
- let res;
57
- try {
58
- res = await fetchImpl(url, {
59
- method: 'POST',
60
- headers: {
61
- 'content-type': 'application/json',
62
- 'x-api-key': token,
63
- },
64
- body: '{}',
65
- });
66
- }
67
- catch (err) {
68
- // Network failure — caller can still delete the local file.
69
- throw new CliAuthApiError('network_error', `Could not reach bridge-api to revoke token: ${err instanceof Error ? err.message : String(err)}`, 0);
70
- }
71
- if (res.ok)
72
- return { revoked: true };
73
- if (res.status === 401)
74
- return { revoked: true }; // already revoked / expired
75
- throw await translateError(res);
76
- }
77
- return { exchangeCode, revokeToken };
78
- }
79
- async function translateError(res) {
80
- let raw;
81
- try {
82
- raw = await res.json();
83
- }
84
- catch {
85
- return new CliAuthApiError('http_error', `Bridge API returned HTTP ${res.status}.`, res.status);
86
- }
87
- const obj = (raw && typeof raw === 'object' ? raw : {});
88
- const code = typeof obj.error === 'string' ? obj.error : 'http_error';
89
- const desc = typeof obj.error_description === 'string' ? obj.error_description : undefined;
90
- let friendly;
91
- switch (code) {
92
- case 'invalid_request':
93
- friendly = desc ?? 'The login request was rejected as malformed.';
94
- break;
95
- case 'invalid_grant':
96
- friendly = 'The authorization code has already been used or is invalid. Please run `bridge auth login` again.';
97
- break;
98
- case 'expired_grant':
99
- friendly = 'The authorization code expired before it could be exchanged. Please run `bridge auth login` again.';
100
- break;
101
- case 'access_denied':
102
- friendly = 'Login cancelled.';
103
- break;
104
- default:
105
- friendly = desc ?? `Bridge API returned HTTP ${res.status}.`;
106
- }
107
- return new CliAuthApiError(code, friendly, res.status);
108
- }
109
- //# sourceMappingURL=api-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/auth/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoBH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,uFAAuF;IAC9E,IAAI,CAAS;IACb,MAAM,CAAS;IACxB,YAAY,IAAY,EAAE,OAAe,EAAE,MAAc;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAExD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,IAG3B;QACC,MAAM,GAAG,GAAG,GAAG,OAAO,oBAAoB,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,YAAY;aACjC,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA6B,CAAC;QAC5D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,qEAAqE,EACrE,GAAG,CAAC,MAAM,CACX,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,WAAW,CAAC,KAAa;QACtC,MAAM,GAAG,GAAG,GAAG,OAAO,qBAAqB,CAAC;QAC5C,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;gBACzB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,WAAW,EAAE,KAAK;iBACnB;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,4DAA4D;YAC5D,MAAM,IAAI,eAAe,CACvB,eAAe,EACf,+CAA+C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACjG,CAAC,CACF,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,4BAA4B;QAC9E,MAAM,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAa;IACzC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,eAAe,CACxB,YAAY,EACZ,4BAA4B,GAAG,CAAC,MAAM,GAAG,EACzC,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;IACnF,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3F,IAAI,QAAgB,CAAC;IACrB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,iBAAiB;YACpB,QAAQ,GAAG,IAAI,IAAI,8CAA8C,CAAC;YAClE,MAAM;QACR,KAAK,eAAe;YAClB,QAAQ,GAAG,mGAAmG,CAAC;YAC/G,MAAM;QACR,KAAK,eAAe;YAClB,QAAQ,GAAG,oGAAoG,CAAC;YAChH,MAAM;QACR,KAAK,eAAe;YAClB,QAAQ,GAAG,kBAAkB,CAAC;YAC9B,MAAM;QACR;YACE,QAAQ,GAAG,IAAI,IAAI,4BAA4B,GAAG,CAAC,MAAM,GAAG,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function formatRelativeTime(deltaMs: number): string;
2
- //# sourceMappingURL=relative-time.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relative-time.d.ts","sourceRoot":"","sources":["../../src/auth/relative-time.ts"],"names":[],"mappings":"AAkBA,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAS1D"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Tiny human-readable relative time formatter — avoids pulling in dayjs/date-fns.
3
- *
4
- * Examples:
5
- * formatRelativeTime(+9 days) → "in 9 days"
6
- * formatRelativeTime(+3 hours) → "in 3 hours"
7
- * formatRelativeTime(0) → "just now"
8
- * formatRelativeTime(-2 days) → "2 days ago"
9
- */
10
- const UNITS = [
11
- { name: 'year', ms: 365 * 24 * 60 * 60 * 1000 },
12
- { name: 'month', ms: 30 * 24 * 60 * 60 * 1000 },
13
- { name: 'day', ms: 24 * 60 * 60 * 1000 },
14
- { name: 'hour', ms: 60 * 60 * 1000 },
15
- { name: 'minute', ms: 60 * 1000 },
16
- { name: 'second', ms: 1000 },
17
- ];
18
- export function formatRelativeTime(deltaMs) {
19
- const abs = Math.abs(deltaMs);
20
- if (abs < 1000)
21
- return 'just now';
22
- const unit = UNITS.find((u) => abs >= u.ms) ?? UNITS[UNITS.length - 1];
23
- const value = Math.round(abs / unit.ms);
24
- const noun = `${unit.name}${value === 1 ? '' : 's'}`;
25
- return deltaMs >= 0 ? `in ${value} ${noun}` : `${value} ${noun} ago`;
26
- }
27
- //# sourceMappingURL=relative-time.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relative-time.js","sourceRoot":"","sources":["../../src/auth/relative-time.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,KAAK,GAAwC;IACjD,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;IAC/C,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;IAC/C,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;IACxC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;IACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;IACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE;CAC7B,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,GAAG,GAAG,IAAI;QAAE,OAAO,UAAU,CAAC;IAElC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAErD,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC;AACvE,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * OAuth-style scopes the CLI can request at login (TBP-593).
3
- *
4
- * Deliberately a standalone, side-effect-free module: `login.command.ts` pulls
5
- * in config, credentials and the loopback server at import time, and importing
6
- * that from a test leaked state into unrelated suites.
7
- */
8
- /** Default scope — read, list, create and update. No destructive authority. */
9
- export declare const SCOPE_MANAGEMENT = "management";
10
- /**
11
- * Opt-in elevated scope, requested by `bridge auth login --admin`.
12
- *
13
- * Adds the destructive privileges plus `TOKEN_WRITE`, which is what
14
- * `bridge token create` requires. Without it a newly provisioned app can never
15
- * be given its own API key through the CLI.
16
- *
17
- * Not the default on purpose: this token is written to disk and lives for ten
18
- * days, and a credential like that should not carry delete authority unless
19
- * someone asked for it (TBP-552 made destructive privileges opt-in per token).
20
- */
21
- export declare const SCOPE_MANAGEMENT_ADMIN = "management:admin";
22
- /**
23
- * Privileges the default scope does NOT grant and `--admin` does.
24
- *
25
- * Duplicated from the server rather than fetched so the CLI can still give an
26
- * actionable hint against an older bridge-api; a stale entry costs a slightly
27
- * wrong hint, not a broken command.
28
- */
29
- export declare const ADMIN_SCOPE_PRIVILEGES: Set<string>;
30
- //# sourceMappingURL=scopes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/auth/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,aASjC,CAAC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * OAuth-style scopes the CLI can request at login (TBP-593).
3
- *
4
- * Deliberately a standalone, side-effect-free module: `login.command.ts` pulls
5
- * in config, credentials and the loopback server at import time, and importing
6
- * that from a test leaked state into unrelated suites.
7
- */
8
- /** Default scope — read, list, create and update. No destructive authority. */
9
- export const SCOPE_MANAGEMENT = 'management';
10
- /**
11
- * Opt-in elevated scope, requested by `bridge auth login --admin`.
12
- *
13
- * Adds the destructive privileges plus `TOKEN_WRITE`, which is what
14
- * `bridge token create` requires. Without it a newly provisioned app can never
15
- * be given its own API key through the CLI.
16
- *
17
- * Not the default on purpose: this token is written to disk and lives for ten
18
- * days, and a credential like that should not carry delete authority unless
19
- * someone asked for it (TBP-552 made destructive privileges opt-in per token).
20
- */
21
- export const SCOPE_MANAGEMENT_ADMIN = 'management:admin';
22
- /**
23
- * Privileges the default scope does NOT grant and `--admin` does.
24
- *
25
- * Duplicated from the server rather than fetched so the CLI can still give an
26
- * actionable hint against an older bridge-api; a stale entry costs a slightly
27
- * wrong hint, not a broken command.
28
- */
29
- export const ADMIN_SCOPE_PRIVILEGES = new Set([
30
- 'TOKEN_WRITE',
31
- 'TENANT_DELETE',
32
- 'USER_DELETE',
33
- 'ROLE_DELETE',
34
- 'FLAG_DELETE',
35
- 'APP_DELETE',
36
- 'BRANDING_DELETE',
37
- 'COMMUNICATION_DELETE',
38
- ]);
39
- //# sourceMappingURL=scopes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/auth/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IAC5C,aAAa;IACb,eAAe;IACf,aAAa;IACb,aAAa;IACb,aAAa;IACb,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;CACvB,CAAC,CAAC"}
@@ -1,70 +0,0 @@
1
- /**
2
- * Thin client for the bridge-api `/v1/cli/workspace/*` routes (TBP-769).
3
- *
4
- * One `bridge auth login` covers every app of the workspace (unless the user
5
- * chose "only this app" on the consent screen). These routes are how the CLI
6
- * lists those apps, creates one, and trades the login token for a short-lived
7
- * token for ANOTHER app — the same shape the MCP server's `app` argument uses.
8
- *
9
- * Every call authenticates with the LOGIN token (`x-api-key`); per-app tokens
10
- * are never accepted here, and are never written to disk by the CLI.
11
- *
12
- * Errors come back as `{ code, message, fix }`. They are surfaced as a
13
- * `WorkspaceApiError` whose `code` and `hint` (= the server's `fix`) are picked
14
- * up by `outputError`, so the reader gets the next step, not just the failure.
15
- */
16
- export interface WorkspaceApp {
17
- id: string;
18
- name: string;
19
- home: boolean;
20
- }
21
- export interface WorkspaceAppsResponse {
22
- scope: 'workspace' | 'app';
23
- homeAppId: string;
24
- apps: WorkspaceApp[];
25
- }
26
- export interface WorkspaceAppToken {
27
- apiKey: string;
28
- expiresAt: string;
29
- app: {
30
- id: string;
31
- name: string;
32
- };
33
- }
34
- export declare class WorkspaceApiError extends Error {
35
- readonly code: string;
36
- readonly hint?: string;
37
- readonly status: number;
38
- constructor(code: string, message: string, status: number, hint?: string);
39
- }
40
- export interface WorkspaceClientOptions {
41
- baseUrl: string;
42
- /** The `bridge auth login` token. */
43
- loginToken: string;
44
- fetchImpl?: typeof fetch;
45
- }
46
- export declare function createWorkspaceClient(options: WorkspaceClientOptions): {
47
- listApps: () => Promise<WorkspaceAppsResponse>;
48
- appToken: (appId: string) => Promise<WorkspaceAppToken>;
49
- createApp: (input: {
50
- name: string;
51
- callbackUrl?: string;
52
- }) => Promise<{
53
- app: {
54
- id: string;
55
- name: string;
56
- };
57
- }>;
58
- };
59
- /** App ids are Mongo ObjectIds. Anything else is treated as an app name. */
60
- export declare function looksLikeAppId(value: string): boolean;
61
- /**
62
- * Resolve `<id|name>` against a list of apps. Id first (exact), then name
63
- * (case-insensitive). Two apps sharing a name is an ERROR, never a first match
64
- * — acting on the wrong app is the failure this whole area exists to prevent.
65
- */
66
- export declare function resolveAppSelector<T extends {
67
- id: string;
68
- name: string;
69
- }>(selector: string, apps: T[]): T;
70
- //# sourceMappingURL=workspace-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-client.d.ts","sourceRoot":"","sources":["../../src/auth/workspace-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAOzE;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB;;sBA4B/C,MAAM;uBAEL;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;aAC3C;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;;EAE7C;AA2BD,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACvE,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,EAAE,GACR,CAAC,CAqBH"}
@@ -1,105 +0,0 @@
1
- /**
2
- * Thin client for the bridge-api `/v1/cli/workspace/*` routes (TBP-769).
3
- *
4
- * One `bridge auth login` covers every app of the workspace (unless the user
5
- * chose "only this app" on the consent screen). These routes are how the CLI
6
- * lists those apps, creates one, and trades the login token for a short-lived
7
- * token for ANOTHER app — the same shape the MCP server's `app` argument uses.
8
- *
9
- * Every call authenticates with the LOGIN token (`x-api-key`); per-app tokens
10
- * are never accepted here, and are never written to disk by the CLI.
11
- *
12
- * Errors come back as `{ code, message, fix }`. They are surfaced as a
13
- * `WorkspaceApiError` whose `code` and `hint` (= the server's `fix`) are picked
14
- * up by `outputError`, so the reader gets the next step, not just the failure.
15
- */
16
- export class WorkspaceApiError extends Error {
17
- code;
18
- hint;
19
- status;
20
- constructor(code, message, status, hint) {
21
- super(message);
22
- this.name = 'WorkspaceApiError';
23
- this.code = code;
24
- this.status = status;
25
- if (hint)
26
- this.hint = hint;
27
- }
28
- }
29
- export function createWorkspaceClient(options) {
30
- const baseUrl = options.baseUrl.replace(/\/$/, '');
31
- const fetchImpl = options.fetchImpl ?? globalThis.fetch;
32
- async function call(method, path, body) {
33
- let res;
34
- try {
35
- res = await fetchImpl(`${baseUrl}/v1/cli/workspace${path}`, {
36
- method,
37
- headers: {
38
- 'x-api-key': options.loginToken,
39
- ...(body !== undefined ? { 'content-type': 'application/json' } : {}),
40
- },
41
- ...(body !== undefined ? { body: JSON.stringify(body) } : {}),
42
- });
43
- }
44
- catch (err) {
45
- throw new WorkspaceApiError('NETWORK_ERROR', `Could not reach ${baseUrl}: ${err instanceof Error ? err.message : String(err)}`, 0);
46
- }
47
- if (!res.ok)
48
- throw await translateError(res);
49
- return (await res.json());
50
- }
51
- return {
52
- listApps: () => call('GET', '/apps'),
53
- appToken: (appId) => call('POST', `/apps/${encodeURIComponent(appId)}/token`),
54
- createApp: (input) => call('POST', '/apps', input),
55
- };
56
- }
57
- async function translateError(res) {
58
- let raw;
59
- try {
60
- raw = await res.json();
61
- }
62
- catch {
63
- raw = undefined;
64
- }
65
- const obj = (raw && typeof raw === 'object' ? raw : {});
66
- const str = (v) => (typeof v === 'string' && v.length > 0 ? v : undefined);
67
- let code = str(obj.code) ?? `HTTP_${res.status}`;
68
- let message = str(obj.message) ?? `Bridge API returned HTTP ${res.status}.`;
69
- let fix = str(obj.fix);
70
- if (res.status === 401) {
71
- code = str(obj.code) ?? 'UNAUTHORIZED';
72
- if (!str(obj.message))
73
- message = 'Your login is no longer valid.';
74
- fix = fix ?? 'Run `bridge auth login` again.';
75
- }
76
- else if (res.status === 403 && !fix && !str(obj.code)) {
77
- // A token that is not a `bridge auth login` token (e.g. BRIDGE_API_KEY).
78
- fix = 'App selection needs a `bridge auth login` credential.';
79
- }
80
- return new WorkspaceApiError(code, message, res.status, fix);
81
- }
82
- /** App ids are Mongo ObjectIds. Anything else is treated as an app name. */
83
- export function looksLikeAppId(value) {
84
- return /^[a-f0-9]{24}$/i.test(value.trim());
85
- }
86
- /**
87
- * Resolve `<id|name>` against a list of apps. Id first (exact), then name
88
- * (case-insensitive). Two apps sharing a name is an ERROR, never a first match
89
- * — acting on the wrong app is the failure this whole area exists to prevent.
90
- */
91
- export function resolveAppSelector(selector, apps) {
92
- const needle = selector.trim();
93
- const byId = apps.find((a) => a.id === needle);
94
- if (byId)
95
- return byId;
96
- const lower = needle.toLowerCase();
97
- const byName = apps.filter((a) => a.name.toLowerCase() === lower);
98
- if (byName.length === 1)
99
- return byName[0];
100
- if (byName.length > 1) {
101
- throw new WorkspaceApiError('APP_AMBIGUOUS', `"${needle}" matches ${byName.length} apps by name (${byName.map((a) => a.id).join(', ')}).`, 0, 'Select the app by id instead. `bridge app list` shows them.');
102
- }
103
- throw new WorkspaceApiError('APP_NOT_FOUND', `No app in this login matches "${needle}". Known: ${apps.map((a) => `${a.name} (${a.id})`).join(', ') || '(none)'}.`, 0, 'Run `bridge app list` to see the apps this login covers.');
104
- }
105
- //# sourceMappingURL=workspace-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-client.js","sourceRoot":"","sources":["../../src/auth/workspace-client.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * `bridge auth config|mfa|password-policy` — the original auth subcommands
3
- * that pre-date TBP-113. Kept as-is; just lifted out of `auth.command.ts`
4
- * so the file stays small and testable.
5
- */
6
- import type { Command } from 'commander';
7
- export declare function registerAuthConfigCommands(auth: Command): void;
8
- //# sourceMappingURL=config.command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.command.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/config.command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAyD9D"}
@@ -1,60 +0,0 @@
1
- import { getManagementClient } from '../../config.js';
2
- import { outputSuccess, outputError } from '../../output.js';
3
- export function registerAuthConfigCommands(auth) {
4
- auth
5
- .command('config')
6
- .description('Get current auth configuration')
7
- .action(async () => {
8
- try {
9
- const app = await getManagementClient().app.get();
10
- outputSuccess({
11
- mfaEnabled: app.mfaEnabled,
12
- passkeysEnabled: app.passkeysEnabled,
13
- magicLinkEnabled: app.magicLinkEnabled,
14
- googleSsoEnabled: app.googleSsoEnabled,
15
- azureAdSsoEnabled: app.azureAdSsoEnabled,
16
- githubSsoEnabled: app.githubSsoEnabled,
17
- linkedinSsoEnabled: app.linkedinSsoEnabled,
18
- facebookSsoEnabled: app.facebookSsoEnabled,
19
- appleSsoEnabled: app.appleSsoEnabled,
20
- onboardingFlow: app.onboardingFlow,
21
- tenantSelfSignup: app.tenantSelfSignup,
22
- accessTokenTTL: app.accessTokenTTL,
23
- refreshTokenTTL: app.refreshTokenTTL,
24
- });
25
- }
26
- catch (err) {
27
- outputError(err);
28
- }
29
- });
30
- auth
31
- .command('mfa')
32
- .description('Enable or disable MFA')
33
- .requiredOption('--enabled <bool>', 'true or false', (v) => v === 'true')
34
- .action(async (opts) => {
35
- try {
36
- outputSuccess(await getManagementClient().app.update({ mfaEnabled: opts.enabled }));
37
- }
38
- catch (err) {
39
- outputError(err);
40
- }
41
- });
42
- auth
43
- .command('password-policy')
44
- .description('Update access token TTL')
45
- .option('--access-token-ttl <seconds>', 'Access token TTL in seconds', parseInt)
46
- .option('--refresh-token-ttl <seconds>', 'Refresh token TTL in seconds', parseInt)
47
- .action(async (opts) => {
48
- try {
49
- const data = Object.fromEntries(Object.entries({
50
- accessTokenTTL: opts.accessTokenTtl,
51
- refreshTokenTTL: opts.refreshTokenTtl,
52
- }).filter(([, v]) => v !== undefined));
53
- outputSuccess(await getManagementClient().app.update(data));
54
- }
55
- catch (err) {
56
- outputError(err);
57
- }
58
- });
59
- }
60
- //# sourceMappingURL=config.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.command.js","sourceRoot":"","sources":["../../../src/commands/auth/config.command.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,UAAU,0BAA0B,CAAC,IAAa;IACtD,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAClD,aAAa,CAAC;gBACZ,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;gBACxC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;gBAC1C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;gBAC1C,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,eAAe,EAAE,GAAG,CAAC,eAAe;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,uBAAuB,CAAC;SACpC,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,aAAa,CAAC,MAAM,mBAAmB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,EAAE,QAAQ,CAAC;SAC/E,MAAM,CAAC,+BAA+B,EAAE,8BAA8B,EAAE,QAAQ,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC;gBACb,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CACtC,CAAC;YACF,aAAa,CAAC,MAAM,mBAAmB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}