@hexclave/js 1.0.6 → 1.0.9

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/dist/dev-tool/dev-tool-core.js +2 -2
  2. package/dist/dev-tool/dev-tool-core.js.map +1 -1
  3. package/dist/esm/dev-tool/dev-tool-core.js +2 -2
  4. package/dist/esm/dev-tool/dev-tool-core.js.map +1 -1
  5. package/dist/esm/generated/env.d.ts +26 -0
  6. package/dist/esm/{lib → generated}/env.d.ts.map +1 -1
  7. package/dist/esm/generated/env.js +67 -0
  8. package/dist/esm/generated/env.js.map +1 -0
  9. package/dist/esm/global.d.ts +8 -0
  10. package/dist/esm/global.d.ts.map +1 -0
  11. package/dist/esm/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  12. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +81 -4
  13. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  14. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +2 -1
  15. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  16. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js +23 -18
  17. package/dist/esm/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  18. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts +8 -8
  19. package/dist/esm/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -1
  20. package/dist/esm/lib/hexclave-app/apps/implementations/common.js +28 -14
  21. package/dist/esm/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  22. package/dist/esm/lib/hexclave-app/url-targets.js +4 -4
  23. package/dist/esm/lib/hexclave-app/url-targets.js.map +1 -1
  24. package/dist/generated/env.d.ts +26 -0
  25. package/dist/{lib → generated}/env.d.ts.map +1 -1
  26. package/dist/generated/env.js +69 -0
  27. package/dist/generated/env.js.map +1 -0
  28. package/dist/global.d.d.ts +0 -0
  29. package/dist/global.d.ts +8 -0
  30. package/dist/global.d.ts.map +1 -0
  31. package/dist/lib/hexclave-app/apps/implementations/admin-app-impl.d.ts.map +1 -1
  32. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js +81 -4
  33. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.js.map +1 -1
  34. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts +2 -1
  35. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.d.ts.map +1 -1
  36. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js +23 -18
  37. package/dist/lib/hexclave-app/apps/implementations/client-app-impl.js.map +1 -1
  38. package/dist/lib/hexclave-app/apps/implementations/common.d.ts +8 -8
  39. package/dist/lib/hexclave-app/apps/implementations/common.d.ts.map +1 -1
  40. package/dist/lib/hexclave-app/apps/implementations/common.js +28 -14
  41. package/dist/lib/hexclave-app/apps/implementations/common.js.map +1 -1
  42. package/dist/lib/hexclave-app/url-targets.js +4 -4
  43. package/dist/lib/hexclave-app/url-targets.js.map +1 -1
  44. package/package.json +8 -4
  45. package/src/dev-tool/dev-tool-core.ts +2 -2
  46. package/src/generated/.gitignore +3 -0
  47. package/src/global.css +13 -0
  48. package/src/global.d.ts +12 -0
  49. package/src/lib/hexclave-app/apps/implementations/client-app-impl.cross-domain.test.ts +105 -4
  50. package/src/lib/hexclave-app/apps/implementations/client-app-impl.ts +33 -18
  51. package/src/lib/hexclave-app/apps/implementations/common.ts +33 -14
  52. package/src/lib/hexclave-app/url-targets.ts +4 -4
  53. package/dist/esm/lib/env.d.ts +0 -42
  54. package/dist/esm/lib/env.js +0 -93
  55. package/dist/esm/lib/env.js.map +0 -1
  56. package/dist/lib/env.d.ts +0 -42
  57. package/dist/lib/env.js +0 -95
  58. package/dist/lib/env.js.map +0 -1
  59. package/src/lib/env.ts +0 -93
@@ -46,7 +46,7 @@ import type * as yup from "yup";
46
46
  import { constructRedirectUrl } from "../../../../utils/url";
47
47
  import { callOAuthCallback, getNewOAuthProviderOrScopeUrl } from "../../../auth";
48
48
  import { CookieHelper, createBrowserCookieHelper, createCookieHelper, createPlaceholderCookieHelper, deleteCookie, deleteCookieClient, getCookieClient, isSecure as isSecureCookieContext, saveVerifierAndState, setOrDeleteCookie, setOrDeleteCookieClient } from "../../../cookie";
49
- import { envVars } from "../../../env";
49
+ import { envVars } from "../../../../generated/env";
50
50
  import { ApiKey, ApiKeyCreationOptions, ApiKeyUpdateOptions, apiKeyCreationOptionsToCrud } from "../../api-keys";
51
51
  import { ConvexCtx, GetCurrentPartialUserOptions, GetCurrentUserOptions, HandlerUrlOptions, HandlerUrls, OAuthScopesOnSignIn, RedirectMethod, RedirectToOptions, RequestLike, ResolvedHandlerUrls, TokenStoreInit, hexclaveAppInternalsSymbol } from "../../common";
52
52
  import { DeprecatedOAuthConnection, OAuthConnection } from "../../connected-accounts";
@@ -776,12 +776,16 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
776
776
  return currentUrl.toString();
777
777
  }
778
778
 
