@stackable-labs/cli-app-extension 1.99.1 → 1.100.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 (2) hide show
  1. package/dist/index.js +34 -7
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -3732,7 +3732,7 @@ var performCLIOAuthFlow = async ({ dashboardUrl, adminApiBaseUrl }) => {
3732
3732
  await writeAuthState(authState);
3733
3733
  return { authState, loginUrl };
3734
3734
  };
3735
- var AuthLogin = ({ dashboardUrl, adminApiBaseUrl }) => {
3735
+ var AuthLogin = ({ dashboardUrl, adminApiBaseUrl, reason, onSuccess, onError }) => {
3736
3736
  const { exit } = useApp();
3737
3737
  const [state, setState] = useState("waiting");
3738
3738
  const [loginUrl, setLoginUrl] = useState("");
@@ -3751,12 +3751,15 @@ var AuthLogin = ({ dashboardUrl, adminApiBaseUrl }) => {
3751
3751
  setUserIdLabel(result.authState.userId);
3752
3752
  setOrgIdLabel(result.authState.orgId);
3753
3753
  setState("success");
3754
+ onSuccess?.(result.authState);
3754
3755
  } catch (err) {
3755
3756
  if (cancelled) {
3756
3757
  return;
3757
3758
  }
3758
- setErrorMessage(err instanceof Error ? err.message : String(err));
3759
+ const error = err instanceof Error ? err : new Error(String(err));
3760
+ setErrorMessage(error.message);
3759
3761
  setState("error");
3762
+ onError?.(error);
3760
3763
  }
3761
3764
  exit();
3762
3765
  };
@@ -3766,8 +3769,9 @@ var AuthLogin = ({ dashboardUrl, adminApiBaseUrl }) => {
3766
3769
  };
3767
3770
  }, []);
3768
3771
  return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
3769
- /* @__PURE__ */ jsx(Banner, {}),
3772
+ !reason && /* @__PURE__ */ jsx(Banner, {}),
3770
3773
  /* @__PURE__ */ jsxs(StepShell, { title: "Authenticate with Stackable", children: [
3774
+ reason && /* @__PURE__ */ jsx(Box, { marginBottom: 1, children: /* @__PURE__ */ jsx(Text, { color: "yellow", children: reason === "expired" ? "Session expired \u2014 re-authenticating before continuing\u2026" : "Not signed in \u2014 opening browser to authenticate\u2026" }) }),
3771
3775
  state === "waiting" && /* @__PURE__ */ jsxs(Box, { flexDirection: "column", gap: 1, children: [
3772
3776
  /* @__PURE__ */ jsxs(Box, { gap: 1, children: [
3773
3777
  /* @__PURE__ */ jsx(Text, { color: "cyan", children: /* @__PURE__ */ jsx(Spinner5, { type: "dots" }) }),
@@ -3913,6 +3917,7 @@ var checkForUpdate = (currentVersion) => {
3913
3917
  var require2 = createRequire(import.meta.url);
3914
3918
  var { version } = require2("../package.json");
3915
3919
  checkForUpdate(version);
3920
+ var DASHBOARD_URL = process.env.ADMIN_DASHBOARD_URL ?? "https://admin.stackablelabs.com";
3916
3921
  var ensureToken = async () => {
3917
3922
  try {
3918
3923
  const token = await getToken();
@@ -3921,10 +3926,33 @@ var ensureToken = async () => {
3921
3926
  } catch (err) {
3922
3927
  const message = err instanceof Error ? err.message : String(err);
3923
3928
  const isExpired = message.toLowerCase().includes("expired");
3924
- render(
3925
- /* @__PURE__ */ jsx(AuthStatus, { state: isExpired ? "expired" : "not-logged-in" })
3929
+ let recoveredState = null;
3930
+ let flowError = null;
3931
+ const instance = render(
3932
+ /* @__PURE__ */ jsx(
3933
+ AuthLogin,
3934
+ {
3935
+ dashboardUrl: DASHBOARD_URL,
3936
+ adminApiBaseUrl: getAdminApiBaseUrl(),
3937
+ reason: isExpired ? "expired" : "not-logged-in",
3938
+ onSuccess: (authState) => {
3939
+ recoveredState = authState;
3940
+ },
3941
+ onError: (err2) => {
3942
+ flowError = err2;
3943
+ }
3944
+ }
3945
+ )
3926
3946
  );
3927
- return null;
3947
+ await instance.waitUntilExit();
3948
+ if (flowError || !recoveredState) {
3949
+ return null;
3950
+ }
3951
+ return {
3952
+ token: recoveredState.token,
3953
+ userId: recoveredState.userId,
3954
+ orgId: recoveredState.orgId
3955
+ };
3928
3956
  }
3929
3957
  };
3930
3958
  program.name("stackable-app-extension").description("Stackable Labs - App Extension developer CLI").version(version);
@@ -4007,7 +4035,6 @@ program.command("dev" /* DEV */).description("Start dev servers with a public tu
4007
4035
  { exitOnCtrlC: false }
4008
4036
  );
4009
4037
  });
4010
- var DASHBOARD_URL = process.env.ADMIN_DASHBOARD_URL ?? "https://admin.stackablelabs.com";
4011
4038
  var auth = program.command("auth").description("Manage CLI authentication");
4012
4039
  auth.command("login").description("Authenticate with Stackable via browser").action(async () => {
4013
4040
  render(/* @__PURE__ */ jsx(AuthLogin, { dashboardUrl: DASHBOARD_URL, adminApiBaseUrl: getAdminApiBaseUrl() }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackable-labs/cli-app-extension",
3
- "version": "1.99.1",
3
+ "version": "1.100.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "bin": {