@levr-one/auth 1.0.2 → 1.1.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.
- package/dist/oauth-client.d.ts.map +1 -1
- package/dist/oauth-client.js +7 -2
- package/dist/oauth-client.js.map +1 -1
- package/dist/oauth-client.test.js +4 -1
- package/dist/oauth-client.test.js.map +1 -1
- package/dist/token-store.d.ts +5 -0
- package/dist/token-store.d.ts.map +1 -1
- package/dist/token-store.js +1 -1
- package/dist/token-store.js.map +1 -1
- package/dist/workspace-store.d.ts +70 -26
- package/dist/workspace-store.d.ts.map +1 -1
- package/dist/workspace-store.js +295 -77
- package/dist/workspace-store.js.map +1 -1
- package/dist/workspace-store.test.js +348 -0
- package/dist/workspace-store.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client.d.ts","sourceRoot":"","sources":["../src/oauth-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,KAAK,EAEV,WAAW,EACX,YAAY,EAEb,MAAM,YAAY,CAAC;AAYpB,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,0BAA0B,CAAa;IAC/C;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAkB;IACzC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,CAA8B;gBAExC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAkB/D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAQhD;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;YACW,eAAe;IAkF7B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyChC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAkFtC;;OAEG;YACW,YAAY;IAgC1B;;;;;;;;;;;;;;OAcG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B;;;;OAIG;YACW,eAAe;IA+C7B;;;OAGG;YACW,eAAe;IAyE7B;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"oauth-client.d.ts","sourceRoot":"","sources":["../src/oauth-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,KAAK,EAEV,WAAW,EACX,YAAY,EAEb,MAAM,YAAY,CAAC;AAYpB,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,0BAA0B,CAAa;IAC/C;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAkB;IACzC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,CAA8B;gBAExC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAkB/D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAQhD;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;YACW,eAAe;IAkF7B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyChC;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAkFtC;;OAEG;YACW,YAAY;IAgC1B;;;;;;;;;;;;;;OAcG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B;;;;OAIG;YACW,eAAe;IA+C7B;;;OAGG;YACW,eAAe;IAyE7B;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IA0BjB;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAoBvC;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;;;;;OAQG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAY1C;;;OAGG;IACH,WAAW,IAAI,IAAI;IAUnB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,cAAc,CAAC,aAAa,GAAE,MAAU,GAAG,OAAO;IAMlD;;;;OAIG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,YAAY,IAAI,IAAI;CAGrB"}
|
package/dist/oauth-client.js
CHANGED
|
@@ -452,7 +452,10 @@ export class OAuthClient {
|
|
|
452
452
|
});
|
|
453
453
|
if (tokens.user?.workspace_id) {
|
|
454
454
|
try {
|
|
455
|
-
|
|
455
|
+
// Key the identity by the SAME backend URL the tokens were just
|
|
456
|
+
// stored under — the workspace belongs to that backend and nothing
|
|
457
|
+
// else (internal).
|
|
458
|
+
saveWorkspace(tokens.user.workspace_id, this.config.authServerUrl);
|
|
456
459
|
}
|
|
457
460
|
catch (err) {
|
|
458
461
|
console.error('[levr-auth] Failed to persist workspace:', err);
|
|
@@ -527,7 +530,9 @@ export class OAuthClient {
|
|
|
527
530
|
this.refreshToken = null;
|
|
528
531
|
this.expiresAt = 0;
|
|
529
532
|
clearTokens();
|
|
530
|
-
|
|
533
|
+
// Only this client's backend loses its workspace pin — other backends'
|
|
534
|
+
// entries (a worktree, staging) are none of this logout's business.
|
|
535
|
+
clearWorkspace(this.config.authServerUrl);
|
|
531
536
|
}
|
|
532
537
|
/**
|
|
533
538
|
* Get token expiration time
|
package/dist/oauth-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../src/oauth-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../src/oauth-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -233,7 +233,10 @@ describe('OAuthClient.setTokens workspace persistence', () => {
|
|
|
233
233
|
}
|
|
234
234
|
await p;
|
|
235
235
|
expect(saveWorkspace).toHaveBeenCalledTimes(1);
|
|
236
|
-
|
|
236
|
+
// The backend URL is not optional here (internal): workspace.json is keyed
|
|
237
|
+
// by it, so a grant that persists an id without saying which backend it
|
|
238
|
+
// came from is exactly how a local workspace ended up pinned to staging.
|
|
239
|
+
expect(saveWorkspace).toHaveBeenCalledWith(wsId, 'https://api.test.com');
|
|
237
240
|
});
|
|
238
241
|
it('does NOT persist workspace when grant omits user.workspace_id (refresh-like)', async () => {
|
|
239
242
|
mockFetch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-client.test.js","sourceRoot":"","sources":["../src/oauth-client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGzE,+DAA+D;AAC/D,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IACjC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;IACtB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;IACnB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;IACpB,uBAAuB,EAAE,GAAG,EAAE,CAAC,KAAK;IACpC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU;CAC3B,CAAC,CAAC,CAAC;AAEJ,gFAAgF;AAChF,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;IACtB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;IACzB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,oBAAoB,EAAE,GAAG,EAAE,CAAC,yBAAyB;CACtD,CAAC,CAAC,CAAC;AAEJ,4DAA4D;AAC5D,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACjB,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,sBAAsB;QAC9B,OAAO,EAAE,sBAAsB;QAC/B,SAAS,EAAE,sBAAsB;QACjC,aAAa,EAAE,GAAG;KACnB,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1B,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAElC,MAAM,cAAc,GAAgC;IAClD,WAAW,EAAE,cAAc;IAC3B,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,sCAAsC;IACxD,yBAAyB,EACvB,0DAA0D;IAC5D,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,MAAM,aAAa,GAAG;IACpB,YAAY,EAAE,YAAY;IAC1B,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,aAAa;IAC5B,KAAK,EAAE,oBAAoB;CAC5B,CAAC;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,IAAI,MAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,GAAG,IAAI,WAAW,CAAC;YACvB,QAAQ,EAAE,GAAG;YACb,aAAa,EAAE,sBAAsB;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,SAAS,EAAE,CAAC;QACtB,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,KAAK,UAAU,YAAY,CAAC,OAAsB;QAChD,oEAAoE;QACpE,wDAAwD;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,SAAS;aACN,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SAC5C,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;SAC3C,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAGrD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QACzE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAE,UAAU,CAAC,IAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAC/D,aAAa,CACd,CAAC;QAEF,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAGnD,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,CAAE,SAAS,CAAC,IAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAC9D,0BAA0B,CAC3B,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,MAAM,CAAC,gBAAgB,CAAC;YACtB,WAAW,EAAE,YAAY;YACzB,YAAY,EAAE,aAAa;SAC5B,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,SAAS;aACN,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SAC5C,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,GAAG,EAAE,CACT,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;SACtE,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;SAC3C,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,SAAS;aACN,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SAC5C,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;SACpE,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;SAC3C,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC;QAEtB,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,SAAS;aACN,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SAC5C,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;SACxE,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnC,gFAAgF;QAChF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzC,+BAA+B,CAChC,CAAC;QACF,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,SAAS;aACN,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SAC5C,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;SACxE,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACnE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,SAAS;aACN,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SAC5C,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;SAC3C,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC1E,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,SAAS,CAAC,qBAAqB,CAAC;YAC9B,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;SAC3C,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CACpD,wDAAwD,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,IAAI,MAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,GAAG,IAAI,WAAW,CAAC;YACvB,QAAQ,EAAE,GAAG;YACb,aAAa,EAAE,sBAAsB;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,SAAS,EAAE,CAAC;QACtB,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,IAAI,GAAG,eAAe,CAAC;QAC7B,SAAS;aACN,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SAC5C,CAAC;aACD,qBAAqB,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CACT,OAAO,CAAC,OAAO,CAAC;gBACd,GAAG,aAAa;gBAChB,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;gBAC5B,0DAA0D;gBAC1D,6DAA6D;gBAC7D,qDAAqD;gBACrD,UAAU,EAAE;oBACV;wBACE,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,OAAO;wBAChB,UAAU,EAAE,IAAI;qBACjB;iBACF;aACF,CAAC;SACL,CAAC,CAAC;QAEL,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,CAAC;QAER,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-client.test.js","sourceRoot":"","sources":["../src/oauth-client.test.ts"],"names":[],"mappings":"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"}
|
package/dist/token-store.d.ts
CHANGED
|
@@ -75,4 +75,9 @@ export declare function getTokenFilePath(): string;
|
|
|
75
75
|
* Get TQ directory path
|
|
76
76
|
*/
|
|
77
77
|
export declare function getTqDir(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Read the current API URL from ~/.tq/config.json without importing
|
|
80
|
+
* config.ts (avoids circular dependency since config.ts imports us).
|
|
81
|
+
*/
|
|
82
|
+
export declare function getCurrentApiUrl(): string | undefined;
|
|
78
83
|
//# sourceMappingURL=token-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;AAyBzD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAMlE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEtD;AAwDD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAmBhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAMlE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAOjE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAUrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAIzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CA6BlC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAiCjD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAIzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAEjC"}
|
|
1
|
+
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;AAyBzD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAMlE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEtD;AAwDD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAmBhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAMlE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAOjE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAUrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAIzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CA6BlC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAiCjD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAIzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAiBrD"}
|
package/dist/token-store.js
CHANGED
|
@@ -278,7 +278,7 @@ export function getTqDir() {
|
|
|
278
278
|
* Read the current API URL from ~/.tq/config.json without importing
|
|
279
279
|
* config.ts (avoids circular dependency since config.ts imports us).
|
|
280
280
|
*/
|
|
281
|
-
function getCurrentApiUrl() {
|
|
281
|
+
export function getCurrentApiUrl() {
|
|
282
282
|
try {
|
|
283
283
|
// Env var takes precedence
|
|
284
284
|
if (process.env.TQ_BACKEND_URL) {
|
package/dist/token-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAKzB;;GAEG;AACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE1D;;GAEG;AACH,sEAAsE;AACtE,kEAAkE;AAClE,wEAAwE;AACxE,oEAAoE;AACpE,yEAAyE;AACzE,MAAM,QAAQ,GAA4B;IACxC,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,sBAAsB;IAC/B,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAKF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,GAAc,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAE9D,mEAAmE;QACnE,IAAI,aAAa,IAAI,MAAM,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,MAAiC,CAAC;YACjD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,sBAAsB,CAAC;YACxD,MAAM,GAAG,GAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;YACxC,mBAAmB;YACnB,aAAa,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,MAA6B,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAa;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QACvD,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;IACH,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,CAAU;IAC9B,MAAM,GAAG,GAAG,CAA4B,CAAC;IACzC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,IAAI,GAAG,EAAE,YAAY,IAAI,GAAG,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,uCAAuC;IACvC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9B,IAAI,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/C,4DAA4D;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IACtE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,sDAAsD;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;IACnE,IAAI,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,gBAAgB,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC;QACxE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAClB,aAAa,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY,EAAE,MAAoB;IACjE,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO;QAEvC,sCAAsC;QACtC,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC;YACH,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACxC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACtC,IAAI,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;YACvB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,6DAA6D;YAC7D,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;YAE9D,8CAA8C;YAC9C,IAAI,aAAa,IAAI,MAAM,IAAK,MAAuB,CAAC,YAAY,EAAE,CAAC;gBACrE,MAAM,MAAM,GAAG,MAAsB,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC;gBAClD,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjC,OAAO,CAAC,KAAK,CACX,mEAAmE,CACpE,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,oEAAoE;YACpE,MAAM,GAAG,GAAG,MAAkB,CAAC;YAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAClE,IAAI,UAAU,EAAE,CAAC;gBACf,aAAa,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,KAAK,CACX,mEAAmE,CACpE,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../src/token-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Disk-backed workspace state at ~/.tq/workspace.json
|
|
3
|
-
*
|
|
2
|
+
* Disk-backed workspace/identity state at ~/.tq/workspace.json
|
|
3
|
+
*
|
|
4
|
+
* Stored as a map keyed by backend URL — the SAME key space as
|
|
5
|
+
* ~/.tq/oauth-tokens.json (see token-store.ts):
|
|
6
|
+
* {
|
|
7
|
+
* "https://api.levr.now": { workspace_id, user_id, user_email, ... },
|
|
8
|
+
* "http://localhost:8180": { ... }
|
|
9
|
+
* }
|
|
10
|
+
*
|
|
11
|
+
* internal: this file used to hold a SINGLE global record with no note of
|
|
12
|
+
* which backend it came from. A login or `select_workspace` against a local
|
|
13
|
+
* backend (including a worktree's own backend on its assigned port)
|
|
14
|
+
* overwrote it machine-globally, and the next `yarn setup:mcp` stamped that
|
|
15
|
+
* local workspace id into the `Workspace-Id` header of a STAGING levr URL.
|
|
16
|
+
* Keying by backend URL makes that structurally impossible: a local id lives
|
|
17
|
+
* under a different key than the staging one, so it cannot be read back for
|
|
18
|
+
* a staging endpoint.
|
|
19
|
+
*
|
|
20
|
+
* Backward-compatible: a legacy flat file (`{ workspace_id, ... }` at the top
|
|
21
|
+
* level) is attributed to the currently-configured backend and migrated
|
|
22
|
+
* in-place on first read — the same treatment `readTokenMap()` gives legacy
|
|
23
|
+
* token files. Attribution is a best guess by construction; that is
|
|
24
|
+
* acceptable because this file is a hint-only cache (see `IdentityCache`) and
|
|
25
|
+
* a wrong guess costs one workspace re-selection, not a security decision.
|
|
26
|
+
*
|
|
27
|
+
* Follows the same atomic-write pattern as token-store.ts.
|
|
4
28
|
*/
|
|
5
29
|
/**
|
|
6
|
-
* Identity cache shape.
|
|
7
|
-
*
|
|
8
|
-
* complete identity record — partial files are treated as a cache miss.
|
|
30
|
+
* Identity cache shape. All fields are required for a complete identity
|
|
31
|
+
* record — partial entries are treated as a cache miss.
|
|
9
32
|
*
|
|
10
33
|
* Cache is hint-only: it is consumed for MCP `instructions` and for
|
|
11
34
|
* `get_context` display. It MUST NOT be used in any security check.
|
|
@@ -18,41 +41,62 @@ export interface IdentityCache {
|
|
|
18
41
|
role: string;
|
|
19
42
|
}
|
|
20
43
|
/**
|
|
21
|
-
* Load persisted workspace ID
|
|
22
|
-
*
|
|
44
|
+
* Load the persisted workspace ID for a backend.
|
|
45
|
+
*
|
|
46
|
+
* @param apiBaseUrl Backend the id must belong to. Defaults to the currently
|
|
47
|
+
* configured backend — correct for stdio MCP servers and the CLI, which
|
|
48
|
+
* talk to whatever `~/.tq/config.json` points at.
|
|
49
|
+
* @returns workspace_id, or null when this backend has no entry
|
|
23
50
|
*/
|
|
24
|
-
export declare function loadWorkspace(): string | null;
|
|
51
|
+
export declare function loadWorkspace(apiBaseUrl?: string): string | null;
|
|
25
52
|
/**
|
|
26
|
-
* Save workspace ID
|
|
53
|
+
* Save a workspace ID against a backend, leaving every other backend's entry
|
|
54
|
+
* intact. Preserves any identity fields already cached for that backend.
|
|
27
55
|
*/
|
|
28
|
-
export declare function saveWorkspace(workspaceId: string): void;
|
|
56
|
+
export declare function saveWorkspace(workspaceId: string, apiBaseUrl?: string): void;
|
|
29
57
|
/**
|
|
30
|
-
* Load the full identity cache
|
|
58
|
+
* Load the full identity cache for a backend.
|
|
31
59
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* - legacy single-field shape (`{ workspace_id }` only)
|
|
37
|
-
* - any field present but not a string
|
|
60
|
+
* Returns a typed `IdentityCache` only when all five fields are present and
|
|
61
|
+
* are strings. Returns `null` for a missing file, malformed JSON, a backend
|
|
62
|
+
* with no entry, a workspace-id-only entry, or any field that is not a
|
|
63
|
+
* string.
|
|
38
64
|
*
|
|
39
65
|
* Never throws — graceful degradation is mandatory because callers wire this
|
|
40
66
|
* into startup paths and watcher callbacks.
|
|
41
67
|
*/
|
|
42
|
-
export declare function loadIdentityCache(): IdentityCache | null;
|
|
68
|
+
export declare function loadIdentityCache(apiBaseUrl?: string): IdentityCache | null;
|
|
43
69
|
/**
|
|
44
|
-
* Save the full identity cache
|
|
70
|
+
* Save the full identity cache for a backend with an atomic write, leaving
|
|
71
|
+
* every other backend's entry intact.
|
|
72
|
+
*/
|
|
73
|
+
export declare function saveIdentityCache(data: IdentityCache, apiBaseUrl?: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Clear the persisted identity for ONE backend (e.g. on logout).
|
|
45
76
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
77
|
+
* Mirrors `clearTokens()`: only the current backend's entry is removed, and
|
|
78
|
+
* the file is deleted outright once the last entry is gone. An env switch
|
|
79
|
+
* must NOT call this — under URL keying, switching environments already
|
|
80
|
+
* selects a different entry, and clearing would throw away a still-valid
|
|
81
|
+
* workspace pin the user would have to re-select.
|
|
50
82
|
*/
|
|
51
|
-
export declare function
|
|
83
|
+
export declare function clearWorkspace(apiBaseUrl?: string): void;
|
|
52
84
|
/**
|
|
53
|
-
*
|
|
85
|
+
* Re-point the transitional top-level mirror at the CURRENTLY configured
|
|
86
|
+
* backend, without touching any keyed entry. Call this after changing which
|
|
87
|
+
* backend is configured (`tq:env`).
|
|
88
|
+
*
|
|
89
|
+
* The mirror is only recomputed on write, and an env switch writes nothing —
|
|
90
|
+
* so without this the mirror keeps pointing at the PREVIOUS backend and an
|
|
91
|
+
* old (pre-internal) client reads a pin for a backend it is no longer talking
|
|
92
|
+
* to. That is strictly worse than what it replaced: before the file was
|
|
93
|
+
* keyed, `tq:env` deleted the whole file, so an old client got nothing and
|
|
94
|
+
* fell back to unpinned. Failing to unpinned is safe; failing to another
|
|
95
|
+
* backend's workspace is not.
|
|
96
|
+
*
|
|
97
|
+
* No-op when the file does not exist. Remove alongside the mirror itself.
|
|
54
98
|
*/
|
|
55
|
-
export declare function
|
|
99
|
+
export declare function refreshMirror(): void;
|
|
56
100
|
/**
|
|
57
101
|
* Get workspace file path (for debugging)
|
|
58
102
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-store.d.ts","sourceRoot":"","sources":["../src/workspace-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace-store.d.ts","sourceRoot":"","sources":["../src/workspace-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAaH;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAyND;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAK5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAsB3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAUN;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBxD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
package/dist/workspace-store.js
CHANGED
|
@@ -1,20 +1,210 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Disk-backed workspace state at ~/.tq/workspace.json
|
|
3
|
-
*
|
|
2
|
+
* Disk-backed workspace/identity state at ~/.tq/workspace.json
|
|
3
|
+
*
|
|
4
|
+
* Stored as a map keyed by backend URL — the SAME key space as
|
|
5
|
+
* ~/.tq/oauth-tokens.json (see token-store.ts):
|
|
6
|
+
* {
|
|
7
|
+
* "https://api.levr.now": { workspace_id, user_id, user_email, ... },
|
|
8
|
+
* "http://localhost:8180": { ... }
|
|
9
|
+
* }
|
|
10
|
+
*
|
|
11
|
+
* internal: this file used to hold a SINGLE global record with no note of
|
|
12
|
+
* which backend it came from. A login or `select_workspace` against a local
|
|
13
|
+
* backend (including a worktree's own backend on its assigned port)
|
|
14
|
+
* overwrote it machine-globally, and the next `yarn setup:mcp` stamped that
|
|
15
|
+
* local workspace id into the `Workspace-Id` header of a STAGING levr URL.
|
|
16
|
+
* Keying by backend URL makes that structurally impossible: a local id lives
|
|
17
|
+
* under a different key than the staging one, so it cannot be read back for
|
|
18
|
+
* a staging endpoint.
|
|
19
|
+
*
|
|
20
|
+
* Backward-compatible: a legacy flat file (`{ workspace_id, ... }` at the top
|
|
21
|
+
* level) is attributed to the currently-configured backend and migrated
|
|
22
|
+
* in-place on first read — the same treatment `readTokenMap()` gives legacy
|
|
23
|
+
* token files. Attribution is a best guess by construction; that is
|
|
24
|
+
* acceptable because this file is a hint-only cache (see `IdentityCache`) and
|
|
25
|
+
* a wrong guess costs one workspace re-selection, not a security decision.
|
|
26
|
+
*
|
|
27
|
+
* Follows the same atomic-write pattern as token-store.ts.
|
|
4
28
|
*/
|
|
5
29
|
import * as fs from 'fs';
|
|
6
30
|
import * as path from 'path';
|
|
7
31
|
import { getTqDir } from './token-store.js';
|
|
32
|
+
import { loadConfig } from './config.js';
|
|
8
33
|
const WORKSPACE_FILE = 'workspace.json';
|
|
9
34
|
function getWorkspacePath() {
|
|
10
35
|
return path.join(getTqDir(), WORKSPACE_FILE);
|
|
11
36
|
}
|
|
37
|
+
/** The only fields an identity record — or the mirror — may carry. */
|
|
38
|
+
const IDENTITY_FIELDS = [
|
|
39
|
+
'workspace_id',
|
|
40
|
+
'user_id',
|
|
41
|
+
'user_email',
|
|
42
|
+
'user_name',
|
|
43
|
+
'role',
|
|
44
|
+
];
|
|
45
|
+
function isIdentityKey(key) {
|
|
46
|
+
return /^https?:\/\//i.test(key);
|
|
47
|
+
}
|
|
12
48
|
/**
|
|
13
|
-
*
|
|
49
|
+
* Strip trailing slashes and reject anything that is not an http(s) origin.
|
|
50
|
+
*
|
|
51
|
+
* This is the SINGLE gate both sides use: `resolveKey` will not write under a
|
|
52
|
+
* key that `readIdentityMap` would later discard. Without that agreement a
|
|
53
|
+
* scheme-less `apiBaseUrl` (`localhost:8080`) wrote an entry to disk that
|
|
54
|
+
* every subsequent read dropped — a silent, permanent loss of the pin with no
|
|
55
|
+
* error anywhere.
|
|
56
|
+
*/
|
|
57
|
+
function normalizeKey(url) {
|
|
58
|
+
const trimmed = url?.trim().replace(/\/+$/, '');
|
|
59
|
+
if (!trimmed || !isIdentityKey(trimmed))
|
|
60
|
+
return undefined;
|
|
61
|
+
return trimmed;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The backend the UNKEYED callers actually talk to.
|
|
65
|
+
*
|
|
66
|
+
* This MUST be `loadConfig()`, not `getCurrentApiUrl()`. The two disagree:
|
|
67
|
+
* `getCurrentApiUrl()` has two tiers (`TQ_BACKEND_URL` > `~/.tq/config.json`)
|
|
68
|
+
* while `loadConfig()` has four, and its third is the STORED TOKEN's
|
|
69
|
+
* `apiBaseUrl`. With no `config.json` but a token for a local backend, the
|
|
70
|
+
* two-tier version returns undefined and the old fallback guessed `staging` —
|
|
71
|
+
* filing a LOCAL workspace id under the STAGING key, which `setup-mcp` then
|
|
72
|
+
* stamped into the staging `Workspace-Id` header. That is internal reappearing
|
|
73
|
+
* through its own fix.
|
|
74
|
+
*
|
|
75
|
+
* Using the same resolver the callers use makes the key correct by
|
|
76
|
+
* construction: whatever backend they are about to talk to is the backend the
|
|
77
|
+
* record is filed under, including when that resolution itself ends at the
|
|
78
|
+
* staging default.
|
|
79
|
+
*/
|
|
80
|
+
function configuredBackend() {
|
|
81
|
+
return normalizeKey(loadConfig().apiUrl) ?? 'https://api.levr.now';
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolve which backend URL an identity read/write belongs to.
|
|
85
|
+
*
|
|
86
|
+
* An explicit argument (the caller knows its backend) wins; otherwise the
|
|
87
|
+
* configured backend. Callers that know their backend SHOULD pass it.
|
|
88
|
+
* `setup-mcp.ts` in particular must pass the URL it is about to write into
|
|
89
|
+
* `.mcp.json`, which is not necessarily the configured one — the levr MCP
|
|
90
|
+
* host differs from the API host (`https://ai.levr.now/api/v1/mcp` is served
|
|
91
|
+
* by the backend at `https://api.levr.now`), and stdio MCP servers resolve
|
|
92
|
+
* their own backend independently of whatever the levr HTTP entry points at.
|
|
93
|
+
*
|
|
94
|
+
* An explicit-but-malformed key is ignored rather than written, with a log —
|
|
95
|
+
* silently retargeting it at another backend would be the very leak this
|
|
96
|
+
* module exists to prevent.
|
|
97
|
+
*/
|
|
98
|
+
function resolveKey(apiBaseUrl) {
|
|
99
|
+
if (apiBaseUrl !== undefined) {
|
|
100
|
+
const explicit = normalizeKey(apiBaseUrl);
|
|
101
|
+
if (explicit)
|
|
102
|
+
return explicit;
|
|
103
|
+
console.error(`[levr-auth] Ignoring malformed backend url "${apiBaseUrl}" — ` +
|
|
104
|
+
'expected an http(s) origin. Falling back to the configured backend.');
|
|
105
|
+
}
|
|
106
|
+
return configuredBackend();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Read the raw identity map from disk.
|
|
110
|
+
* Handles migration from the legacy single-record format.
|
|
111
|
+
*/
|
|
112
|
+
function readIdentityMap() {
|
|
113
|
+
try {
|
|
114
|
+
const filePath = getWorkspacePath();
|
|
115
|
+
if (!fs.existsSync(filePath))
|
|
116
|
+
return {};
|
|
117
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
118
|
+
const parsed = JSON.parse(content);
|
|
119
|
+
// `typeof [] === 'object'` — explicitly reject arrays so property access
|
|
120
|
+
// on a parsed JSON array (`[0]`, `[1]`...) cannot accidentally satisfy
|
|
121
|
+
// the per-field checks in loadIdentityCache().
|
|
122
|
+
if (parsed === null ||
|
|
123
|
+
typeof parsed !== 'object' ||
|
|
124
|
+
Array.isArray(parsed)) {
|
|
125
|
+
return {};
|
|
126
|
+
}
|
|
127
|
+
// Keep only URL-shaped keys. This also strips the back-compat mirror
|
|
128
|
+
// fields (see writeIdentityMap) so they can never be mistaken for a
|
|
129
|
+
// backend entry.
|
|
130
|
+
const map = {};
|
|
131
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
132
|
+
if (!isIdentityKey(key))
|
|
133
|
+
continue;
|
|
134
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value)) {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
map[key] = value;
|
|
138
|
+
}
|
|
139
|
+
// Legacy flat shape — `{ workspace_id, ... }` and NOT ONE url key. The
|
|
140
|
+
// test is the ABSENCE of url keys, never the presence of `workspace_id`:
|
|
141
|
+
// a current file carries BOTH (the mirror), and treating that as legacy
|
|
142
|
+
// would collapse every backend's entry into one on the next read.
|
|
143
|
+
if (Object.keys(map).length === 0 && 'workspace_id' in parsed) {
|
|
144
|
+
const key = configuredBackend();
|
|
145
|
+
const migrated = { [key]: parsed };
|
|
146
|
+
writeIdentityMap(migrated);
|
|
147
|
+
return migrated;
|
|
148
|
+
}
|
|
149
|
+
return map;
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
console.error('[levr-auth] Failed to load workspace:', error);
|
|
153
|
+
return {};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Atomically write the identity map to `~/.tq/workspace.json`.
|
|
14
158
|
* Ensures the ~/.tq directory exists with 0o700, writes to `*.tmp` with
|
|
15
159
|
* 0o600, then renames over the target. Errors are logged, never thrown.
|
|
160
|
+
*
|
|
161
|
+
* ## TRANSITIONAL: the top-level mirror
|
|
162
|
+
*
|
|
163
|
+
* Alongside the url-keyed entries we also write the CONFIGURED backend's
|
|
164
|
+
* record at the top level, in the pre-internal flat shape:
|
|
165
|
+
*
|
|
166
|
+
* {
|
|
167
|
+
* "https://api.levr.now": { workspace_id: "A", ... },
|
|
168
|
+
* "http://localhost:8180": { workspace_id: "B", ... },
|
|
169
|
+
* "workspace_id": "A", "user_id": ..., ... <-- mirror of the configured one
|
|
170
|
+
* }
|
|
171
|
+
*
|
|
172
|
+
* ~/.tq is machine-global but every checkout runs its OWN
|
|
173
|
+
* `plugins/<name>/dist/index.js` (the `.mcp.json` entries use relative
|
|
174
|
+
* paths, so each worktree loads its own build), and
|
|
175
|
+
* a worktree on a feature branch does not get this code until that branch
|
|
176
|
+
* merges main — days or weeks. Without the mirror, an old stdio server in
|
|
177
|
+
* such a worktree reads `.workspace_id`, gets undefined, falls through to
|
|
178
|
+
* `ensureWorkspace()`, and its old `saveWorkspace()` REWRITES THE WHOLE FILE
|
|
179
|
+
* FLAT — wiping every other backend's entry. Main then re-migrates it, and
|
|
180
|
+
* the two ping-pong for as long as any stale checkout is in use.
|
|
181
|
+
*
|
|
182
|
+
* The mirror keeps those old readers resolving, so they never reach the
|
|
183
|
+
* read-fallthrough that ends in a flattening write.
|
|
184
|
+
*
|
|
185
|
+
* It does NOT stop an old WRITER, and that is not only the deliberate case
|
|
186
|
+
* (`tq:workspace` in a stale checkout). Observed live: `yarn tq:login`
|
|
187
|
+
* rewrites oauth-tokens.json, the running qinetic-mcp server's token watcher
|
|
188
|
+
* fires, and `qinetic-mcp/src/auth.ts` calls `saveIdentityCache()`
|
|
189
|
+
* unconditionally after re-auth — flattening the file two seconds after the
|
|
190
|
+
* login wrote it, with no user action at all.
|
|
191
|
+
*
|
|
192
|
+
* Note what decides that: a long-lived process holds whatever `@levr-one/auth`
|
|
193
|
+
* it imported AT STARTUP, so a freshly rebuilt `dist/` on disk changes
|
|
194
|
+
* nothing until the server is restarted (`/mcp` reconnect). Checkout
|
|
195
|
+
* freshness is necessary but not sufficient.
|
|
196
|
+
*
|
|
197
|
+
* This is survivable rather than fixed: the flat file still carries the
|
|
198
|
+
* correct id for the configured backend, and the next read by new code
|
|
199
|
+
* re-migrates it. What is lost each time is OTHER backends' entries — local
|
|
200
|
+
* worktree pins, which re-derive on their own since those backends
|
|
201
|
+
* auto-select their single seeded workspace. Nothing new code writes can
|
|
202
|
+
* prevent an old writer from overwriting the file.
|
|
203
|
+
*
|
|
204
|
+
* REMOVE once every checkout has rebuilt against this version — the mirror is
|
|
205
|
+
* only meaningful for one backend and is pure carrying cost after that.
|
|
16
206
|
*/
|
|
17
|
-
function
|
|
207
|
+
function writeIdentityMap(map) {
|
|
18
208
|
try {
|
|
19
209
|
const tqDir = getTqDir();
|
|
20
210
|
if (!fs.existsSync(tqDir)) {
|
|
@@ -22,6 +212,19 @@ function writeWorkspaceJsonAtomic(payload) {
|
|
|
22
212
|
}
|
|
23
213
|
const filePath = getWorkspacePath();
|
|
24
214
|
const tempPath = filePath + '.tmp';
|
|
215
|
+
// Mirror ONLY the five IdentityCache fields. Spreading the entry wholesale
|
|
216
|
+
// promoted any url-shaped field INSIDE it to a top-level entry, where the
|
|
217
|
+
// next read would serve it as that backend's record — a hand-edited or
|
|
218
|
+
// corrupted file could put an arbitrary workspace id under an arbitrary
|
|
219
|
+
// backend.
|
|
220
|
+
const mirrored = map[configuredBackend()];
|
|
221
|
+
const payload = { ...map };
|
|
222
|
+
if (mirrored) {
|
|
223
|
+
for (const field of IDENTITY_FIELDS) {
|
|
224
|
+
if (typeof mirrored[field] === 'string')
|
|
225
|
+
payload[field] = mirrored[field];
|
|
226
|
+
}
|
|
227
|
+
}
|
|
25
228
|
fs.writeFileSync(tempPath, JSON.stringify(payload, null, 2), {
|
|
26
229
|
mode: 0o600,
|
|
27
230
|
});
|
|
@@ -32,112 +235,127 @@ function writeWorkspaceJsonAtomic(payload) {
|
|
|
32
235
|
}
|
|
33
236
|
}
|
|
34
237
|
/**
|
|
35
|
-
* Load persisted workspace ID
|
|
36
|
-
*
|
|
238
|
+
* Load the persisted workspace ID for a backend.
|
|
239
|
+
*
|
|
240
|
+
* @param apiBaseUrl Backend the id must belong to. Defaults to the currently
|
|
241
|
+
* configured backend — correct for stdio MCP servers and the CLI, which
|
|
242
|
+
* talk to whatever `~/.tq/config.json` points at.
|
|
243
|
+
* @returns workspace_id, or null when this backend has no entry
|
|
37
244
|
*/
|
|
38
|
-
export function loadWorkspace() {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
43
|
-
const data = JSON.parse(content);
|
|
44
|
-
if (data.workspace_id && typeof data.workspace_id === 'string') {
|
|
45
|
-
return data.workspace_id;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
console.error('[levr-auth] Failed to load workspace:', error);
|
|
51
|
-
}
|
|
52
|
-
return null;
|
|
245
|
+
export function loadWorkspace(apiBaseUrl) {
|
|
246
|
+
const entry = readIdentityMap()[resolveKey(apiBaseUrl)];
|
|
247
|
+
const id = entry?.workspace_id;
|
|
248
|
+
return typeof id === 'string' && id ? id : null;
|
|
53
249
|
}
|
|
54
250
|
/**
|
|
55
|
-
* Save workspace ID
|
|
251
|
+
* Save a workspace ID against a backend, leaving every other backend's entry
|
|
252
|
+
* intact. Preserves any identity fields already cached for that backend.
|
|
56
253
|
*/
|
|
57
|
-
export function saveWorkspace(workspaceId) {
|
|
58
|
-
|
|
254
|
+
export function saveWorkspace(workspaceId, apiBaseUrl) {
|
|
255
|
+
const map = readIdentityMap();
|
|
256
|
+
const key = resolveKey(apiBaseUrl);
|
|
257
|
+
map[key] = { ...map[key], workspace_id: workspaceId };
|
|
258
|
+
writeIdentityMap(map);
|
|
59
259
|
}
|
|
60
260
|
/**
|
|
61
|
-
* Load the full identity cache
|
|
261
|
+
* Load the full identity cache for a backend.
|
|
62
262
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* - legacy single-field shape (`{ workspace_id }` only)
|
|
68
|
-
* - any field present but not a string
|
|
263
|
+
* Returns a typed `IdentityCache` only when all five fields are present and
|
|
264
|
+
* are strings. Returns `null` for a missing file, malformed JSON, a backend
|
|
265
|
+
* with no entry, a workspace-id-only entry, or any field that is not a
|
|
266
|
+
* string.
|
|
69
267
|
*
|
|
70
268
|
* Never throws — graceful degradation is mandatory because callers wire this
|
|
71
269
|
* into startup paths and watcher callbacks.
|
|
72
270
|
*/
|
|
73
|
-
export function loadIdentityCache() {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (!fs.existsSync(filePath))
|
|
77
|
-
return null;
|
|
78
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
79
|
-
const data = JSON.parse(content);
|
|
80
|
-
// `typeof [] === 'object'` — explicitly reject arrays so property
|
|
81
|
-
// access on a parsed JSON array (`[0]`, `[1]`...) cannot accidentally
|
|
82
|
-
// satisfy the per-field checks below.
|
|
83
|
-
if (data === null || typeof data !== 'object' || Array.isArray(data)) {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
const keys = [
|
|
87
|
-
'workspace_id',
|
|
88
|
-
'user_id',
|
|
89
|
-
'user_email',
|
|
90
|
-
'user_name',
|
|
91
|
-
'role',
|
|
92
|
-
];
|
|
93
|
-
for (const key of keys) {
|
|
94
|
-
const value = data[key];
|
|
95
|
-
if (typeof value !== 'string')
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
workspace_id: data.workspace_id,
|
|
100
|
-
user_id: data.user_id,
|
|
101
|
-
user_email: data.user_email,
|
|
102
|
-
user_name: data.user_name,
|
|
103
|
-
role: data.role,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
catch {
|
|
271
|
+
export function loadIdentityCache(apiBaseUrl) {
|
|
272
|
+
const entry = readIdentityMap()[resolveKey(apiBaseUrl)];
|
|
273
|
+
if (!entry)
|
|
107
274
|
return null;
|
|
275
|
+
const keys = [
|
|
276
|
+
'workspace_id',
|
|
277
|
+
'user_id',
|
|
278
|
+
'user_email',
|
|
279
|
+
'user_name',
|
|
280
|
+
'role',
|
|
281
|
+
];
|
|
282
|
+
for (const key of keys) {
|
|
283
|
+
if (typeof entry[key] !== 'string')
|
|
284
|
+
return null;
|
|
108
285
|
}
|
|
286
|
+
return {
|
|
287
|
+
workspace_id: entry.workspace_id,
|
|
288
|
+
user_id: entry.user_id,
|
|
289
|
+
user_email: entry.user_email,
|
|
290
|
+
user_name: entry.user_name,
|
|
291
|
+
role: entry.role,
|
|
292
|
+
};
|
|
109
293
|
}
|
|
110
294
|
/**
|
|
111
|
-
* Save the full identity cache
|
|
112
|
-
*
|
|
113
|
-
* Single writer pattern: `saveWorkspace` writes only `{ workspace_id }`;
|
|
114
|
-
* `saveIdentityCache` is the only path that writes the five-field shape.
|
|
115
|
-
* After the first identity-aware save, the file always contains all five
|
|
116
|
-
* fields. Same `.tmp` + `renameSync` pattern as `saveWorkspace`.
|
|
295
|
+
* Save the full identity cache for a backend with an atomic write, leaving
|
|
296
|
+
* every other backend's entry intact.
|
|
117
297
|
*/
|
|
118
|
-
export function saveIdentityCache(data) {
|
|
119
|
-
|
|
298
|
+
export function saveIdentityCache(data, apiBaseUrl) {
|
|
299
|
+
const map = readIdentityMap();
|
|
300
|
+
map[resolveKey(apiBaseUrl)] = {
|
|
120
301
|
workspace_id: data.workspace_id,
|
|
121
302
|
user_id: data.user_id,
|
|
122
303
|
user_email: data.user_email,
|
|
123
304
|
user_name: data.user_name,
|
|
124
305
|
role: data.role,
|
|
125
|
-
}
|
|
306
|
+
};
|
|
307
|
+
writeIdentityMap(map);
|
|
126
308
|
}
|
|
127
309
|
/**
|
|
128
|
-
* Clear persisted
|
|
310
|
+
* Clear the persisted identity for ONE backend (e.g. on logout).
|
|
311
|
+
*
|
|
312
|
+
* Mirrors `clearTokens()`: only the current backend's entry is removed, and
|
|
313
|
+
* the file is deleted outright once the last entry is gone. An env switch
|
|
314
|
+
* must NOT call this — under URL keying, switching environments already
|
|
315
|
+
* selects a different entry, and clearing would throw away a still-valid
|
|
316
|
+
* workspace pin the user would have to re-select.
|
|
129
317
|
*/
|
|
130
|
-
export function clearWorkspace() {
|
|
318
|
+
export function clearWorkspace(apiBaseUrl) {
|
|
131
319
|
try {
|
|
132
320
|
const filePath = getWorkspacePath();
|
|
133
|
-
if (fs.existsSync(filePath))
|
|
321
|
+
if (!fs.existsSync(filePath))
|
|
322
|
+
return;
|
|
323
|
+
const map = readIdentityMap();
|
|
324
|
+
const key = resolveKey(apiBaseUrl);
|
|
325
|
+
if (!(key in map))
|
|
326
|
+
return;
|
|
327
|
+
delete map[key];
|
|
328
|
+
if (Object.keys(map).length === 0) {
|
|
134
329
|
fs.unlinkSync(filePath);
|
|
135
330
|
}
|
|
331
|
+
else {
|
|
332
|
+
writeIdentityMap(map);
|
|
333
|
+
}
|
|
136
334
|
}
|
|
137
335
|
catch (error) {
|
|
138
336
|
console.error('[levr-auth] Failed to clear workspace:', error);
|
|
139
337
|
}
|
|
140
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* Re-point the transitional top-level mirror at the CURRENTLY configured
|
|
341
|
+
* backend, without touching any keyed entry. Call this after changing which
|
|
342
|
+
* backend is configured (`tq:env`).
|
|
343
|
+
*
|
|
344
|
+
* The mirror is only recomputed on write, and an env switch writes nothing —
|
|
345
|
+
* so without this the mirror keeps pointing at the PREVIOUS backend and an
|
|
346
|
+
* old (pre-internal) client reads a pin for a backend it is no longer talking
|
|
347
|
+
* to. That is strictly worse than what it replaced: before the file was
|
|
348
|
+
* keyed, `tq:env` deleted the whole file, so an old client got nothing and
|
|
349
|
+
* fell back to unpinned. Failing to unpinned is safe; failing to another
|
|
350
|
+
* backend's workspace is not.
|
|
351
|
+
*
|
|
352
|
+
* No-op when the file does not exist. Remove alongside the mirror itself.
|
|
353
|
+
*/
|
|
354
|
+
export function refreshMirror() {
|
|
355
|
+
if (!fs.existsSync(getWorkspacePath()))
|
|
356
|
+
return;
|
|
357
|
+
writeIdentityMap(readIdentityMap());
|
|
358
|
+
}
|
|
141
359
|
/**
|
|
142
360
|
* Get workspace file path (for debugging)
|
|
143
361
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-store.js","sourceRoot":"","sources":["../src/workspace-store.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace-store.js","sourceRoot":"","sources":["../src/workspace-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,14 @@ let saveWorkspace;
|
|
|
15
15
|
let clearWorkspace;
|
|
16
16
|
let getWorkspaceFilePath;
|
|
17
17
|
let loadIdentityCache;
|
|
18
|
+
let refreshMirror;
|
|
18
19
|
let saveIdentityCache;
|
|
19
20
|
beforeEach(async () => {
|
|
20
21
|
state.tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tq-ws-test-'));
|
|
22
|
+
// The backend resolver reads TQ_BACKEND_URL, so a developer or CI runner
|
|
23
|
+
// with it exported would silently re-key every expectation here (8 of these
|
|
24
|
+
// failed that way before this line existed).
|
|
25
|
+
vi.stubEnv('TQ_BACKEND_URL', '');
|
|
21
26
|
vi.resetModules();
|
|
22
27
|
const mod = await import('./workspace-store.js');
|
|
23
28
|
loadWorkspace = mod.loadWorkspace;
|
|
@@ -25,9 +30,11 @@ beforeEach(async () => {
|
|
|
25
30
|
clearWorkspace = mod.clearWorkspace;
|
|
26
31
|
getWorkspaceFilePath = mod.getWorkspaceFilePath;
|
|
27
32
|
loadIdentityCache = mod.loadIdentityCache;
|
|
33
|
+
refreshMirror = mod.refreshMirror;
|
|
28
34
|
saveIdentityCache = mod.saveIdentityCache;
|
|
29
35
|
});
|
|
30
36
|
afterEach(() => {
|
|
37
|
+
vi.unstubAllEnvs();
|
|
31
38
|
fs.rmSync(state.tmpDir, { recursive: true, force: true });
|
|
32
39
|
});
|
|
33
40
|
describe('getWorkspaceFilePath', () => {
|
|
@@ -166,4 +173,345 @@ describe('loadIdentityCache', () => {
|
|
|
166
173
|
expect(loadIdentityCache()).toBeNull();
|
|
167
174
|
});
|
|
168
175
|
});
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
// internal — per-backend keying
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
//
|
|
180
|
+
// The file is keyed by backend URL, same key space as oauth-tokens.json. The
|
|
181
|
+
// load-bearing assertions are the NEGATIVE ones: an id saved against one
|
|
182
|
+
// backend must never be readable for another. Before this, a login against a
|
|
183
|
+
// local/worktree backend overwrote a single global slot, and the next
|
|
184
|
+
// `yarn setup:mcp` stamped that local id into a STAGING Workspace-Id header.
|
|
185
|
+
const STAGING = 'https://api.levr.now';
|
|
186
|
+
const WORKTREE = 'http://localhost:9780';
|
|
187
|
+
describe('per-backend keying', () => {
|
|
188
|
+
it('does not return a worktree workspace id for staging', () => {
|
|
189
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
190
|
+
expect(loadWorkspace(STAGING)).toBeNull();
|
|
191
|
+
});
|
|
192
|
+
it('does not return a staging workspace id for a worktree', () => {
|
|
193
|
+
saveWorkspace('ws-staging', STAGING);
|
|
194
|
+
expect(loadWorkspace(WORKTREE)).toBeNull();
|
|
195
|
+
});
|
|
196
|
+
it('keeps both backends independently readable', () => {
|
|
197
|
+
saveWorkspace('ws-staging', STAGING);
|
|
198
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
199
|
+
expect(loadWorkspace(STAGING)).toBe('ws-staging');
|
|
200
|
+
expect(loadWorkspace(WORKTREE)).toBe('ws-local');
|
|
201
|
+
});
|
|
202
|
+
it('saving one backend does not clobber another', () => {
|
|
203
|
+
saveWorkspace('ws-staging', STAGING);
|
|
204
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
205
|
+
saveWorkspace('ws-staging-2', STAGING);
|
|
206
|
+
expect(loadWorkspace(WORKTREE)).toBe('ws-local');
|
|
207
|
+
});
|
|
208
|
+
it('treats two worktrees on different ports as different backends', () => {
|
|
209
|
+
saveWorkspace('ws-a', 'http://localhost:8180');
|
|
210
|
+
saveWorkspace('ws-b', 'http://localhost:8580');
|
|
211
|
+
expect(loadWorkspace('http://localhost:8180')).toBe('ws-a');
|
|
212
|
+
expect(loadWorkspace('http://localhost:8580')).toBe('ws-b');
|
|
213
|
+
});
|
|
214
|
+
it('normalizes trailing slashes so one backend is one key', () => {
|
|
215
|
+
saveWorkspace('ws-staging', `${STAGING}/`);
|
|
216
|
+
expect(loadWorkspace(STAGING)).toBe('ws-staging');
|
|
217
|
+
});
|
|
218
|
+
it('saveWorkspace preserves the identity fields already cached for that backend', () => {
|
|
219
|
+
saveIdentityCache({
|
|
220
|
+
workspace_id: 'ws-1',
|
|
221
|
+
user_id: 'u-1',
|
|
222
|
+
user_email: 'a@b.com',
|
|
223
|
+
user_name: 'A',
|
|
224
|
+
role: 'owner',
|
|
225
|
+
}, STAGING);
|
|
226
|
+
saveWorkspace('ws-2', STAGING);
|
|
227
|
+
expect(loadIdentityCache(STAGING)).toEqual({
|
|
228
|
+
workspace_id: 'ws-2',
|
|
229
|
+
user_id: 'u-1',
|
|
230
|
+
user_email: 'a@b.com',
|
|
231
|
+
user_name: 'A',
|
|
232
|
+
role: 'owner',
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
it('scopes the identity cache per backend', () => {
|
|
236
|
+
saveIdentityCache({
|
|
237
|
+
workspace_id: 'ws-1',
|
|
238
|
+
user_id: 'u-1',
|
|
239
|
+
user_email: 'a@b.com',
|
|
240
|
+
user_name: 'A',
|
|
241
|
+
role: 'owner',
|
|
242
|
+
}, STAGING);
|
|
243
|
+
expect(loadIdentityCache(WORKTREE)).toBeNull();
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
describe('clearWorkspace is per-backend', () => {
|
|
247
|
+
it('clears only the named backend', () => {
|
|
248
|
+
saveWorkspace('ws-staging', STAGING);
|
|
249
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
250
|
+
clearWorkspace(WORKTREE);
|
|
251
|
+
expect(loadWorkspace(WORKTREE)).toBeNull();
|
|
252
|
+
expect(loadWorkspace(STAGING)).toBe('ws-staging');
|
|
253
|
+
});
|
|
254
|
+
it('removes the file once the last backend is cleared', () => {
|
|
255
|
+
saveWorkspace('ws-staging', STAGING);
|
|
256
|
+
clearWorkspace(STAGING);
|
|
257
|
+
expect(fs.existsSync(getWorkspaceFilePath())).toBe(false);
|
|
258
|
+
});
|
|
259
|
+
it('is a no-op for a backend with no entry', () => {
|
|
260
|
+
saveWorkspace('ws-staging', STAGING);
|
|
261
|
+
clearWorkspace(WORKTREE);
|
|
262
|
+
expect(loadWorkspace(STAGING)).toBe('ws-staging');
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
describe('legacy flat-file migration', () => {
|
|
266
|
+
const legacy = {
|
|
267
|
+
workspace_id: 'ws-legacy',
|
|
268
|
+
user_id: 'u-1',
|
|
269
|
+
user_email: 'a@b.com',
|
|
270
|
+
user_name: 'A',
|
|
271
|
+
role: 'owner',
|
|
272
|
+
};
|
|
273
|
+
function writeLegacy() {
|
|
274
|
+
const tqDir = path.join(state.tmpDir, '.tq');
|
|
275
|
+
fs.mkdirSync(tqDir, { recursive: true });
|
|
276
|
+
fs.writeFileSync(path.join(tqDir, 'workspace.json'), JSON.stringify(legacy));
|
|
277
|
+
}
|
|
278
|
+
it('attributes a legacy record to the configured backend and rewrites the file keyed', () => {
|
|
279
|
+
writeLegacy();
|
|
280
|
+
// No ~/.tq/config.json in the temp home, so the configured backend falls
|
|
281
|
+
// back to staging — the same attribution readTokenMap() uses.
|
|
282
|
+
expect(loadWorkspace(STAGING)).toBe('ws-legacy');
|
|
283
|
+
const onDisk = JSON.parse(fs.readFileSync(getWorkspaceFilePath(), 'utf-8'));
|
|
284
|
+
// Exactly one url key — the record is attributed, not duplicated across
|
|
285
|
+
// backends. The remaining top-level fields are the transitional mirror
|
|
286
|
+
// (see the back-compat describe below), which old clients read.
|
|
287
|
+
expect(Object.keys(onDisk).filter((k) => k.startsWith('http'))).toEqual([
|
|
288
|
+
STAGING,
|
|
289
|
+
]);
|
|
290
|
+
expect(onDisk[STAGING]).toEqual(legacy);
|
|
291
|
+
});
|
|
292
|
+
it('does not serve a migrated legacy record to a different backend', () => {
|
|
293
|
+
writeLegacy();
|
|
294
|
+
expect(loadWorkspace(WORKTREE)).toBeNull();
|
|
295
|
+
});
|
|
296
|
+
it('preserves the identity fields through migration', () => {
|
|
297
|
+
writeLegacy();
|
|
298
|
+
expect(loadIdentityCache(STAGING)).toEqual(legacy);
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
// ---------------------------------------------------------------------------
|
|
302
|
+
// internal — transitional top-level mirror
|
|
303
|
+
// ---------------------------------------------------------------------------
|
|
304
|
+
//
|
|
305
|
+
// ~/.tq is machine-global but every checkout runs its own plugins/*/dist, and
|
|
306
|
+
// a worktree on a feature branch does not get this code until it merges main.
|
|
307
|
+
// An OLD reader that finds no `.workspace_id` falls through to
|
|
308
|
+
// ensureWorkspace(), whose old saveWorkspace() rewrites the file FLAT and
|
|
309
|
+
// wipes every other backend. The mirror keeps those readers resolving so they
|
|
310
|
+
// never reach that write.
|
|
311
|
+
/** Exactly what a pre-internal loadWorkspace() did. */
|
|
312
|
+
function readAsOldClient() {
|
|
313
|
+
const raw = fs.readFileSync(getWorkspaceFilePath(), 'utf-8');
|
|
314
|
+
const data = JSON.parse(raw);
|
|
315
|
+
return typeof data.workspace_id === 'string' ? data.workspace_id : null;
|
|
316
|
+
}
|
|
317
|
+
describe('back-compat mirror', () => {
|
|
318
|
+
it('an old client still resolves the configured backend after a keyed write', () => {
|
|
319
|
+
saveWorkspace('ws-staging', STAGING);
|
|
320
|
+
expect(readAsOldClient()).toBe('ws-staging');
|
|
321
|
+
});
|
|
322
|
+
it('mirrors the CONFIGURED backend, not whichever was written last', () => {
|
|
323
|
+
// No config.json in the temp home, so the configured backend is staging.
|
|
324
|
+
saveWorkspace('ws-staging', STAGING);
|
|
325
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
326
|
+
expect(readAsOldClient()).toBe('ws-staging');
|
|
327
|
+
});
|
|
328
|
+
it('mirrors the full identity, not just the id', () => {
|
|
329
|
+
saveIdentityCache({
|
|
330
|
+
workspace_id: 'ws-1',
|
|
331
|
+
user_id: 'u-1',
|
|
332
|
+
user_email: 'a@b.com',
|
|
333
|
+
user_name: 'A',
|
|
334
|
+
role: 'owner',
|
|
335
|
+
}, STAGING);
|
|
336
|
+
const raw = JSON.parse(fs.readFileSync(getWorkspaceFilePath(), 'utf-8'));
|
|
337
|
+
expect(raw.user_email).toBe('a@b.com');
|
|
338
|
+
expect(raw.role).toBe('owner');
|
|
339
|
+
});
|
|
340
|
+
it('keeps the url-keyed entries alongside the mirror', () => {
|
|
341
|
+
saveWorkspace('ws-staging', STAGING);
|
|
342
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
343
|
+
const raw = JSON.parse(fs.readFileSync(getWorkspaceFilePath(), 'utf-8'));
|
|
344
|
+
expect(raw[STAGING].workspace_id).toBe('ws-staging');
|
|
345
|
+
expect(raw[WORKTREE].workspace_id).toBe('ws-local');
|
|
346
|
+
});
|
|
347
|
+
it('writes NO mirror when the configured backend has no entry', () => {
|
|
348
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
349
|
+
expect(readAsOldClient()).toBeNull();
|
|
350
|
+
});
|
|
351
|
+
it('does not treat a mirrored file as legacy on re-read (the collapse trap)', () => {
|
|
352
|
+
// The legacy test must be "no url keys", never "has workspace_id" — a
|
|
353
|
+
// current file has both, and reading it as legacy would collapse every
|
|
354
|
+
// backend into the configured one.
|
|
355
|
+
saveWorkspace('ws-staging', STAGING);
|
|
356
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
357
|
+
expect(loadWorkspace(WORKTREE)).toBe('ws-local');
|
|
358
|
+
expect(loadWorkspace(STAGING)).toBe('ws-staging');
|
|
359
|
+
});
|
|
360
|
+
it('survives repeated read-write cycles without collapsing backends', () => {
|
|
361
|
+
saveWorkspace('ws-staging', STAGING);
|
|
362
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
363
|
+
for (let i = 0; i < 3; i++) {
|
|
364
|
+
loadWorkspace(STAGING);
|
|
365
|
+
saveWorkspace(`ws-staging-${i}`, STAGING);
|
|
366
|
+
}
|
|
367
|
+
expect(loadWorkspace(WORKTREE)).toBe('ws-local');
|
|
368
|
+
});
|
|
369
|
+
it('the mirror never resurrects a cleared backend', () => {
|
|
370
|
+
saveWorkspace('ws-staging', STAGING);
|
|
371
|
+
clearWorkspace(STAGING);
|
|
372
|
+
expect(fs.existsSync(getWorkspaceFilePath())).toBe(false);
|
|
373
|
+
});
|
|
374
|
+
it('drops the mirror when the configured backend is cleared but others remain', () => {
|
|
375
|
+
saveWorkspace('ws-staging', STAGING);
|
|
376
|
+
saveWorkspace('ws-local', WORKTREE);
|
|
377
|
+
clearWorkspace(STAGING);
|
|
378
|
+
expect(readAsOldClient()).toBeNull();
|
|
379
|
+
expect(loadWorkspace(WORKTREE)).toBe('ws-local');
|
|
380
|
+
});
|
|
381
|
+
});
|
|
382
|
+
// ---------------------------------------------------------------------------
|
|
383
|
+
// Code-review regressions (internal F-001, F-002, F-004, F-005)
|
|
384
|
+
// ---------------------------------------------------------------------------
|
|
385
|
+
function writeTqFile(name, body) {
|
|
386
|
+
const tqDir = path.join(state.tmpDir, '.tq');
|
|
387
|
+
fs.mkdirSync(tqDir, { recursive: true });
|
|
388
|
+
fs.writeFileSync(path.join(tqDir, name), JSON.stringify(body));
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Run `fn` with the test-env flags lifted, so `loadConfig()` uses its REAL
|
|
392
|
+
* precedence. Both `config.json` (tier 2) and the stored token (tier 3) are
|
|
393
|
+
* deliberately skipped under vitest for determinism (`config.ts:187,216`), so
|
|
394
|
+
* without this the backend resolver always returns the staging default and
|
|
395
|
+
* the F-001 regression is unreachable from a test.
|
|
396
|
+
*/
|
|
397
|
+
async function withProductionConfigResolution(fn) {
|
|
398
|
+
const savedVitest = process.env.VITEST;
|
|
399
|
+
const savedNodeEnv = process.env.NODE_ENV;
|
|
400
|
+
delete process.env.VITEST;
|
|
401
|
+
delete process.env.NODE_ENV;
|
|
402
|
+
try {
|
|
403
|
+
vi.resetModules();
|
|
404
|
+
fn(await import('./workspace-store.js'));
|
|
405
|
+
}
|
|
406
|
+
finally {
|
|
407
|
+
if (savedVitest !== undefined)
|
|
408
|
+
process.env.VITEST = savedVitest;
|
|
409
|
+
if (savedNodeEnv !== undefined)
|
|
410
|
+
process.env.NODE_ENV = savedNodeEnv;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
describe('F-001 — the write key follows the backend callers actually use', () => {
|
|
414
|
+
it('keys an unkeyed save to config.json, not to a hardcoded staging', async () => {
|
|
415
|
+
writeTqFile('config.json', {
|
|
416
|
+
environment: 'custom',
|
|
417
|
+
apiUrl: WORKTREE,
|
|
418
|
+
authUrl: WORKTREE,
|
|
419
|
+
clientUrl: WORKTREE,
|
|
420
|
+
oauthClientId: '2',
|
|
421
|
+
});
|
|
422
|
+
await withProductionConfigResolution((mod) => {
|
|
423
|
+
mod.saveWorkspace('ws-local');
|
|
424
|
+
expect(mod.loadWorkspace(WORKTREE)).toBe('ws-local');
|
|
425
|
+
expect(mod.loadWorkspace(STAGING)).toBeNull();
|
|
426
|
+
});
|
|
427
|
+
});
|
|
428
|
+
it('keys to the STORED TOKEN backend when config.json is absent', async () => {
|
|
429
|
+
// The decisive tier. `getCurrentApiUrl()` (the old resolver) knows only
|
|
430
|
+
// TQ_BACKEND_URL and config.json, so with neither it returned undefined
|
|
431
|
+
// and the fallback guessed staging — filing a LOCAL id under the STAGING
|
|
432
|
+
// key, which is internal reappearing through its own fix.
|
|
433
|
+
writeTqFile('oauth-tokens.json', {
|
|
434
|
+
[WORKTREE]: {
|
|
435
|
+
accessToken: 'a',
|
|
436
|
+
refreshToken: 'r',
|
|
437
|
+
expiresAt: Date.now() + 3_600_000,
|
|
438
|
+
apiBaseUrl: WORKTREE,
|
|
439
|
+
},
|
|
440
|
+
});
|
|
441
|
+
await withProductionConfigResolution((mod) => {
|
|
442
|
+
mod.saveWorkspace('ws-from-worktree');
|
|
443
|
+
expect(mod.loadWorkspace(WORKTREE)).toBe('ws-from-worktree');
|
|
444
|
+
expect(mod.loadWorkspace(STAGING)).toBeNull();
|
|
445
|
+
});
|
|
446
|
+
});
|
|
447
|
+
});
|
|
448
|
+
describe('F-002 — refreshMirror re-points the mirror after an env switch', () => {
|
|
449
|
+
it('leaves an old client reading the NEW configured backend', async () => {
|
|
450
|
+
const cfg = (apiUrl) => ({
|
|
451
|
+
environment: 'custom',
|
|
452
|
+
apiUrl,
|
|
453
|
+
authUrl: apiUrl,
|
|
454
|
+
clientUrl: apiUrl,
|
|
455
|
+
oauthClientId: '2',
|
|
456
|
+
});
|
|
457
|
+
writeTqFile('config.json', cfg(WORKTREE));
|
|
458
|
+
await withProductionConfigResolution((mod) => {
|
|
459
|
+
mod.saveWorkspace('ws-local', WORKTREE);
|
|
460
|
+
mod.saveWorkspace('ws-staging', STAGING);
|
|
461
|
+
expect(readAsOldClient()).toBe('ws-local');
|
|
462
|
+
});
|
|
463
|
+
// `tq:env staging` — rewrites config.json and touches nothing else.
|
|
464
|
+
writeTqFile('config.json', cfg(STAGING));
|
|
465
|
+
await withProductionConfigResolution((mod) => {
|
|
466
|
+
// Stale: the mirror still points at the backend we switched AWAY from,
|
|
467
|
+
// so an old client would pin the wrong workspace. Before the file was
|
|
468
|
+
// keyed, tq:env deleted it outright and they fell back to unpinned.
|
|
469
|
+
expect(readAsOldClient()).toBe('ws-local');
|
|
470
|
+
mod.refreshMirror();
|
|
471
|
+
expect(readAsOldClient()).toBe('ws-staging');
|
|
472
|
+
// ...and no keyed entry was disturbed.
|
|
473
|
+
expect(mod.loadWorkspace(WORKTREE)).toBe('ws-local');
|
|
474
|
+
});
|
|
475
|
+
});
|
|
476
|
+
it('is a no-op when no file exists', () => {
|
|
477
|
+
expect(() => refreshMirror()).not.toThrow();
|
|
478
|
+
expect(fs.existsSync(getWorkspaceFilePath())).toBe(false);
|
|
479
|
+
});
|
|
480
|
+
});
|
|
481
|
+
describe('F-004 — the mirror never promotes a url-shaped field to an entry', () => {
|
|
482
|
+
it('ignores a url-shaped field nested inside an entry', () => {
|
|
483
|
+
writeTqFile('workspace.json', {
|
|
484
|
+
[STAGING]: {
|
|
485
|
+
workspace_id: 'ws-staging',
|
|
486
|
+
[WORKTREE]: { workspace_id: 'ws-EVIL' },
|
|
487
|
+
},
|
|
488
|
+
});
|
|
489
|
+
saveWorkspace('ws-staging-2', STAGING);
|
|
490
|
+
expect(loadWorkspace(WORKTREE)).toBeNull();
|
|
491
|
+
const raw = JSON.parse(fs.readFileSync(getWorkspaceFilePath(), 'utf-8'));
|
|
492
|
+
expect(raw[WORKTREE]).toBeUndefined();
|
|
493
|
+
});
|
|
494
|
+
it('mirrors only the five identity fields', () => {
|
|
495
|
+
writeTqFile('workspace.json', {
|
|
496
|
+
[STAGING]: { workspace_id: 'ws-1', junk: 'nope' },
|
|
497
|
+
});
|
|
498
|
+
saveWorkspace('ws-2', STAGING);
|
|
499
|
+
const raw = JSON.parse(fs.readFileSync(getWorkspaceFilePath(), 'utf-8'));
|
|
500
|
+
expect(raw.junk).toBeUndefined();
|
|
501
|
+
expect(raw.workspace_id).toBe('ws-2');
|
|
502
|
+
});
|
|
503
|
+
});
|
|
504
|
+
describe('F-005 — write and read agree on what is a valid key', () => {
|
|
505
|
+
it('does not silently lose a pin given a scheme-less backend url', () => {
|
|
506
|
+
// Previously written to disk under a key every read then discarded — a
|
|
507
|
+
// permanent, silent loss with no error anywhere.
|
|
508
|
+
saveWorkspace('ws-x', 'localhost:8080');
|
|
509
|
+
expect(loadWorkspace()).toBe('ws-x'); // landed on the configured backend
|
|
510
|
+
expect(loadWorkspace(STAGING)).toBe('ws-x');
|
|
511
|
+
});
|
|
512
|
+
it('treats an empty backend url as "unspecified"', () => {
|
|
513
|
+
saveWorkspace('ws-y', '');
|
|
514
|
+
expect(loadWorkspace(STAGING)).toBe('ws-y');
|
|
515
|
+
});
|
|
516
|
+
});
|
|
169
517
|
//# sourceMappingURL=workspace-store.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-store.test.js","sourceRoot":"","sources":["../src/workspace-store.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-store.test.js","sourceRoot":"","sources":["../src/workspace-store.test.ts"],"names":[],"mappings":"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"}
|