@stackframe/js 2.8.39 → 2.8.41
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/CHANGELOG.md +19 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrations/convex.js +18 -0
- package/dist/esm/integrations/convex.js.map +1 -0
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js +66 -1
- package/dist/esm/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js +20 -0
- package/dist/esm/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/esm/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/esm/lib/stack-app/common.js.map +1 -1
- package/dist/esm/lib/stack-app/index.js.map +1 -1
- package/dist/esm/lib/stack-app/users/index.js.map +1 -1
- package/dist/index.d.mts +67 -10
- package/dist/index.d.ts +67 -10
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/convex.js +43 -0
- package/dist/integrations/convex.js.map +1 -0
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js +66 -1
- package/dist/lib/stack-app/apps/implementations/client-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/common.js +1 -1
- package/dist/lib/stack-app/apps/implementations/common.js.map +1 -1
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js +20 -0
- package/dist/lib/stack-app/apps/implementations/server-app-impl.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/client-app.js.map +1 -1
- package/dist/lib/stack-app/apps/interfaces/server-app.js.map +1 -1
- package/dist/lib/stack-app/common.js.map +1 -1
- package/dist/lib/stack-app/index.js.map +1 -1
- package/dist/lib/stack-app/users/index.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @stackframe/stack
|
|
2
2
|
|
|
3
|
+
## 2.8.41
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @stackframe/stack-shared@2.8.41
|
|
9
|
+
- @stackframe/stack-ui@2.8.41
|
|
10
|
+
- @stackframe/stack-sc@2.8.41
|
|
11
|
+
|
|
12
|
+
## 2.8.40
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Various changes
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
- @stackframe/stack-shared@2.8.40
|
|
19
|
+
- @stackframe/stack-ui@2.8.40
|
|
20
|
+
- @stackframe/stack-sc@2.8.40
|
|
21
|
+
|
|
3
22
|
## 2.8.39
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nexport * from './lib/stack-app';\n\n"],"mappings":";AAIA,cAAc;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nexport * from './lib/stack-app';\n\nexport { getConvexProvidersConfig } from \"./integrations/convex\";\n\n"],"mappings":";AAIA,cAAc;AAEd,SAAS,gCAAgC;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/integrations/convex.ts
|
|
2
|
+
import { urlString } from "@stackframe/stack-shared/dist/utils/urls";
|
|
3
|
+
import { getDefaultProjectId } from "../lib/stack-app/apps/implementations/common.js";
|
|
4
|
+
function getConvexProvidersConfig(options) {
|
|
5
|
+
const projectId = options.projectId ?? getDefaultProjectId();
|
|
6
|
+
return [
|
|
7
|
+
{
|
|
8
|
+
type: "customJwt",
|
|
9
|
+
issuer: urlString`https://api.stack-auth.com/api/v1/projects/${projectId}`,
|
|
10
|
+
jwks: urlString`https://api.stack-auth.com/api/v1/projects/${projectId}/.well-known/jwks.json?include_anonymous=true`,
|
|
11
|
+
algorithm: "ES256"
|
|
12
|
+
}
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
getConvexProvidersConfig
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=convex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/integrations/convex.ts"],"sourcesContent":["\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\nimport { urlString } from \"@stackframe/stack-shared/dist/utils/urls\";\nimport { getDefaultProjectId } from \"../lib/stack-app/apps/implementations/common\";\n\nexport function getConvexProvidersConfig(options: {\n projectId?: string,\n}) {\n const projectId = options.projectId ?? getDefaultProjectId();\n return [\n {\n type: \"customJwt\",\n issuer: urlString`https://api.stack-auth.com/api/v1/projects/${projectId}`,\n jwks: urlString`https://api.stack-auth.com/api/v1/projects/${projectId}/.well-known/jwks.json?include_anonymous=true`,\n algorithm: \"ES256\",\n },\n ];\n}\n"],"mappings":";AAIA,SAAS,iBAAiB;AAC1B,SAAS,2BAA2B;AAE7B,SAAS,yBAAyB,SAEtC;AACD,QAAM,YAAY,QAAQ,aAAa,oBAAoB;AAC3D,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,QAAQ,uDAAuD,SAAS;AAAA,MACxE,MAAM,uDAAuD,SAAS;AAAA,MACtE,WAAW;AAAA,IACb;AAAA,EACF;AACF;","names":[]}
|
|
@@ -139,6 +139,9 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
139
139
|
return await this._interface.getItem({ customCustomerId, itemId }, session);
|
|
140
140
|
}
|
|
141
141
|
);
|
|
142
|
+
this._convexPartialUserCache = createCache(
|
|
143
|
+
async ([ctx]) => await this._getPartialUserFromConvex(ctx)
|
|
144
|
+
);
|
|
142
145
|
this._anonymousSignUpInProgress = null;
|
|
143
146
|
this._memoryTokenStore = createEmptyTokenStore();
|
|
144
147
|
this._nextServerCookiesTokenStores = /* @__PURE__ */ new WeakMap();
|
|
@@ -413,7 +416,8 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
413
416
|
}
|
|
414
417
|
async _getSession(overrideTokenStoreInit) {
|
|
415
418
|
const tokenStore = this._getOrCreateTokenStore(await this._createCookieHelper(), overrideTokenStoreInit);
|
|
416
|
-
|
|
419
|
+
const session = this._getSessionFromTokenStore(tokenStore);
|
|
420
|
+
return session;
|
|
417
421
|
}
|
|
418
422
|
async _signInToAccountWithTokens(tokens) {
|
|
419
423
|
if (!("accessToken" in tokens) || !("refreshToken" in tokens)) {
|
|
@@ -1152,6 +1156,67 @@ var __StackClientAppImplIncomplete = class __StackClientAppImplIncomplete {
|
|
|
1152
1156
|
}
|
|
1153
1157
|
return crud && this._currentUserFromCrud(crud, session);
|
|
1154
1158
|
}
|
|
1159
|
+
_getTokenPartialUserFromSession(session, options) {
|
|
1160
|
+
const accessToken = session.getAccessTokenIfNotExpiredYet(0);
|
|
1161
|
+
if (!accessToken) {
|
|
1162
|
+
return null;
|
|
1163
|
+
}
|
|
1164
|
+
const isAnonymous = accessToken.payload.is_anonymous;
|
|
1165
|
+
if (isAnonymous && options.or !== "anonymous") {
|
|
1166
|
+
return null;
|
|
1167
|
+
}
|
|
1168
|
+
return {
|
|
1169
|
+
id: accessToken.payload.sub,
|
|
1170
|
+
primaryEmail: accessToken.payload.email,
|
|
1171
|
+
displayName: accessToken.payload.name,
|
|
1172
|
+
primaryEmailVerified: accessToken.payload.email_verified,
|
|
1173
|
+
isAnonymous
|
|
1174
|
+
};
|
|
1175
|
+
}
|
|
1176
|
+
async _getPartialUserFromConvex(ctx) {
|
|
1177
|
+
const auth = await ctx.auth.getUserIdentity();
|
|
1178
|
+
if (!auth) {
|
|
1179
|
+
return null;
|
|
1180
|
+
}
|
|
1181
|
+
return {
|
|
1182
|
+
id: auth.subject,
|
|
1183
|
+
displayName: auth.name ?? null,
|
|
1184
|
+
primaryEmail: auth.email ?? null,
|
|
1185
|
+
primaryEmailVerified: auth.email_verified,
|
|
1186
|
+
isAnonymous: auth.is_anonymous
|
|
1187
|
+
};
|
|
1188
|
+
}
|
|
1189
|
+
async getPartialUser(options) {
|
|
1190
|
+
switch (options.from) {
|
|
1191
|
+
case "token": {
|
|
1192
|
+
this._ensurePersistentTokenStore(options.tokenStore ?? this._tokenStoreInit);
|
|
1193
|
+
const session = await this._getSession(options.tokenStore);
|
|
1194
|
+
return this._getTokenPartialUserFromSession(session, options);
|
|
1195
|
+
}
|
|
1196
|
+
case "convex": {
|
|
1197
|
+
return await this._getPartialUserFromConvex(options.ctx);
|
|
1198
|
+
}
|
|
1199
|
+
default: {
|
|
1200
|
+
throw new Error(`Invalid 'from' option: ${options.from}`);
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
getConvexClientAuth(options) {
|
|
1205
|
+
return async (args) => {
|
|
1206
|
+
const session = await this._getSession(options.tokenStore);
|
|
1207
|
+
if (!args.forceRefreshToken) {
|
|
1208
|
+
const tokens2 = await session.getOrFetchLikelyValidTokens(2e4);
|
|
1209
|
+
return tokens2?.accessToken.token ?? null;
|
|
1210
|
+
}
|
|
1211
|
+
const tokens = await session.fetchNewTokens();
|
|
1212
|
+
return tokens?.accessToken.token ?? null;
|
|
1213
|
+
};
|
|
1214
|
+
}
|
|
1215
|
+
async getConvexHttpClientAuth(options) {
|
|
1216
|
+
const session = await this._getSession(options.tokenStore);
|
|
1217
|
+
const tokens = await session.getOrFetchLikelyValidTokens(2e4);
|
|
1218
|
+
return tokens?.accessToken.token ?? throwErr("No access token available");
|
|
1219
|
+
}
|
|
1155
1220
|
async _updateClientUser(update, session) {
|
|
1156
1221
|
const res = await this._interface.updateClientUser(userUpdateOptionsToCrud(update), session);
|
|
1157
1222
|
await this._refreshUser(session);
|