779
- protected async _getCurrentRefreshTokenIdIfSignedIn(options?: {
779
+ protected async _fetchCurrentRefreshTokenIdIfSignedIn(options?: {
780
780
  awaitPendingAuthResolutions?: boolean,
781
781
  overrideTokenStoreInit?: TokenStoreInit,
782
782
  }): Promise<string | null> {
783
783
  const session = await this._getSession(options?.overrideTokenStoreInit, options);
784
- const tokens = await session.getOrFetchLikelyValidTokens(0, null);
784
+ // Nested cross-domain auth passes this ID to another origin, which later
785
+ // asks us to prove the same raw refresh token. A cached access token can be
786
+ // valid but stale relative to the refresh token, so mint from the refresh
787
+ // token that owns this session before exposing the ID.
788
+ const tokens = await session.fetchNewTokens();
785
789
  if (tokens?.refreshToken == null) {
786
790
  return null;
787
791
  }
@@ -799,7 +803,7 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
799
803
  return options.url;
800
804
  }
801
805
 
802
- const refreshTokenId = await this._getCurrentRefreshTokenIdIfSignedIn({
806
+ const refreshTokenId = await this._fetchCurrentRefreshTokenIdIfSignedIn({
803
807
  awaitPendingAuthResolutions: options.awaitPendingAuthResolutions,
804
808
  overrideTokenStoreInit: options.overrideTokenStoreInit,
805
809
  });
@@ -854,7 +858,7 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
854
858
  if (!await this._isTrusted(afterCallbackRedirectUrl.toString())) {
855
859
  throw new Error(`Nested cross-domain auth after-callback redirect URL ${afterCallbackRedirectUrlString} is not trusted.`);
856
860
  }
857
- const currentRefreshTokenId = await this._getCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false });
861
+ const currentRefreshTokenId = await this._fetchCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false });
858
862
  if (currentRefreshTokenId !== refreshTokenId) {
859
863
  throw new Error("Nested cross-domain auth source session does not match the requested refresh token ID.");
860
864
  }
@@ -873,7 +877,7 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
873
877
 
874
878
  // We are on b.com. Bounce to the trusted callback on a.com with a normal OAuth request
875
879
  // shape; a.com will verify the source session and issue the one-time code.
876
- const currentRefreshTokenId = await this._getCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false });
880
+ const currentRefreshTokenId = await this._fetchCurrentRefreshTokenIdIfSignedIn({ awaitPendingAuthResolutions: false });
877
881
  if (currentRefreshTokenId === refreshTokenId) return false;
878
882
  if (currentRefreshTokenId != null) {
879
883
  const session = await this._getSession(undefined, { awaitPendingAuthResolutions: false });
@@ -1071,6 +1075,13 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
1071
1075
  accessToken,
1072
1076
  };
1073
1077
  }
1078
+ private _getCurrentBrowserCookieTokenStoreValue(old: TokenObject | null): TokenObject {
1079
+ const tokens = this._getTokensFromCookies(this._getAllBrowserCookies());
1080
+ return {
1081
+ refreshToken: tokens.refreshToken,
1082
+ accessToken: tokens.accessToken ?? (old?.refreshToken === tokens.refreshToken ? old.accessToken : null),
1083
+ };
1084
+ }
1074
1085
  protected get _accessTokenCookieName() {
1075
1086
  // The access token, unlike the refresh token, should not depend on the project ID. We never want to store the
1076
1087
  // access token in cookies more than once because of how big it is (there's a limit of 4096 bytes for all cookies
@@ -1213,20 +1224,13 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
1213
1224
  }
1214
1225
 
1215
1226
  if (this._storedBrowserCookieTokenStore === null) {
1216
- const getCurrentValue = (old: TokenObject | null) => {
1217
- const tokens = this._getTokensFromCookies(this._getAllBrowserCookies());
1218
- return {
1219
- refreshToken: tokens.refreshToken,
1220
- accessToken: tokens.accessToken ?? (old?.refreshToken === tokens.refreshToken ? old.accessToken : null),
1221
- };
1222
- };
1223
- this._storedBrowserCookieTokenStore = new Store<TokenObject>(getCurrentValue(null));
1227
+ this._storedBrowserCookieTokenStore = new Store<TokenObject>(this._getCurrentBrowserCookieTokenStoreValue(null));
1224
1228
  let hasSucceededInWriting = true;
1225
1229
 
1226
1230
  setInterval(() => {
1227
1231
  if (hasSucceededInWriting) {
1228
1232
  const oldValue = this._storedBrowserCookieTokenStore!.get();
1229
- const currentValue = getCurrentValue(oldValue);
1233
+ const currentValue = this._getCurrentBrowserCookieTokenStoreValue(oldValue);
1230
1234
  if (!deepPlainEquals(currentValue, oldValue)) {
1231
1235
  this._storedBrowserCookieTokenStore!.set(currentValue);
1232
1236
  }
@@ -1260,6 +1264,12 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
1260
1264
  }
1261
1265
  }
1262
1266
  });
1267
+ } else {
1268
+ const oldValue = this._storedBrowserCookieTokenStore.get();
1269
+ const currentValue = this._getCurrentBrowserCookieTokenStoreValue(oldValue);
1270
+ if (!deepPlainEquals(currentValue, oldValue)) {
1271
+ this._storedBrowserCookieTokenStore.set(currentValue);
1272
+ }
1263
1273
  }
1264
1274
 
1265
1275
  return this._storedBrowserCookieTokenStore;
@@ -2298,16 +2308,16 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
2298
2308
  private _getBotChallengeSiteKeys(): { visibleSiteKey: string, invisibleSiteKey: string } | null {
2299
2309
  if (!isBrowserLike()) return null;
2300
2310
 
2301
- const visibleSiteKey = envVars.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY;
2311
+ const visibleSiteKey = envVars.HEXCLAVE_BOT_CHALLENGE_SITE_KEY;
2302
2312
  if (!visibleSiteKey) {
2303
2313
  if (!this._botChallengeSiteKeysWarned) {
2304
2314
  this._botChallengeSiteKeysWarned = true;
2305
- console.warn("[stack-auth] NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY is not set — bot challenge fraud protection is disabled. Set the env variable to enable it.");
2315
+ console.warn("[stack-auth] HEXCLAVE_BOT_CHALLENGE_SITE_KEY is not set — bot challenge fraud protection is disabled. Set the env variable to enable it.");
2306
2316
  }
2307
2317
  return null;
2308
2318
  }
2309
2319
 
2310
- const invisibleSiteKey = envVars.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? visibleSiteKey;
2320
+ const invisibleSiteKey = envVars.HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? visibleSiteKey;
2311
2321
 
2312
2322
  return { visibleSiteKey, invisibleSiteKey };
2313
2323
  }
