@stackframe/stack-shared 1.2.1 → 2.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/interface/clientInterface.d.ts +2 -1
- package/dist/interface/clientInterface.d.ts.map +1 -1
- package/dist/interface/clientInterface.js +1 -0
- package/dist/utils/arrays.d.ts +1 -1
- package/dist/utils/arrays.d.ts.map +1 -1
- package/dist/utils/crypto.d.ts.map +1 -1
- package/dist/utils/crypto.js +5 -5
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +8 -0
- package/dist/utils/errors.d.ts +2 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/objects.d.ts +3 -0
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/react.d.ts +2 -2
- package/dist/utils/react.d.ts.map +1 -1
- package/dist/utils/react.js +7 -4
- package/dist/utils/types.js +1 -1
- package/package.json +4 -15
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as oauth from 'oauth4webapi';
|
|
1
2
|
import { SignInErrorCode, SignUpErrorCode, EmailVerificationLinkErrorCode, PasswordResetLinkErrorCode, KnownErrorCode } from "../utils/types";
|
|
2
3
|
import { Result } from "../utils/results";
|
|
3
4
|
import { ReadonlyJson } from '../utils/json';
|
|
@@ -131,7 +132,7 @@ export declare class StackClientInterface {
|
|
|
131
132
|
signInWithCredential(email: string, password: string, tokenStore: TokenStore): Promise<SignInErrorCode | undefined>;
|
|
132
133
|
signUpWithCredential(email: string, password: string, emailVerificationRedirectUrl: string, tokenStore: TokenStore): Promise<SignUpErrorCode | undefined>;
|
|
133
134
|
getOAuthUrl(provider: string, redirectUrl: string, codeChallenge: string, state: string): Promise<string>;
|
|
134
|
-
callOAuthCallback(oauthParams: URLSearchParams, redirectUri: string, codeVerifier: string, state: string, tokenStore: TokenStore): Promise<
|
|
135
|
+
callOAuthCallback(oauthParams: URLSearchParams, redirectUri: string, codeVerifier: string, state: string, tokenStore: TokenStore): Promise<oauth.OAuth2TokenEndpointResponse>;
|
|
135
136
|
signOut(tokenStore: TokenStore): Promise<void>;
|
|
136
137
|
getClientUserByToken(tokenStore: TokenStore): Promise<Result<UserJson>>;
|
|
137
138
|
getClientProject(): Promise<Result<ClientProjectJson>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientInterface.d.ts","sourceRoot":"","sources":["../../src/interface/clientInterface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientInterface.d.ts","sourceRoot":"","sources":["../../src/interface/clientInterface.ts"],"names":[],"mappings":"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"}
|
|
@@ -329,6 +329,7 @@ export class StackClientInterface {
|
|
|
329
329
|
accessToken: result.access_token ?? null,
|
|
330
330
|
refreshToken: result.refresh_token ?? old?.refreshToken ?? null,
|
|
331
331
|
}));
|
|
332
|
+
return result;
|
|
332
333
|
}
|
|
333
334
|
async signOut(tokenStore) {
|
|
334
335
|
const tokenObj = await tokenStore.getOrWait();
|
package/dist/utils/arrays.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare function typedIncludes<T extends readonly any[]>(arr: T, item: unknown): item is T[number];
|
|
2
2
|
export declare function enumerate<T extends readonly any[]>(arr: T): [number, T[number]][];
|
|
3
3
|
export declare function isShallowEqual(a: readonly any[], b: readonly any[]): boolean;
|
|
4
|
-
export declare function groupBy<T extends
|
|
4
|
+
export declare function groupBy<T extends any, K>(arr: Iterable<T>, key: (item: T) => K): Map<K, T[]>;
|
|
5
5
|
export declare function range(endExclusive: number): number[];
|
|
6
6
|
export declare function range(startInclusive: number, endExclusive: number): number[];
|
|
7
7
|
export declare function range(startInclusive: number, endExclusive: number, step: number): number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../src/utils/arrays.tsx"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAEhG;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAEjF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,GAAG,OAAO,CAM5E;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../src/utils/arrays.tsx"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAEhG;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAEjF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,EAAE,GAAG,OAAO,CAM5E;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,EACtC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAClB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAQb;AAGD,wBAAgB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;AACtD,wBAAgB,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;AAC9E,wBAAgB,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;AAgB5F,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,CAGhE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,CAEjE;AAGD,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,CAOjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.tsx"],"names":[],"mappings":"AAGA,wBAAgB,0BAA0B,CAAC,gBAAgB,GAAE,MAAY,UAMxE"}
|
package/dist/utils/crypto.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
import { encodeBase32 } from "./bytes";
|
|
3
|
-
const characters = "23456789abcdefghjkmnopqrstuvwxyz";
|
|
4
|
-
if (characters.length !== 32)
|
|
5
|
-
throw new Error("Invalid characters length");
|
|
6
3
|
export function generateSecureRandomString(minBitsOfEntropy = 224) {
|
|
7
|
-
const
|
|
8
|
-
|
|
4
|
+
const base32CharactersCount = Math.ceil(minBitsOfEntropy / 5);
|
|
5
|
+
const bytesCount = Math.ceil(base32CharactersCount * 5 / 8);
|
|
6
|
+
const randomBytes = crypto.randomBytes(bytesCount);
|
|
7
|
+
const str = encodeBase32(randomBytes);
|
|
8
|
+
return str.slice(str.length - base32CharactersCount).toLowerCase();
|
|
9
9
|
}
|
package/dist/utils/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/utils/env.tsx"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUnD"}
|
package/dist/utils/env.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { throwErr } from "./errors";
|
|
2
|
+
import { deindent } from "./strings";
|
|
2
3
|
/**
|
|
3
4
|
* Returns the environment variable with the given name, throwing an error if it's undefined or the empty string.
|
|
4
5
|
*/
|
|
5
6
|
export function getEnvVariable(name) {
|
|
7
|
+
if (typeof window !== 'undefined') {
|
|
8
|
+
throw new Error(deindent `
|
|
9
|
+
Can't use getEnvVariable on the client because Next.js transpiles expressions of the kind process.env.XYZ at build-time on the client.
|
|
10
|
+
|
|
11
|
+
Use process.env.XYZ directly instead.
|
|
12
|
+
`);
|
|
13
|
+
}
|
|
6
14
|
return (process.env[name] ?? throwErr(`Missing environment variable: ${name}`)) || throwErr(`Empty environment variable: ${name}`);
|
|
7
15
|
}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -9,12 +9,12 @@ type StatusErrorConstructorParameters = [
|
|
|
9
9
|
statusCode: number | Status,
|
|
10
10
|
message?: string,
|
|
11
11
|
options?: {
|
|
12
|
-
headers: Record<string, string>;
|
|
12
|
+
headers: Record<string, string[]>;
|
|
13
13
|
}
|
|
14
14
|
];
|
|
15
15
|
export declare class StatusError extends Error {
|
|
16
16
|
readonly options?: {
|
|
17
|
-
headers: Record<string, string>;
|
|
17
|
+
headers: Record<string, string[]>;
|
|
18
18
|
} | undefined;
|
|
19
19
|
readonly statusCode: number;
|
|
20
20
|
static BadRequest: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.tsx"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;AACtD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;AAC9C,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,gCAAgC,GAAG,KAAK,CAAC;AAY3E,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,UAAU,EAAE,MAAM,GAAG,MAAM;IAC3B,OAAO,CAAC,EAAE,MAAM;IAChB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.tsx"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;AACtD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;AAC9C,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,gCAAgC,GAAG,KAAK,CAAC;AAY3E,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,UAAU,EAAE,MAAM,GAAG,MAAM;IAC3B,OAAO,CAAC,EAAE,MAAM;IAChB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;KAAE;CAChD,CAAC;AAEF,qBAAa,WAAY,SAAQ,KAAK;aA+CmC,OAAO,CAAC;iBAAa,OAAO,MAAM,EAAE,MAAM,EAAE,CAAC;;IA9CpH,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,OAAc,UAAU;;;MAA+C;IACvE,OAAc,YAAY;;;MAAgD;IAC1E,OAAc,eAAe;;;MAAoD;IACjF,OAAc,SAAS;;;MAA6C;IACpE,OAAc,QAAQ;;;MAA6C;IACnE,OAAc,gBAAgB;;;MAAsD;IACpF,OAAc,aAAa;;;MAAkD;IAC7E,OAAc,2BAA2B;;;MAAiE;IAC1G,OAAc,cAAc;;;MAAmD;IAC/E,OAAc,QAAQ;;;MAA4C;IAClE,OAAc,IAAI;;;MAAwC;IAC1D,OAAc,cAAc;;;MAAmD;IAC/E,OAAc,kBAAkB;;;MAAuD;IACvF,OAAc,eAAe;;;MAAqD;IAClF,OAAc,UAAU;;;MAAgD;IACxE,OAAc,oBAAoB;;;MAA0D;IAC5F,OAAc,mBAAmB;;;MAAyD;IAC1F,OAAc,iBAAiB;;;MAAsD;IACrF,OAAc,SAAS;;;MAAgD;IACvE,OAAc,kBAAkB;;;MAAuD;IACvF,OAAc,mBAAmB;;;MAAwD;IACzF,OAAc,MAAM;;;MAA0C;IAC9D,OAAc,gBAAgB;;;MAAqD;IACnF,OAAc,QAAQ;;;MAA6C;IACnE,OAAc,eAAe;;;MAAoD;IACjF,OAAc,oBAAoB;;;MAAyD;IAC3F,OAAc,eAAe;;;MAAqD;IAClF,OAAc,2BAA2B;;;MAAmE;IAC5G,OAAc,0BAA0B;;;MAAiE;IAEzG,OAAc,mBAAmB;;;MAAyD;IAC1F,OAAc,cAAc;;;MAAmD;IAC/E,OAAc,UAAU;;;MAA+C;IACvE,OAAc,kBAAkB;;;MAAuD;IACvF,OAAc,cAAc;;;MAAmD;IAC/E,OAAc,uBAAuB;;;MAA8D;IACnG,OAAc,qBAAqB;;;MAA2D;IAC9F,OAAc,mBAAmB;;;MAAwD;IACzF,OAAc,YAAY;;;MAAiD;IAC3E,OAAc,WAAW;;;MAAgD;IACzE,OAAc,6BAA6B;;;MAAmE;gBAGlG,GAAG,IAAI,EAAE,gCAAgC;IAW9C,aAAa;IAIb,aAAa;CAGrB"}
|
package/dist/utils/objects.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../src/utils/objects.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,CAAC,CAgCpE;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3F;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAE3D;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAE9D;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAErG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;CAAE,CAE9F"}
|
|
1
|
+
{"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../src/utils/objects.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAC;AAE3F;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,CAAC,CAgCpE;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAE1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3F;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAE3D;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAE9D;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAErG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;CAAE,CAE9F"}
|
package/dist/utils/react.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare function getNodeText(node: React.ReactNode): string;
|
|
|
7
7
|
*/
|
|
8
8
|
export declare function suspend(): never;
|
|
9
9
|
/**
|
|
10
|
-
* Use this in a component or a hook to disable SSR.
|
|
10
|
+
* Use this in a component or a hook to disable SSR. Should be wrapped in a Suspense boundary, or it will throw an error.
|
|
11
11
|
*/
|
|
12
|
-
export declare function suspendIfSsr(): void;
|
|
12
|
+
export declare function suspendIfSsr(caller?: string): void;
|
|
13
13
|
//# sourceMappingURL=react.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/utils/react.tsx"],"names":[],"mappings":";AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAczD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,KAAK,CAG/B;AAGD;;GAEG;AACH,wBAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/utils/react.tsx"],"names":[],"mappings":";AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAczD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,KAAK,CAG/B;AAGD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,QAoB3C"}
|
package/dist/utils/react.js
CHANGED
|
@@ -26,18 +26,21 @@ export function suspend() {
|
|
|
26
26
|
throw new Error("Somehow a Promise that never resolves was resolved?");
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
* Use this in a component or a hook to disable SSR.
|
|
29
|
+
* Use this in a component or a hook to disable SSR. Should be wrapped in a Suspense boundary, or it will throw an error.
|
|
30
30
|
*/
|
|
31
|
-
export function suspendIfSsr() {
|
|
31
|
+
export function suspendIfSsr(caller) {
|
|
32
32
|
if (typeof window === "undefined") {
|
|
33
33
|
const error = Object.assign(new Error(deindent `
|
|
34
|
-
This code path
|
|
34
|
+
${caller ?? "This code path"} attempted to display a loading indicator during SSR by falling back to the nearest Suspense boundary. If you see this error, it means no Suspense boundary was found, and no loading indicator could be displayed. Make sure you are not catching this error with try-catch, and that the component is rendered inside a Suspense boundary, for example by adding a \`loading.tsx\` file in your app directory.
|
|
35
35
|
|
|
36
|
-
See: https://
|
|
36
|
+
See: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout
|
|
37
|
+
|
|
38
|
+
More information on SSR and Suspense boundaries: https://react.dev/reference/react/Suspense#providing-a-fallback-for-server-errors-and-client-only-content
|
|
37
39
|
`), {
|
|
38
40
|
// set the digest so nextjs doesn't log the error
|
|
39
41
|
// https://github.com/vercel/next.js/blob/d01d6d9c35a8c2725b3d74c1402ab76d4779a6cf/packages/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts#L14
|
|
40
42
|
digest: "BAILOUT_TO_CLIENT_SIDE_RENDERING",
|
|
43
|
+
reason: caller ?? "suspendIfSsr()",
|
|
41
44
|
});
|
|
42
45
|
throw error;
|
|
43
46
|
}
|
package/dist/utils/types.js
CHANGED
package/package.json
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackframe/stack-shared",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
8
8
|
],
|
|
9
9
|
"peerDependencies": {
|
|
10
|
-
"react": "^18.2
|
|
11
|
-
},
|
|
12
|
-
"peerDependenciesMeta": {
|
|
13
|
-
"react": {
|
|
14
|
-
"optional": true
|
|
15
|
-
}
|
|
10
|
+
"react": "^18.2"
|
|
16
11
|
},
|
|
17
12
|
"dependencies": {
|
|
18
13
|
"bcrypt": "^5.1.1",
|
|
@@ -22,14 +17,8 @@
|
|
|
22
17
|
},
|
|
23
18
|
"devDependencies": {
|
|
24
19
|
"@types/bcrypt": "^5.0.2",
|
|
25
|
-
"@types/react": "^18.2.
|
|
26
|
-
"@types/uuid": "^9.0.8"
|
|
27
|
-
"@typescript-eslint/eslint-plugin": "^6",
|
|
28
|
-
"@typescript-eslint/parser": "^6.x",
|
|
29
|
-
"eslint": "^8",
|
|
30
|
-
"eslint-config-next": "^14",
|
|
31
|
-
"rimraf": "^5.0.5",
|
|
32
|
-
"react": "^18.2.0"
|
|
20
|
+
"@types/react": "^18.2.66",
|
|
21
|
+
"@types/uuid": "^9.0.8"
|
|
33
22
|
},
|
|
34
23
|
"scripts": {
|
|
35
24
|
"build": "tsc",
|