@brass-build/cli 0.2.0 → 0.4.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 (59) hide show
  1. package/AGENTS.md +170 -11
  2. package/CHANGELOG.md +29 -0
  3. package/README.md +79 -15
  4. package/dist/api.d.ts +45 -0
  5. package/dist/api.d.ts.map +1 -1
  6. package/dist/api.js +21 -2
  7. package/dist/api.js.map +1 -1
  8. package/dist/approval-prompt.d.ts +25 -0
  9. package/dist/approval-prompt.d.ts.map +1 -0
  10. package/dist/approval-prompt.js +44 -0
  11. package/dist/approval-prompt.js.map +1 -0
  12. package/dist/args.d.ts.map +1 -1
  13. package/dist/args.js +10 -1
  14. package/dist/args.js.map +1 -1
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +213 -31
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands.d.ts +28 -1
  19. package/dist/commands.d.ts.map +1 -1
  20. package/dist/commands.js +358 -24
  21. package/dist/commands.js.map +1 -1
  22. package/dist/config.d.ts +1 -0
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js.map +1 -1
  25. package/dist/login.d.ts +1 -0
  26. package/dist/login.d.ts.map +1 -1
  27. package/dist/login.js +30 -16
  28. package/dist/login.js.map +1 -1
  29. package/dist/project.d.ts +8 -0
  30. package/dist/project.d.ts.map +1 -1
  31. package/dist/project.js +75 -7
  32. package/dist/project.js.map +1 -1
  33. package/dist/sdk-pairing.d.ts +9 -0
  34. package/dist/sdk-pairing.d.ts.map +1 -0
  35. package/dist/sdk-pairing.js +42 -0
  36. package/dist/sdk-pairing.js.map +1 -0
  37. package/dist/session.d.ts +15 -1
  38. package/dist/session.d.ts.map +1 -1
  39. package/dist/session.js +78 -16
  40. package/dist/session.js.map +1 -1
  41. package/dist/store.d.ts +10 -0
  42. package/dist/store.d.ts.map +1 -1
  43. package/dist/store.js +41 -0
  44. package/dist/store.js.map +1 -1
  45. package/dist/version.d.ts +2 -2
  46. package/dist/version.js +1 -1
  47. package/package.json +2 -1
  48. package/src/api.ts +80 -2
  49. package/src/approval-prompt.ts +75 -0
  50. package/src/args.ts +10 -1
  51. package/src/cli.ts +257 -32
  52. package/src/commands.ts +468 -30
  53. package/src/config.ts +5 -1
  54. package/src/login.ts +40 -15
  55. package/src/project.ts +82 -7
  56. package/src/sdk-pairing.ts +53 -0
  57. package/src/session.ts +106 -14
  58. package/src/store.ts +77 -0
  59. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAIhB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAMD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB5E;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAIZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AASD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4E5E"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQ3C,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAGhB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAMD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC5E;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAIZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AASD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkF5E"}
package/dist/login.js CHANGED
@@ -13,8 +13,9 @@
13
13
  // of superseding the code already relayed, and a lapsed grant is replaced in
14
14
  // place with a fresh one whose code is printed. A caller that has to relay a
15
15
  // second code because the first expired is the cost being avoided.
16
- import { deviceAuthorize, pollDeviceTokenOnce, decodeEmail } from './session.js';
16
+ import { deviceAuthorize, pollDeviceTokenOnce, postDeviceCancel, decodeEmail } from './session.js';
17
17
  import { readPendingLogin, writePendingLogin, writeStoredCredential, } from './store.js';
18
+ import { renderApprovalPrompt } from './approval-prompt.js';
18
19
  const realSleep = (ms) => new Promise((r) => setTimeout(r, ms));
19
20
  // A grant with less than this left is renewed rather than handed out, so a
20
21
  // caller never relays a code that dies while the human is still reading it.