@@ -2489,6 +2499,11 @@ export class _HexclaveClientAppImplIncomplete<HasTokenStore extends boolean, Pro
2489
2499
  overrideTokenStoreInit?: TokenStoreInit,
2490
2500
  }): Promise<string> {
2491
2501
  const session = await this._getSession(options.overrideTokenStoreInit, { awaitPendingAuthResolutions: options.awaitPendingAuthResolutions });
2502
+ // The authorize endpoint intentionally verifies that the access token and
2503
+ // raw refresh token describe the same DB session. Force the access token to
2504
+ // be minted from the refresh token we are about to send, instead of reusing
2505
+ // a still-valid cached token from a pre-handoff session snapshot.
2506
+ await session.fetchNewTokens();
2492
2507
  const response = await this._interface.sendClientRequest(
2493
2508
  "/auth/oauth/cross-domain/authorize",
2494
2509
  {
@@ -13,7 +13,7 @@ import { suspendIfSsr, use } from "@hexclave/shared/dist/utils/react";
13
13
  import { Result } from "@hexclave/shared/dist/utils/results";
14
14
  import { Store } from "@hexclave/shared/dist/utils/stores";
15
15
  import { getDefaultApiUrls } from "@hexclave/shared/dist/utils/urls";
16
- import { envVars } from "../../../env";
16
+ import { envVars } from "../../../../generated/env";
17
17
  import { HandlerUrlOptions, ResolvedHandlerUrls, hexclaveAppInternalsSymbol } from "../../common";
18
18
  import { resolveHandlerUrls } from "../../url-targets";
19
19
 
@@ -24,10 +24,30 @@ if (clientVersion.startsWith("STACK_COMPILE_TIME")) {
24
24
 
25
25
  const replaceHexclavePortPrefix = <T extends string | undefined>(input: T): T => {
26
26
  if (!input) return input;
27
- const prefix = envVars.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX;
27
+ const prefix = envVars.HEXCLAVE_PORT_PREFIX;
28
28
  return prefix ? input.replace(/\$\{NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX:-81\}/g, prefix) as T : input;
29
29
  };
30
30
 
31
+ const showMissingConfigAlertInBrowser = (message: string) => {
32
+ if (!isBrowserLike()) return;
33
+
34
+ const global = globalThis as any;
35
+ const alertAlreadyShownKey = "__hexclave_missing_config_alert_already_shown";
36
+ if (global[alertAlreadyShownKey]) return;
37
+ global[alertAlreadyShownKey] = true;
38
+
39
+ const alertFn = global.alert;
40
+ if (typeof alertFn === "function") {
41
+ alertFn(message);
42
+ }
43
+ };
44
+
45
+ const throwMissingProjectIdError = (): never => {
46
+ const message = "Welcome to Hexclave! It seems that you haven't provided a project ID. Please create a project on the Hexclave dashboard at https://app.hexclave.com and put it in the HEXCLAVE_PROJECT_ID environment variable.";
47
+ showMissingConfigAlertInBrowser(message);
48
+ return throwErr(new Error(message));
49
+ };
50
+
31
51
 
32
52
  export const createCache = <D extends any[], T>(fetcher: (dependencies: D) => Promise<T>) => {
33
53
  return new AsyncCache<D, Result<T>>(
@@ -65,23 +85,23 @@ export function getUrls(partial: HandlerUrlOptions, options: { projectId: string
65
85
  }
66
86
 
67
87
  export function getDefaultProjectId() {
68
- return envVars.NEXT_PUBLIC_STACK_PROJECT_ID || envVars.STACK_PROJECT_ID || throwErr(new Error("Welcome to Hexclave! It seems that you haven't provided a project ID. Please create a project on the Hexclave dashboard at https://app.hexclave.com and put it in the NEXT_PUBLIC_STACK_PROJECT_ID environment variable."));
88
+ return envVars.HEXCLAVE_PROJECT_ID || throwMissingProjectIdError();
69
89
  }
70
90
 
71
91
  export function getDefaultPublishableClientKey() {
72
- return envVars.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY || envVars.STACK_PUBLISHABLE_CLIENT_KEY;
92
+ return envVars.HEXCLAVE_PUBLISHABLE_CLIENT_KEY;
73
93
  }
74
94
 
75
95
  export function getDefaultSecretServerKey() {
76
- return envVars.STACK_SECRET_SERVER_KEY || throwErr(new Error("No secret server key provided. Please copy your key from the Hexclave dashboard and put it in the STACK_SECRET_SERVER_KEY environment variable."));
96
+ return envVars.HEXCLAVE_SECRET_SERVER_KEY || throwErr(new Error("No secret server key provided. Please copy your key from the Hexclave dashboard and put it in the HEXCLAVE_SECRET_SERVER_KEY environment variable."));
77
97
  }
78
98
 
79
99
  export function getDefaultSuperSecretAdminKey() {
80
- return envVars.STACK_SUPER_SECRET_ADMIN_KEY || throwErr(new Error("No super secret admin key provided. Please copy your key from the Hexclave dashboard and put it in the STACK_SUPER_SECRET_ADMIN_KEY environment variable."));
100
+ return envVars.HEXCLAVE_SUPER_SECRET_ADMIN_KEY || throwErr(new Error("No super secret admin key provided. Please copy your key from the Hexclave dashboard and put it in the HEXCLAVE_SUPER_SECRET_ADMIN_KEY environment variable."));
81
101
  }
82
102
 
83
103
  export function getDefaultExtraRequestHeaders() {
84
- return JSON.parse(envVars.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS || envVars.STACK_EXTRA_REQUEST_HEADERS || '{}');
104
+ return JSON.parse(envVars.HEXCLAVE_EXTRA_REQUEST_HEADERS || '{}');
85
105
  }
86
106
 
87
107
  /**
@@ -90,9 +110,9 @@ export function getDefaultExtraRequestHeaders() {
90
110
  * The URL can be specified in several ways, in order of precedence:
91
111
  * 1. Directly through userSpecifiedBaseUrl parameter as string or browser/server object
92
112
  * 2. Through environment variables:
93
- * - Browser: NEXT_PUBLIC_BROWSER_STACK_API_URL
94
- * - Server: NEXT_PUBLIC_SERVER_STACK_API_URL
95
- * - Fallback: NEXT_PUBLIC_STACK_API_URL or NEXT_PUBLIC_STACK_URL
113
+ * - Browser: NEXT_PUBLIC_HEXCLAVE_API_URL_BROWSER/VITE_HEXCLAVE_API_URL_BROWSER
114
+ * - Server: HEXCLAVE_API_URL_SERVER
115
+ * - Default: HEXCLAVE_API_URL
96
116
  * 3. Default base URL if none of the above are specified
97
117
  *
98
118
  * The function also ensures the URL doesn't end with a trailing slash
@@ -115,13 +135,12 @@ export function getBaseUrl(userSpecifiedBaseUrl: string | { browser: string, ser
115
135
  }
116
136
  }
117
137
  } else {
118
- // note: NEXT_PUBLIC_BROWSER_STACK_API_URL was renamed to NEXT_PUBLIC_STACK_API_URL_BROWSER, and NEXT_PUBLIC_STACK_URL to NEXT_PUBLIC_STACK_API_URL
119
138
  if (isBrowserLike()) {
120
- url = envVars.NEXT_PUBLIC_BROWSER_STACK_API_URL || envVars.NEXT_PUBLIC_STACK_API_URL_BROWSER || envVars.STACK_API_URL_BROWSER;
139
+ url = envVars.HEXCLAVE_API_URL_BROWSER;
121
140
  } else {
122
- url = envVars.NEXT_PUBLIC_SERVER_STACK_API_URL || envVars.NEXT_PUBLIC_STACK_API_URL_SERVER || envVars.STACK_API_URL_SERVER;
141
+ url = envVars.HEXCLAVE_API_URL_SERVER;
123
142
  }
124
- url = url || envVars.NEXT_PUBLIC_STACK_API_URL || envVars.STACK_API_URL || envVars.NEXT_PUBLIC_STACK_URL || defaultBaseUrl;
143
+ url = url || envVars.HEXCLAVE_API_URL || defaultBaseUrl;
125
144
  }
126
145
 
127
146
  return replaceHexclavePortPrefix(url.endsWith('/') ? url.slice(0, -1) : url);
@@ -5,7 +5,7 @@
5
5
  import { getCustomPagePrompts, type CustomPagePrompt } from "@hexclave/shared/dist/interface/handler-urls";
6
6
  import { HexclaveAssertionError } from "@hexclave/shared/dist/utils/errors";
7
7
  import { getHostedHandlerUrlFromConfig } from "@hexclave/shared/dist/utils/redirect-urls";
8
- import { envVars } from "../env";
8
+ import { envVars } from "../../generated/env";
9
9
  import { DefaultHandlerUrlTarget, HandlerPageUrls, HandlerUrlOptions, HandlerUrlTarget, HandlerUrls, ResolvedHandlerUrls } from "./common";
10
10
 
11
11
  const localUrlPlaceholderOrigin = "http://example.com";
@@ -111,9 +111,9 @@ export const getHostedHandlerUrl = (options: { projectId: string, pagePath: stri
111
111
  return getHostedHandlerUrlFromConfig({
112
112
  projectId: options.projectId,
113
113
  hostedPath,
114
- hostedHandlerDomainSuffix: envVars.NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX,
115
- hostedHandlerUrlTemplate: envVars.NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE,
116
- hexclavePortPrefix: envVars.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX,
114
+ hostedHandlerDomainSuffix: envVars.HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX,
115
+ hostedHandlerUrlTemplate: envVars.HEXCLAVE_HOSTED_HANDLER_URL_TEMPLATE,
116
+ hexclavePortPrefix: envVars.HEXCLAVE_PORT_PREFIX,
117
117
  });
118
118
  };
119
119
 
@@ -1,42 +0,0 @@
1
- //#region src/lib/env.d.ts
2
- /**
3
- * Centralized environment-variable reads for the SDK.
4
- *
5
- * Keep each key explicit and reference `process.env.KEY` directly so bundlers
6
- * like Next.js can inline values at build time.
7
- *
8
- * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and
9
- * falls back to the legacy STACK_* literal(s). Both operands stay literal
10
- * `process.env.X` references so bundlers can inline them. The port-prefix var
11
- * is a straight rename (no dual-read).
12
- */
13
- declare const envVars: {
14
- readonly NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX: string | undefined;
15
- readonly NEXT_PUBLIC_STACK_PROJECT_ID: string | undefined;
16
- readonly STACK_PROJECT_ID: string | undefined;
17
- readonly NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY: string | undefined;
18
- readonly STACK_PUBLISHABLE_CLIENT_KEY: string | undefined;
19
- readonly STACK_SECRET_SERVER_KEY: string | undefined;
20
- readonly STACK_SUPER_SECRET_ADMIN_KEY: string | undefined;
21
- readonly NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS: string | undefined;
22
- readonly STACK_EXTRA_REQUEST_HEADERS: string | undefined;
23
- readonly NEXT_PUBLIC_BROWSER_STACK_API_URL: string | undefined;
24
- readonly NEXT_PUBLIC_STACK_API_URL_BROWSER: string | undefined;
25
- readonly STACK_API_URL_BROWSER: string | undefined;
26
- readonly NEXT_PUBLIC_SERVER_STACK_API_URL: string | undefined;
27
- readonly NEXT_PUBLIC_STACK_API_URL_SERVER: string | undefined;
28
- readonly STACK_API_URL_SERVER: string | undefined;
29
- readonly NEXT_PUBLIC_STACK_API_URL: string | undefined;
30
- readonly STACK_API_URL: string | undefined;
31
- readonly NEXT_PUBLIC_STACK_URL: string | undefined;
32
- readonly NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX: string | undefined;
33
- readonly NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE: string | undefined;
34
- readonly NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY: string | undefined;
35
- readonly NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY: string | undefined;
36
- readonly NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY: string | undefined;
37
- readonly NODE_ENV: string | undefined;
38
- readonly NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR: string | undefined;
39
- };
40
- //#endregion
41
- export { envVars };
42
- //# sourceMappingURL=env.d.ts.map
@@ -1,93 +0,0 @@
1
- //#region src/lib/env.ts
2
- /**
3
- * Centralized environment-variable reads for the SDK.
4
- *
5
- * Keep each key explicit and reference `process.env.KEY` directly so bundlers
6
- * like Next.js can inline values at build time.
7
- *
8
- * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and
9
- * falls back to the legacy STACK_* literal(s). Both operands stay literal
10
- * `process.env.X` references so bundlers can inline them. The port-prefix var
11
- * is a straight rename (no dual-read).
12
- */
13
- const envVars = {
14
- get NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX() {
15
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX : void 0) ?? void 0;
16
- },
17
- get NEXT_PUBLIC_STACK_PROJECT_ID() {
18
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_PROJECT_ID ?? process.env.NEXT_PUBLIC_STACK_PROJECT_ID : void 0) ?? void 0;
19
- },
20
- get STACK_PROJECT_ID() {
21
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_PROJECT_ID ?? process.env.STACK_PROJECT_ID : void 0) ?? void 0;
22
- },
23
- get NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY() {
24
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY : void 0) ?? void 0;
25
- },
26
- get STACK_PUBLISHABLE_CLIENT_KEY() {
27
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.STACK_PUBLISHABLE_CLIENT_KEY : void 0) ?? void 0;
28
- },
29
- get STACK_SECRET_SERVER_KEY() {
30
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_SECRET_SERVER_KEY ?? process.env.STACK_SECRET_SERVER_KEY : void 0) ?? void 0;
31
- },
32
- get STACK_SUPER_SECRET_ADMIN_KEY() {
33
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_SUPER_SECRET_ADMIN_KEY ?? process.env.STACK_SUPER_SECRET_ADMIN_KEY : void 0) ?? void 0;
34
- },
35
- get NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS() {
36
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS : void 0) ?? void 0;
37
- },
38
- get STACK_EXTRA_REQUEST_HEADERS() {
39
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.STACK_EXTRA_REQUEST_HEADERS : void 0) ?? void 0;
40
- },
41
- get NEXT_PUBLIC_BROWSER_STACK_API_URL() {
42
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_BROWSER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL : void 0) ?? void 0;
43
- },
44
- get NEXT_PUBLIC_STACK_API_URL_BROWSER() {
45
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_BROWSER ?? process.env.NEXT_PUBLIC_STACK_API_URL_BROWSER : void 0) ?? void 0;
46
- },
47
- get STACK_API_URL_BROWSER() {
48
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_API_URL_BROWSER ?? process.env.STACK_API_URL_BROWSER : void 0) ?? void 0;
49
- },
50
- get NEXT_PUBLIC_SERVER_STACK_API_URL() {
51
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_SERVER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_SERVER_STACK_API_URL : void 0) ?? void 0;
52
- },
53
- get NEXT_PUBLIC_STACK_API_URL_SERVER() {
54
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_SERVER ?? process.env.NEXT_PUBLIC_STACK_API_URL_SERVER : void 0) ?? void 0;
55
- },
56
- get STACK_API_URL_SERVER() {
57
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_API_URL_SERVER ?? process.env.STACK_API_URL_SERVER : void 0) ?? void 0;
58
- },
59
- get NEXT_PUBLIC_STACK_API_URL() {
60
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_STACK_API_URL : void 0) ?? void 0;
61
- },
62
- get STACK_API_URL() {
63
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_API_URL ?? process.env.STACK_API_URL : void 0) ?? void 0;
64
- },
65
- get NEXT_PUBLIC_STACK_URL() {
66
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_URL ?? process.env.NEXT_PUBLIC_STACK_URL : void 0) ?? void 0;
67
- },
68
- get NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX() {
69
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX : void 0) ?? void 0;
70
- },
71
- get NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE() {
72
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_URL_TEMPLATE ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE : void 0) ?? void 0;
73
- },
74
- get NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY() {
75
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_STRIPE_PUBLISHABLE_KEY ?? process.env.NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY : void 0) ?? void 0;
76
- },
77
- get NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY() {
78
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY : void 0) ?? void 0;
79
- },
80
- get NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY() {
81
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY : void 0) ?? void 0;
82
- },
83
- get NODE_ENV() {
84
- return (typeof process !== "undefined" ? process.env.NODE_ENV : void 0) ?? void 0;
85
- },
86
- get NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR() {
87
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_IS_LOCAL_EMULATOR ?? process.env.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR : void 0) ?? void 0;
88
- }
89
- };
90
-
91
- //#endregion
92
- export { envVars };
93
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","names":[],"sources":["../../../src/lib/env.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n/**\n * Centralized environment-variable reads for the SDK.\n *\n * Keep each key explicit and reference `process.env.KEY` directly so bundlers\n * like Next.js can inline values at build time.\n *\n * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and\n * falls back to the legacy STACK_* literal(s). Both operands stay literal\n * `process.env.X` references so bundlers can inline them. The port-prefix var\n * is a straight rename (no dual-read).\n */\nexport const envVars = {\n // Hexclave rebrand: port-prefix var renamed outright (no dual-read).\n get NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PROJECT_ID ?? process.env.NEXT_PUBLIC_STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PROJECT_ID ?? process.env.STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_SECRET_SERVER_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SECRET_SERVER_KEY ?? process.env.STACK_SECRET_SERVER_KEY : undefined) ?? undefined;\n },\n get STACK_SUPER_SECRET_ADMIN_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SUPER_SECRET_ADMIN_KEY ?? process.env.STACK_SUPER_SECRET_ADMIN_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_BROWSER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_BROWSER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_BROWSER ?? process.env.NEXT_PUBLIC_STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_BROWSER ?? process.env.STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_SERVER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_SERVER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_SERVER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_SERVER ?? process.env.NEXT_PUBLIC_STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_SERVER ?? process.env.STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_STACK_API_URL : undefined) ?? undefined;\n },\n get STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL ?? process.env.STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_URL ?? process.env.NEXT_PUBLIC_STACK_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_URL_TEMPLATE ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_STRIPE_PUBLISHABLE_KEY ?? process.env.NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY : undefined) ?? undefined;\n },\n get NODE_ENV() {\n return (typeof process !== \"undefined\" ? process.env.NODE_ENV : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_IS_LOCAL_EMULATOR ?? process.env.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR : undefined) ?? undefined;\n },\n};\n"],"mappings":"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"}
package/dist/lib/env.d.ts DELETED
@@ -1,42 +0,0 @@
1
- //#region src/lib/env.d.ts
2
- /**
3
- * Centralized environment-variable reads for the SDK.
4
- *
5
- * Keep each key explicit and reference `process.env.KEY` directly so bundlers
6
- * like Next.js can inline values at build time.
7
- *
8
- * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and
9
- * falls back to the legacy STACK_* literal(s). Both operands stay literal
10
- * `process.env.X` references so bundlers can inline them. The port-prefix var
11
- * is a straight rename (no dual-read).
12
- */
13
- declare const envVars: {
14
- readonly NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX: string | undefined;
15
- readonly NEXT_PUBLIC_STACK_PROJECT_ID: string | undefined;
16
- readonly STACK_PROJECT_ID: string | undefined;
17
- readonly NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY: string | undefined;
18
- readonly STACK_PUBLISHABLE_CLIENT_KEY: string | undefined;
19
- readonly STACK_SECRET_SERVER_KEY: string | undefined;
20
- readonly STACK_SUPER_SECRET_ADMIN_KEY: string | undefined;
21
- readonly NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS: string | undefined;
22
- readonly STACK_EXTRA_REQUEST_HEADERS: string | undefined;
23
- readonly NEXT_PUBLIC_BROWSER_STACK_API_URL: string | undefined;
24
- readonly NEXT_PUBLIC_STACK_API_URL_BROWSER: string | undefined;
25
- readonly STACK_API_URL_BROWSER: string | undefined;
26
- readonly NEXT_PUBLIC_SERVER_STACK_API_URL: string | undefined;
27
- readonly NEXT_PUBLIC_STACK_API_URL_SERVER: string | undefined;
28
- readonly STACK_API_URL_SERVER: string | undefined;
29
- readonly NEXT_PUBLIC_STACK_API_URL: string | undefined;
30
- readonly STACK_API_URL: string | undefined;
31
- readonly NEXT_PUBLIC_STACK_URL: string | undefined;
32
- readonly NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX: string | undefined;
33
- readonly NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE: string | undefined;
34
- readonly NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY: string | undefined;
35
- readonly NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY: string | undefined;
36
- readonly NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY: string | undefined;
37
- readonly NODE_ENV: string | undefined;
38
- readonly NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR: string | undefined;
39
- };
40
- //#endregion
41
- export { envVars };
42
- //# sourceMappingURL=env.d.ts.map
package/dist/lib/env.js DELETED
@@ -1,95 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
-
3
- //#region src/lib/env.ts
4
- /**
5
- * Centralized environment-variable reads for the SDK.
6
- *
7
- * Keep each key explicit and reference `process.env.KEY` directly so bundlers
8
- * like Next.js can inline values at build time.
9
- *
10
- * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and
11
- * falls back to the legacy STACK_* literal(s). Both operands stay literal
12
- * `process.env.X` references so bundlers can inline them. The port-prefix var
13
- * is a straight rename (no dual-read).
14
- */
15
- const envVars = {
16
- get NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX() {
17
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX : void 0) ?? void 0;
18
- },
19
- get NEXT_PUBLIC_STACK_PROJECT_ID() {
20
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_PROJECT_ID ?? process.env.NEXT_PUBLIC_STACK_PROJECT_ID : void 0) ?? void 0;
21
- },
22
- get STACK_PROJECT_ID() {
23
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_PROJECT_ID ?? process.env.STACK_PROJECT_ID : void 0) ?? void 0;
24
- },
25
- get NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY() {
26
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY : void 0) ?? void 0;
27
- },
28
- get STACK_PUBLISHABLE_CLIENT_KEY() {
29
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.STACK_PUBLISHABLE_CLIENT_KEY : void 0) ?? void 0;
30
- },
31
- get STACK_SECRET_SERVER_KEY() {
32
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_SECRET_SERVER_KEY ?? process.env.STACK_SECRET_SERVER_KEY : void 0) ?? void 0;
33
- },
34
- get STACK_SUPER_SECRET_ADMIN_KEY() {
35
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_SUPER_SECRET_ADMIN_KEY ?? process.env.STACK_SUPER_SECRET_ADMIN_KEY : void 0) ?? void 0;
36
- },
37
- get NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS() {
38
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS : void 0) ?? void 0;
39
- },
40
- get STACK_EXTRA_REQUEST_HEADERS() {
41
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.STACK_EXTRA_REQUEST_HEADERS : void 0) ?? void 0;
42
- },
43
- get NEXT_PUBLIC_BROWSER_STACK_API_URL() {
44
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_BROWSER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL : void 0) ?? void 0;
45
- },
46
- get NEXT_PUBLIC_STACK_API_URL_BROWSER() {
47
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_BROWSER ?? process.env.NEXT_PUBLIC_STACK_API_URL_BROWSER : void 0) ?? void 0;
48
- },
49
- get STACK_API_URL_BROWSER() {
50
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_API_URL_BROWSER ?? process.env.STACK_API_URL_BROWSER : void 0) ?? void 0;
51
- },
52
- get NEXT_PUBLIC_SERVER_STACK_API_URL() {
53
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_SERVER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_SERVER_STACK_API_URL : void 0) ?? void 0;
54
- },
55
- get NEXT_PUBLIC_STACK_API_URL_SERVER() {
56
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_SERVER ?? process.env.NEXT_PUBLIC_STACK_API_URL_SERVER : void 0) ?? void 0;
57
- },
58
- get STACK_API_URL_SERVER() {
59
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_API_URL_SERVER ?? process.env.STACK_API_URL_SERVER : void 0) ?? void 0;
60
- },
61
- get NEXT_PUBLIC_STACK_API_URL() {
62
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_STACK_API_URL : void 0) ?? void 0;
63
- },
64
- get STACK_API_URL() {
65
- return (typeof process !== "undefined" ? process.env.HEXCLAVE_API_URL ?? process.env.STACK_API_URL : void 0) ?? void 0;
66
- },
67
- get NEXT_PUBLIC_STACK_URL() {
68
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_URL ?? process.env.NEXT_PUBLIC_STACK_URL : void 0) ?? void 0;
69
- },
70
- get NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX() {
71
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX : void 0) ?? void 0;
72
- },
73
- get NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE() {
74
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_URL_TEMPLATE ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE : void 0) ?? void 0;
75
- },
76
- get NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY() {
77
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_STRIPE_PUBLISHABLE_KEY ?? process.env.NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY : void 0) ?? void 0;
78
- },
79
- get NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY() {
80
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY : void 0) ?? void 0;
81
- },
82
- get NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY() {
83
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY : void 0) ?? void 0;
84
- },
85
- get NODE_ENV() {
86
- return (typeof process !== "undefined" ? process.env.NODE_ENV : void 0) ?? void 0;
87
- },
88
- get NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR() {
89
- return (typeof process !== "undefined" ? process.env.NEXT_PUBLIC_HEXCLAVE_IS_LOCAL_EMULATOR ?? process.env.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR : void 0) ?? void 0;
90
- }
91
- };
92
-
93
- //#endregion
94
- exports.envVars = envVars;
95
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","names":[],"sources":["../../src/lib/env.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template\n//===========================================\n/**\n * Centralized environment-variable reads for the SDK.\n *\n * Keep each key explicit and reference `process.env.KEY` directly so bundlers\n * like Next.js can inline values at build time.\n *\n * Hexclave rebrand: each getter prefers the HEXCLAVE_*-prefixed literal and\n * falls back to the legacy STACK_* literal(s). Both operands stay literal\n * `process.env.X` references so bundlers can inline them. The port-prefix var\n * is a straight rename (no dual-read).\n */\nexport const envVars = {\n // Hexclave rebrand: port-prefix var renamed outright (no dual-read).\n get NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PROJECT_ID ?? process.env.NEXT_PUBLIC_STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get STACK_PROJECT_ID() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PROJECT_ID ?? process.env.STACK_PROJECT_ID : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_PUBLISHABLE_CLIENT_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_PUBLISHABLE_CLIENT_KEY ?? process.env.STACK_PUBLISHABLE_CLIENT_KEY : undefined) ?? undefined;\n },\n get STACK_SECRET_SERVER_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SECRET_SERVER_KEY ?? process.env.STACK_SECRET_SERVER_KEY : undefined) ?? undefined;\n },\n get STACK_SUPER_SECRET_ADMIN_KEY() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_SUPER_SECRET_ADMIN_KEY ?? process.env.STACK_SUPER_SECRET_ADMIN_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.NEXT_PUBLIC_STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get STACK_EXTRA_REQUEST_HEADERS() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_EXTRA_REQUEST_HEADERS ?? process.env.STACK_EXTRA_REQUEST_HEADERS : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_BROWSER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_BROWSER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_BROWSER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_BROWSER ?? process.env.NEXT_PUBLIC_STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get STACK_API_URL_BROWSER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_BROWSER ?? process.env.STACK_API_URL_BROWSER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_SERVER_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_SERVER_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_SERVER_STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL_SERVER ?? process.env.NEXT_PUBLIC_STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get STACK_API_URL_SERVER() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL_SERVER ?? process.env.STACK_API_URL_SERVER : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_API_URL ?? process.env.NEXT_PUBLIC_STACK_API_URL : undefined) ?? undefined;\n },\n get STACK_API_URL() {\n return (typeof process !== \"undefined\" ? process.env.HEXCLAVE_API_URL ?? process.env.STACK_API_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_URL() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_URL ?? process.env.NEXT_PUBLIC_STACK_URL : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_DOMAIN_SUFFIX ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_DOMAIN_SUFFIX : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_HOSTED_HANDLER_URL_TEMPLATE ?? process.env.NEXT_PUBLIC_STACK_HOSTED_HANDLER_URL_TEMPLATE : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_STRIPE_PUBLISHABLE_KEY ?? process.env.NEXT_PUBLIC_STACK_STRIPE_PUBLISHABLE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_SITE_KEY : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_BOT_CHALLENGE_INVISIBLE_SITE_KEY ?? process.env.NEXT_PUBLIC_STACK_BOT_CHALLENGE_INVISIBLE_SITE_KEY : undefined) ?? undefined;\n },\n get NODE_ENV() {\n return (typeof process !== \"undefined\" ? process.env.NODE_ENV : undefined) ?? undefined;\n },\n get NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR() {\n return (typeof process !== \"undefined\" ? process.env.NEXT_PUBLIC_HEXCLAVE_IS_LOCAL_EMULATOR ?? process.env.NEXT_PUBLIC_STACK_IS_LOCAL_EMULATOR : undefined) ?? undefined;\n },\n};\n"],"mappings":";;;;;;;;;;;;;;AAeA,MAAa,UAAU;CAErB,IAAI,mCAAmC;AACrC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,mCAAmC,WAAc;;CAExG,IAAI,+BAA+B;AACjC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,mCAAmC,QAAQ,IAAI,+BAA+B,WAAc;;CAEnJ,IAAI,mBAAmB;AACrB,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,uBAAuB,QAAQ,IAAI,mBAAmB,WAAc;;CAE3H,IAAI,2CAA2C;AAC7C,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,+CAA+C,QAAQ,IAAI,2CAA2C,WAAc;;CAE3K,IAAI,+BAA+B;AACjC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,mCAAmC,QAAQ,IAAI,+BAA+B,WAAc;;CAEnJ,IAAI,0BAA0B;AAC5B,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,8BAA8B,QAAQ,IAAI,0BAA0B,WAAc;;CAEzI,IAAI,+BAA+B;AACjC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,mCAAmC,QAAQ,IAAI,+BAA+B,WAAc;;CAEnJ,IAAI,0CAA0C;AAC5C,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,8CAA8C,QAAQ,IAAI,0CAA0C,WAAc;;CAEzK,IAAI,8BAA8B;AAChC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,kCAAkC,QAAQ,IAAI,8BAA8B,WAAc;;CAEjJ,IAAI,oCAAoC;AACtC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,wCAAwC,QAAQ,IAAI,oCAAoC,WAAc;;CAE7J,IAAI,oCAAoC;AACtC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,wCAAwC,QAAQ,IAAI,oCAAoC,WAAc;;CAE7J,IAAI,wBAAwB;AAC1B,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,4BAA4B,QAAQ,IAAI,wBAAwB,WAAc;;CAErI,IAAI,mCAAmC;AACrC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,uCAAuC,QAAQ,IAAI,mCAAmC,WAAc;;CAE3J,IAAI,mCAAmC;AACrC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,uCAAuC,QAAQ,IAAI,mCAAmC,WAAc;;CAE3J,IAAI,uBAAuB;AACzB,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,2BAA2B,QAAQ,IAAI,uBAAuB,WAAc;;CAEnI,IAAI,4BAA4B;AAC9B,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,gCAAgC,QAAQ,IAAI,4BAA4B,WAAc;;CAE7I,IAAI,gBAAgB;AAClB,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,oBAAoB,QAAQ,IAAI,gBAAgB,WAAc;;CAErH,IAAI,wBAAwB;AAC1B,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,4BAA4B,QAAQ,IAAI,wBAAwB,WAAc;;CAErI,IAAI,iDAAiD;AACnD,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,qDAAqD,QAAQ,IAAI,iDAAiD,WAAc;;CAEvL,IAAI,gDAAgD;AAClD,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,oDAAoD,QAAQ,IAAI,gDAAgD,WAAc;;CAErL,IAAI,2CAA2C;AAC7C,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,+CAA+C,QAAQ,IAAI,2CAA2C,WAAc;;CAE3K,IAAI,2CAA2C;AAC7C,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,+CAA+C,QAAQ,IAAI,2CAA2C,WAAc;;CAE3K,IAAI,qDAAqD;AACvD,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,yDAAyD,QAAQ,IAAI,qDAAqD,WAAc;;CAE/L,IAAI,WAAW;AACb,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,WAAW,WAAc;;CAEhF,IAAI,sCAAsC;AACxC,UAAQ,OAAO,YAAY,cAAc,QAAQ,IAAI,0CAA0C,QAAQ,IAAI,sCAAsC,WAAc;;CAElK"}