@@ -30,9 +31,22 @@ export async function loginStart(options) {
30
31
  // second code and forgets the first, so an approval the human is part-way
31
32
  // through completes a grant the CLI can no longer redeem and they are asked
32
33
  // to sign in again.
33
- const existing = options.force === true ? null : await readPendingLogin(options.profile, env);
34
- const resumed = existing !== null && existing.expiresAt - now() > MIN_USABLE_REMAINING_MS ? existing : null;
35
- const pending = resumed ?? (await mintPendingLogin(options.authBaseUrl, now(), options.profile, env));
34
+ const existing = await readPendingLogin(options.profile, env);
35
+ const resumed = options.force !== true &&
36
+ existing !== null &&
37
+ existing.expiresAt - now() > MIN_USABLE_REMAINING_MS
38
+ ? existing
39
+ : null;
40
+ // A superseded grant that is still live stays approvable on the server for
41
+ // the rest of its TTL while this machine forgets the only copy of its
42
+ // device code, so cancel it before the record is overwritten. Best-effort:
43
+ // an undelivered cancel leaves a grant nobody can redeem from here, and the
44
+ // new grant is the one this command is for.
45
+ if (resumed === null && existing !== null && existing.expiresAt > now()) {
46
+ await postDeviceCancel(existing.authBaseUrl, existing.deviceCode);
47
+ }
48
+ const pending = resumed ??
49
+ (await mintPendingLogin(options.authBaseUrl, now(), options.profile, env, options.targetAppId));
36
50
  promptFor(options.log, pending, {
37
51
  lead: resumed === null ? null : 'A sign-in is already waiting for approval.',
38
52
  });
@@ -77,7 +91,7 @@ export async function loginCheck(options) {
77
91
  let justPrompted = false;
78
92
  for (;;) {
79
93
  if (now() >= pending.expiresAt) {
80
- pending = await mintPendingLogin(pending.authBaseUrl, now(), options.profile, env);
94
+ pending = await mintPendingLogin(pending.authBaseUrl, now(), options.profile, env, pending.targetAppId);
81
95
  intervalSeconds = pending.intervalSeconds;
82
96
  renewed = true;
83
97
  promptFor(options.log, pending, {
@@ -90,7 +104,7 @@ export async function loginCheck(options) {
90
104
  if (!outcome.tokens.sessionToken) {
91
105
  throw new Error('Device sign-in did not return a session token.');
92
106
  }
93
- await writeStoredCredential(options.profile, { session: { sid: outcome.tokens.sessionToken } }, env);
107
+ await writeStoredCredential(options.profile, { session: { sid: outcome.tokens.sessionToken, authBaseUrl: pending.authBaseUrl } }, env);
94
108
  await writePendingLogin(options.profile, null, env);
95
109
  const email = decodeEmail(outcome.tokens.idToken);
96
110
  options.log.success(email !== undefined ? `Signed in as ${email}.` : 'Signed in.');
@@ -125,11 +139,12 @@ export async function loginCheck(options) {
125
139
  });
126
140
  return 0;
127
141
  }
128
- async function mintPendingLogin(authBaseUrl, now, profile, env) {
129
- const auth = await deviceAuthorize(authBaseUrl, now);
142
+ async function mintPendingLogin(authBaseUrl, now, profile, env, targetAppId) {
143
+ const auth = await deviceAuthorize(authBaseUrl, now, targetAppId);
130
144
  const pending = {
131
145
  authBaseUrl,
132
146
  deviceCode: auth.deviceCode,
147
+ ...(targetAppId !== undefined ? { targetAppId } : {}),
133
148
  userCode: auth.userCode,
134
149
  verificationUri: auth.verificationUri,
135
150
  ...(auth.verificationUriComplete !== undefined
@@ -147,14 +162,13 @@ function targetUrl(pending) {
147
162
  function remainingSeconds(pending, now) {
148
163
  return Math.max(0, Math.round((pending.expiresAt - now) / 1000));
149
164
  }
150
- // The one rendering of "here is what to relay, and here is what to run next",
151
- // so a resumed, renewed, and freshly minted grant all read the same to whoever
152
- // is relaying it.
153
165
  function promptFor(log, pending, opts) {
154
- log.info((opts.lead !== null ? `${opts.lead}\n` : '') +
155
- 'To approve this sign-in, go to:\n' +
156
- ` ${targetUrl(pending)}\n` +
157
- `and confirm the code: ${pending.userCode}\n` +
158
- '\nThen run `brass login --check --wait` to finish signing in.');
166
+ log.info(renderApprovalPrompt({
167
+ url: targetUrl(pending),
168
+ code: pending.userCode,
169
+ lead: opts.lead,
170
+ nextCommand: 'brass login --check --wait',
171
+ relaying: true,
172
+ }));
159
173
  }
160
174
  //# sourceMappingURL=login.js.map
package/dist/login.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,yEAAyE;AACzE,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,+EAA+E;AAC/E,0BAA0B;AAC1B,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,wEAAwE;AACxE,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,mEAAmE;AAEnE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,MAAM,SAAS,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEvF,2EAA2E;AAC3E,4EAA4E;AAC5E,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAoBvC,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9D,MAAM,OAAO,GACX,OAAO,CAAC,KAAK,KAAK,IAAI;QACtB,QAAQ,KAAK,IAAI;QACjB,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,uBAAuB;QAClD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC;IACX,2EAA2E;IAC3E,sEAAsE;IACtE,2EAA2E;IAC3E,4EAA4E;IAC5E,4CAA4C;IAC5C,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE,EAAE,CAAC;QACxE,MAAM,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,OAAO,GACX,OAAO;QACP,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAClG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE;QAC9B,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4CAA4C;KAC7E,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,OAAO,KAAK,IAAI;YACzB,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC;YACpC,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,UAAU,EAAE,OAAO,CAAC,SAAS;YAC7B,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAcD,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AACzE,uCAAuC;AACvC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;IAEhC,IAAI,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAC9C,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,4EAA4E;IAC5E,0EAA0E;IAC1E,+BAA+B;IAC/B,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,SAAS,CAAC;QACR,IAAI,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,GAAG,MAAM,gBAAgB,CAC9B,OAAO,CAAC,WAAW,EACnB,GAAG,EAAE,EACL,OAAO,CAAC,OAAO,EACf,GAAG,EACH,OAAO,CAAC,WAAW,CACpB,CAAC;YACF,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;YAC1C,OAAO,GAAG,IAAI,CAAC;YACf,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE;gBAC9B,IAAI,EAAE,2DAA2D;aAClE,CAAC,CAAC;YACH,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,qBAAqB,CACzB,OAAO,CAAC,OAAO,EACf,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,EACnF,GAAG,CACJ,CAAC;YACF,MAAM,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YACnF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,uEAAuE;QACvE,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW;YAAE,eAAe,IAAI,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,GAAG,EAAE,GAAG,eAAe,GAAG,IAAI,CAAC;QAClD,IAAI,UAAU,GAAG,QAAQ;YAAE,MAAM;QACjC,MAAM,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;QACpC,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,4EAA4E;IAC5E,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACtC,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC;QACpC,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,kBAAkB,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;KACrD,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,WAAmB,EACnB,GAAW,EACX,OAAgB,EAChB,GAAsB,EACtB,WAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,OAAO,GAAiB;QAC5B,WAAW;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,GAAG,CAAC,IAAI,CAAC,uBAAuB,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE;YAC3D,CAAC,CAAC,EAAE,CAAC;QACP,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;IACF,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,OAAqB;IACtC,OAAO,OAAO,CAAC,uBAAuB,IAAI,OAAO,CAAC,eAAe,CAAC;AACpE,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAqB,EAAE,GAAW;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,OAAqB,EAAE,IAA6B;IAClF,GAAG,CAAC,IAAI,CACN,oBAAoB,CAAC;QACnB,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC;QACvB,IAAI,EAAE,OAAO,CAAC,QAAQ;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;AACJ,CAAC"}
package/dist/project.d.ts CHANGED
@@ -20,7 +20,15 @@ export interface AppManifest {
20
20
  schema?: BrassSchemaManifest;
21
21
  [key: string]: unknown;
22
22
  }
23
+ export declare const MANIFEST_FILENAME = "brass-app.json";
24
+ export declare function publishManifestCandidates(dir: string): string[];
25
+ export declare function sourceManifestCandidates(): string[];
23
26
  export declare function readManifest(path: string): Promise<AppManifest | null>;
27
+ export declare function loadFirstManifest(cwd: string, candidates: readonly string[]): Promise<{
28
+ path: string;
29
+ manifest: AppManifest;
30
+ } | null>;
31
+ export declare function firstExistingManifestPath(cwd: string, candidates: readonly string[]): Promise<string | null>;
24
32
  export declare function writeManifest(path: string, manifest: AppManifest): Promise<void>;
25
33
  export declare function writeTextFile(path: string, content: string): Promise<void>;
26
34
  export declare function mergeSchemaIntoManifest(manifest: AppManifest, schema: BrassSchemaManifest): AppManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOpD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1C;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAWhF;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAQf;AAKD,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,GAAG,IAAI,CAKhB;AAUD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IAOd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAS5E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtF;AAKD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAMD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAEb;AAgBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAyCzF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,UAAU,CAK1E;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEpE;AASD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAKvE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhE"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOpD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1C;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAWhF;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAQf;AAKD,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,GAAG,IAAI,CAKhB;AAUD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IAOd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAOlD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/D;AAOD,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAOnD;AAOD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmB5E;AAMD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,GAAG,IAAI,CAAC,CAMzD;AAMD,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtF;AAKD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAMD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAEb;AAgBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAyCzF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,UAAU,CAK1E;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAEpE;AASD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAKvE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhE"}
package/dist/project.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { readFile, writeFile, readdir, stat, mkdir, realpath } from 'node:fs/promises';
2
- import { join, relative, sep, dirname } from 'node:path';
2
+ import { join, relative, resolve, sep, dirname } from 'node:path';
3
3
  import { createHash } from 'node:crypto';
4
4
  import { zipSync } from 'fflate';
5
5
  const PROJECT_DIR = '.brass';
@@ -43,17 +43,85 @@ export function resolveAppId(inputs) {
43
43
  function nonEmpty(v) {
44
44
  return typeof v === 'string' && v.trim() !== '';
45
45
  }
46
+ // The manifest filename, and the bundle-relative directory the capability
47
+ // docs put it in.
48
+ export const MANIFEST_FILENAME = 'brass-app.json';
49
+ const WELL_KNOWN_DIR = '.well-known';
50
+ // Where `publish` and `status` look for the served manifest, most
51
+ // authoritative first. The copy inside the bundle is the one the platform
52
+ // reads back after a deploy, so it outranks the repo root, which is the flat
53
+ // layout an app that keeps its manifest beside `package.json` uses.
54
+ export function publishManifestCandidates(dir) {
55
+ return [join(dir, WELL_KNOWN_DIR, MANIFEST_FILENAME), MANIFEST_FILENAME];
56
+ }
57
+ // Where `schema pull` looks for a manifest to merge a pulled schema into.
58
+ // Source locations only: a bundler rewrites its output directory on the next
59
+ // build, so a schema written there is gone before the app is published. Each
60
+ // candidate is used only when it already holds a file, so a layout this list
61
+ // does not name falls back to the root default rather than being guessed at.
62
+ export function sourceManifestCandidates() {
63
+ return [
64
+ MANIFEST_FILENAME,
65
+ join(WELL_KNOWN_DIR, MANIFEST_FILENAME),
66
+ join('public', WELL_KNOWN_DIR, MANIFEST_FILENAME),
67
+ join('static', WELL_KNOWN_DIR, MANIFEST_FILENAME),
68
+ ];
69
+ }
70
+ // Absent means no file at this path, which is what lets a caller walk a
71
+ // candidate list. Every other failure throws: a manifest that exists and
72
+ // cannot be parsed is a mistake to report, and answering it with `null` drops
73
+ // the `name` and `client_token` it was written to carry, which reads as a
74
+ // missing manifest and creates a duplicate app on the next stateless run.
46
75
  export async function readManifest(path) {
76
+ let raw;
47
77
  try {
48
- const raw = await readFile(path, 'utf8');
49
- const parsed = JSON.parse(raw);
50
- if (typeof parsed !== 'object' || parsed === null)
78
+ raw = await readFile(path, 'utf8');
79
+ }
80
+ catch (err) {
81
+ const code = err.code;
82
+ if (code === 'ENOENT' || code === 'ENOTDIR')
51
83
  return null;
52
- return parsed;
84
+ throw new Error(`Could not read the manifest at ${path}: ${err.message}`);
53
85
  }
54
- catch {
55
- return null;
86
+ let parsed;
87
+ try {
88
+ parsed = JSON.parse(raw);
89
+ }
90
+ catch (err) {
91
+ throw new Error(`The manifest at ${path} is not valid JSON: ${err.message}`);
92
+ }
93
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
94
+ throw new Error(`The manifest at ${path} must hold a JSON object.`);
95
+ }
96
+ return parsed;
97
+ }
98
+ // The first candidate that holds a manifest, paired with the path it came
99
+ // from so a caller can name it. A candidate with no file is skipped; one that
100
+ // is present and unreadable throws out of `readManifest`, so a malformed
101
+ // manifest is reported rather than passed over for the next candidate down.
102
+ export async function loadFirstManifest(cwd, candidates) {
103
+ for (const candidate of candidates) {
104
+ const manifest = await readManifest(resolve(cwd, candidate));
105
+ if (manifest !== null)
106
+ return { path: candidate, manifest };
107
+ }
108
+ return null;
109
+ }
110
+ // The first candidate that holds a file, without parsing it. `schema pull`
111
+ // picks its destination this way so it merges into a malformed manifest's
112
+ // path and fails there, instead of stepping over it and writing a second
113
+ // manifest the bundle never serves.
114
+ export async function firstExistingManifestPath(cwd, candidates) {
115
+ for (const candidate of candidates) {
116
+ try {
117
+ if ((await stat(resolve(cwd, candidate))).isFile())
118
+ return candidate;
119
+ }
120
+ catch {
121
+ // Not there, or not reachable through this path. Try the next.
122
+ }
56
123
  }
124
+ return null;
57
125
  }
58
126
  export async function writeManifest(path, manifest) {
59
127
  await mkdir(dirname(path), { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface LoadedSdk {
2
+ version: string;
3
+ path: string;
4
+ }
5
+ export declare function sdkMismatchMessage(args: {
6
+ pinned: string | undefined;
7
+ loaded: LoadedSdk | null;
8
+ }): string | null;
9
+ //# sourceMappingURL=sdk-pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-pairing.d.ts","sourceRoot":"","sources":["../src/sdk-pairing.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAIhB,IAAI,EAAE,MAAM,CAAC;CACd;AASD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;CAC1B,GAAG,MAAM,GAAG,IAAI,CAchB"}
@@ -0,0 +1,42 @@
1
+ // Which `@brass-build/client` this CLI is allowed to use.
2
+ //
3
+ // The dependency is pinned to one exact version, and what the CLI imports is
4
+ // the `internal` subpath, the entry that promises nothing from one release to
5
+ // the next. So the only copy it can run against is the one it names, and a
6
+ // correct install always provides it.
7
+ //
8
+ // What does not is a CLI running somewhere its own dependency is not
9
+ // reachable, and every way in is quiet. `npx brass` from a directory with no
10
+ // `node_modules` fetches the CLI alone from the registry. `npm i -g` nests a
11
+ // registry copy under the CLI. Installing the CLI tarball by itself resolves
12
+ // the SDK from npm, which succeeds precisely because an unreleased build in a
13
+ // working tree still carries the last released version number.
14
+ //
15
+ // The check is on the VERSION, not on any one export, and that is the point:
16
+ // a check per export is re-earned every time the CLI reaches for a new one,
17
+ // and it reports whatever that call happened to need rather than the pairing
18
+ // that is actually wrong. One version comparison covers every surface the CLI
19
+ // imports today and every one it adds later.
20
+ // The mismatch, as a sentence, or `null` when the pairing is sound.
21
+ //
22
+ // `loaded` is null when the SDK could not be resolved from the CLI's own
23
+ // location. That is not a mismatch: it is the shape an in-repo run takes,
24
+ // where the module specifier is mapped to the SDK's source and there is no
25
+ // installed package to read a version from. Being unable to check is not
26
+ // evidence of a fault, so it passes.
27
+ export function sdkMismatchMessage(args) {
28
+ const { pinned, loaded } = args;
29
+ if (pinned === undefined || loaded === null)
30
+ return null;
31
+ if (loaded.version === pinned)
32
+ return null;
33
+ return (`This CLI is built against @brass-build/client ${pinned}, and the copy it ` +
34
+ `loads is ${loaded.version} (${loaded.path}). It reads the SDK's internal ` +
35
+ `entry, which changes between releases, so the two have to match. Install ` +
36
+ `the CLI into the directory you run it from ("npm i @brass-build/cli") and ` +
37
+ `run it as ./node_modules/.bin/brass with absolute paths: a global install ` +
38
+ `keeps its own copy of the SDK, and npx resolves node_modules from the ` +
39
+ `current directory, so it fetches one from the registry when run anywhere ` +
40
+ `else.`);
41
+ }
42
+ //# sourceMappingURL=sdk-pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-pairing.js","sourceRoot":"","sources":["../src/sdk-pairing.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,sCAAsC;AACtC,EAAE;AACF,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,+DAA+D;AAC/D,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,6CAA6C;AAU7C,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,qCAAqC;AACrC,MAAM,UAAU,kBAAkB,CAAC,IAGlC;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,CACL,iDAAiD,MAAM,oBAAoB;QAC3E,YAAY,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,iCAAiC;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,OAAO,CACR,CAAC;AACJ,CAAC"}
package/dist/session.d.ts CHANGED
@@ -8,6 +8,19 @@ export interface RefreshedTokens {
8
8
  }
9
9
  export declare function postRefresh(authBaseUrl: string, sid: string, origin?: string, now?: number): Promise<RefreshedTokens>;
10
10
  export declare function postSignOut(authBaseUrl: string, sid: string, origin?: string): Promise<boolean>;
11
+ export type BrowserSessionOutcome = {
12
+ state: 'ready';
13
+ url: string;
14
+ expiresIn: number;
15
+ } | {
16
+ state: 'needs_approval';
17
+ approvalUrl: string;
18
+ expiresIn: number;
19
+ };
20
+ export declare function postDeviceAppSession(authBaseUrl: string, sid: string, args: {
21
+ appId: string;
22
+ returnTo: string;
23
+ }, origin?: string): Promise<BrowserSessionOutcome>;
11
24
  export declare function postDeviceCancel(authBaseUrl: string, deviceCode: string): Promise<boolean>;
12
25
  export declare function decodeEmail(idToken: string): string | undefined;
13
26
  export interface LoginResult {
@@ -22,7 +35,7 @@ export interface DeviceAuthorization {
22
35
  intervalSeconds: number;
23
36
  expiresAt: number;
24
37
  }
25
- export declare function deviceAuthorize(authBaseUrl: string, now?: number): Promise<DeviceAuthorization>;
38
+ export declare function deviceAuthorize(authBaseUrl: string, now?: number, targetAppId?: string): Promise<DeviceAuthorization>;
26
39
  export type DevicePollOutcome = {
27
40
  state: 'approved';
28
41
  tokens: RefreshedTokens;
@@ -40,6 +53,7 @@ export declare function pollDeviceToken(authBaseUrl: string, auth: DeviceAuthori
40
53
  }): Promise<RefreshedTokens>;
41
54
  export interface DeviceLoginOptions {
42
55
  authBaseUrl: string;
56
+ targetAppId?: string;
43
57
  onPrompt?: (auth: DeviceAuthorization) => void;
44
58
  openBrowser?: (url: string) => void;
45
59
  sleep?: (ms: number) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAY9C,eAAO,MAAM,UAAU,2BAA2B,CAAC;AAUnD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAKlB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2BD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAuB,EAC/B,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,eAAe,CAAC,CA8C1B;AAUD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAuB,GAC9B,OAAO,CAAC,OAAO,CAAC,CAelB;AAMD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAYlB;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW/D;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAQD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,mBAAmB,CAAC,CA+B9B;AAMD,MAAM,MAAM,iBAAiB,GACzB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAC9C;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAExB,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,iBAAiB,CAAC,CA0C5B;AAKD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,mBAAmB,EACzB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GACvE,OAAO,CAAC,eAAe,CAAC,CAa1B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAI/C,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAWnF;AAoCD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAW1E"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/session.js CHANGED
@@ -10,6 +10,7 @@
10
10
  // later token refresh.
11
11
  import { spawn } from 'node:child_process';
12
12
  import { BrassApiError, networkError } from './api.js';
13
+ import { renderApprovalPrompt } from './approval-prompt.js';
13
14
  // Every auth call carries a few hundred bytes, so a host still silent after
14
15
  // this is one that is not going to answer.
15
16
  const AUTH_TIMEOUT_MS = 15_000;
@@ -90,9 +91,9 @@ export async function postRefresh(authBaseUrl, sid, origin = REFRESH_ORIGIN, now
90
91
  // rest of the session's life, so forgetting it locally leaves a working
91
92
  // credential behind wherever a copy of the file went.
92
93
  //
93
- // Reports whether the server confirmed it. Every outcome still clears the
94
- // local credential (the caller asked to be signed out on this machine), so
95
- // this is what tells the caller whether a credential elsewhere is still live.
94
+ // Reports whether the server confirmed it. The stored pointer is the caller's
95
+ // only handle on the session, so what the caller does with the record follows
96
+ // from this: an undelivered revoke keeps it for the retry.
96
97
  export async function postSignOut(authBaseUrl, sid, origin = REFRESH_ORIGIN) {
97
98
  const url = `${authBaseUrl}/sign-out-of-app?${new URLSearchParams({ app_id: CLI_APP_ID }).toString()}`;
98
99
  try {
@@ -110,10 +111,58 @@ export async function postSignOut(authBaseUrl, sid, origin = REFRESH_ORIGIN) {
110
111
  return false;
111
112
  }
112
113
  }
114
+ // Ask the auth API for a URL that signs a browser in as the human this
115
+ // machine is signed in as. The stored device pointer is the credential, and
116
+ // the answer is `return_to` with a one-time code on it, so what reaches the
117
+ // browser expires in minutes and is spent once.
118
+ //
119
+ // The URL is a credential for as long as it lives. It belongs in the browser
120
+ // the caller is about to drive, not in a log, a PR body, or a commit.
121
+ export async function postDeviceAppSession(authBaseUrl, sid, args, origin = REFRESH_ORIGIN) {
122
+ const url = `${authBaseUrl}/device/app-session`;
123
+ let response;
124
+ try {
125
+ response = await fetch(url, {
126
+ method: 'POST',
127
+ headers: { 'content-type': 'application/x-www-form-urlencoded', origin },
128
+ body: new URLSearchParams({ sid, app_id: args.appId, return_to: args.returnTo }),
129
+ signal: AbortSignal.timeout(AUTH_TIMEOUT_MS),
130
+ });
131
+ }
132
+ catch (cause) {
133
+ throw networkError(`reaching ${authBaseUrl}`, cause);
134
+ }
135
+ const json = (await response.json().catch(() => ({})));
136
+ if (response.ok) {
137
+ if (!json.url) {
138
+ throw new BrassApiError(response.status, 'Brass returned no browser-session URL.');
139
+ }
140
+ return {
141
+ state: 'ready',
142
+ url: json.url,
143
+ expiresIn: tokenTtlSeconds(json.expires_in),
144
+ };
145
+ }
146
+ if (json.error === 'app_not_approved' && json.approval_url) {
147
+ return {
148
+ state: 'needs_approval',
149
+ approvalUrl: json.approval_url,
150
+ expiresIn: tokenTtlSeconds(json.expires_in),
151
+ };
152
+ }
153
+ // The server's own wording where it has one: every refusal here names a
154
+ // specific thing the caller can fix (an unknown app, a return_to off the
155
+ // allowlist, a sign-in that has ended), and rewording them locally would
156
+ // lose which.
157
+ throw new BrassApiError(response.status, json.error_description ??
158
+ (response.status === 401
159
+ ? "Your Brass sign-in is no longer valid (401). Run 'brass login' to sign in again."
160
+ : `Could not mint a browser session (${response.status}).`));
161
+ }
113
162
  // Abandon a sign-in this machine started and never redeemed, so the code it
114
- // relayed to a human stops being redeemable. Best effort, like `postSignOut`:
115
- // the caller clears the local record either way, and reports what it could not
116
- // reach.
163
+ // relayed to a human stops being redeemable. Reports whether the server took
164
+ // it, like `postSignOut`: the record naming the grant is the caller's only
165
+ // handle on it, so what the caller does with the record follows from this.
117
166
  export async function postDeviceCancel(authBaseUrl, deviceCode) {
118
167
  try {
119
168
  const response = await fetch(`${authBaseUrl}/device/cancel`, {
@@ -142,8 +191,14 @@ export function decodeEmail(idToken) {
142
191
  return undefined;
143
192
  }
144
193
  }
145
- export async function deviceAuthorize(authBaseUrl, now = Date.now()) {
194
+ // `targetAppId` is the app the machine will hand a browser once it is signed
195
+ // in (`brass login --app`). The grant still mints for the CLI alone; naming a
196
+ // target only widens what the human's one approval covers, so a later
197
+ // `brass browser-session` needs no second trip to a browser.
198
+ export async function deviceAuthorize(authBaseUrl, now = Date.now(), targetAppId) {
146
199
  const body = new URLSearchParams({ app_id: CLI_APP_ID });
200
+ if (targetAppId !== undefined)
201
+ body.set('target_app_id', targetAppId);
147
202
  let response;
148
203
  try {
149
204
  response = await fetch(`${authBaseUrl}/device/authorize`, {
@@ -156,9 +211,14 @@ export async function deviceAuthorize(authBaseUrl, now = Date.now()) {
156
211
  catch (cause) {
157
212
  throw new Error(`Network error reaching ${authBaseUrl}: ${String(cause)}`);
158
213
  }
159
- if (!response.ok)
160
- throw new Error(`Device sign-in could not start (${response.status})`);
161
- const json = (await response.json());
214
+ // The server's own reason where it sent one. Every 400 here names a
215
+ // specific thing the caller got wrong (an app id that is not an app, an app
216
+ // that does not support device sign-in), and a status on its own sends them
217
+ // looking at the network instead.
218
+ const json = (await response.json().catch(() => ({})));
219
+ if (!response.ok) {
220
+ throw new Error(json.error_description ?? `Device sign-in could not start (${response.status})`);
221
+ }
162
222
  return {
163
223
  deviceCode: json.device_code,
164
224
  userCode: json.user_code,
@@ -242,7 +302,7 @@ export async function pollDeviceToken(authBaseUrl, auth, opts = {}) {
242
302
  }
243
303
  }
244
304
  export async function loginDevice(options) {
245
- const auth = await deviceAuthorize(options.authBaseUrl);
305
+ const auth = await deviceAuthorize(options.authBaseUrl, Date.now(), options.targetAppId);
246
306
  (options.onPrompt ?? defaultDevicePrompt)(auth);
247
307
  (options.openBrowser ?? openBrowser)(auth.verificationUriComplete ?? auth.verificationUri);
248
308
  const tokens = await pollDeviceToken(options.authBaseUrl, auth, options.sleep ? { sleep: options.sleep } : {});
@@ -251,11 +311,13 @@ export async function loginDevice(options) {
251
311
  return { sessionToken: tokens.sessionToken, email: decodeEmail(tokens.idToken) };
252
312
  }
253
313
  function defaultDevicePrompt(auth) {
254
- const target = auth.verificationUriComplete ?? auth.verificationUri;
255
- process.stderr.write('\nOpening your browser to approve this sign-in.\n' +
256
- `If it doesn't open, go to:\n ${target}\n` +
257
- `and confirm the code: ${auth.userCode}\n` +
258
- '\nWaiting for approval...\n');
314
+ process.stderr.write(`\n${renderApprovalPrompt({
315
+ url: auth.verificationUriComplete ?? auth.verificationUri,
316
+ code: auth.userCode,
317
+ // This command polls to approval on its own, so there is nothing further
318
+ // to run; what the reader needs is that the wait has started.
319
+ closing: 'Waiting for approval...',
320
+ })}\n`);
259
321
  }
260
322
  function openBrowser(url) {
261
323
  const platform = process.platform;
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -5,6 +5,7 @@ export declare function writeStoredCredential(target: Profile, credential: Store
5
5
  export interface PendingLogin {
6
6
  authBaseUrl: string;
7
7
  deviceCode: string;
8
+ targetAppId?: string;
8
9
  userCode: string;
9
10
  verificationUri: string;
10
11
  verificationUriComplete?: string;
@@ -14,4 +15,13 @@ export interface PendingLogin {
14
15
  export declare function pendingLoginFilePath(env?: NodeJS.ProcessEnv): string;
15
16
  export declare function readPendingLogin(profile: Profile, env?: NodeJS.ProcessEnv): Promise<PendingLogin | null>;
16
17
  export declare function writePendingLogin(profile: Profile, pending: PendingLogin | null, env?: NodeJS.ProcessEnv): Promise<void>;
18
+ export interface PendingApproval {
19
+ appId: string;
20
+ approvalUrl: string;
21
+ authBaseUrl: string;
22
+ expiresAt: number;
23
+ }
24
+ export declare function pendingApprovalFilePath(env?: NodeJS.ProcessEnv): string;
25
+ export declare function readPendingApproval(profile: Profile, env?: NodeJS.ProcessEnv): Promise<PendingApproval | null>;
26
+ export declare function writePendingApproval(profile: Profile, pending: PendingApproval | null, env?: NodeJS.ProcessEnv): Promise<void>;
17
27
  //# sourceMappingURL=store.d.ts.map