@vibes.diy/api-svc 2.5.16 → 2.5.17
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibes.diy/api-svc",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.17",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -24,19 +24,19 @@
|
|
|
24
24
|
"@libsql/client": "~0.17.3",
|
|
25
25
|
"@neondatabase/serverless": "~1.1.0",
|
|
26
26
|
"@noble/hashes": "~2.2.0",
|
|
27
|
-
"@vibes.diy/api-impl": "2.5.
|
|
28
|
-
"@vibes.diy/api-pkg": "2.5.
|
|
29
|
-
"@vibes.diy/api-sql": "2.5.
|
|
30
|
-
"@vibes.diy/api-types": "2.5.
|
|
31
|
-
"@vibes.diy/call-ai-v2": "2.5.
|
|
32
|
-
"@vibes.diy/identity": "2.5.
|
|
33
|
-
"@vibes.diy/prompts": "2.5.
|
|
34
|
-
"@vibes.diy/use-vibes-base": "2.5.
|
|
35
|
-
"@vibes.diy/vibe-db-explorer": "2.5.
|
|
36
|
-
"@vibes.diy/vibe-types": "2.5.
|
|
27
|
+
"@vibes.diy/api-impl": "2.5.17",
|
|
28
|
+
"@vibes.diy/api-pkg": "2.5.17",
|
|
29
|
+
"@vibes.diy/api-sql": "2.5.17",
|
|
30
|
+
"@vibes.diy/api-types": "2.5.17",
|
|
31
|
+
"@vibes.diy/call-ai-v2": "2.5.17",
|
|
32
|
+
"@vibes.diy/identity": "2.5.17",
|
|
33
|
+
"@vibes.diy/prompts": "2.5.17",
|
|
34
|
+
"@vibes.diy/use-vibes-base": "2.5.17",
|
|
35
|
+
"@vibes.diy/vibe-db-explorer": "2.5.17",
|
|
36
|
+
"@vibes.diy/vibe-types": "2.5.17",
|
|
37
37
|
"acorn": "~8.17.0",
|
|
38
38
|
"arktype": "~2.2.1",
|
|
39
|
-
"call-ai": "2.5.
|
|
39
|
+
"call-ai": "2.5.17",
|
|
40
40
|
"cookie": "~1.1.1",
|
|
41
41
|
"drizzle-orm": "~0.45.2",
|
|
42
42
|
"jose": "~6.2.2",
|
|
@@ -7,3 +7,4 @@ export declare function checkDocAccess(vctx: VibesApiSQLCtx, userId: string, app
|
|
|
7
7
|
isOwner: boolean;
|
|
8
8
|
}>;
|
|
9
9
|
export declare function isPublicReadable(vctx: VibesApiSQLCtx, appSlug: string, ownerHandle: string): Promise<boolean>;
|
|
10
|
+
export declare function isWorldReadable(vctx: VibesApiSQLCtx, appSlug: string, ownerHandle: string): Promise<boolean>;
|
package/public/access-helpers.js
CHANGED
|
@@ -40,4 +40,18 @@ export async function isPublicReadable(vctx, appSlug, ownerHandle) {
|
|
|
40
40
|
return false;
|
|
41
41
|
return rSettings.Ok().settings.entry.publicAccess?.enable === true;
|
|
42
42
|
}
|
|
43
|
+
export async function isWorldReadable(vctx, appSlug, ownerHandle) {
|
|
44
|
+
const rSettings = await ensureAppSettings(vctx, {
|
|
45
|
+
type: "vibes.diy.req-ensure-app-settings",
|
|
46
|
+
appSlug,
|
|
47
|
+
ownerHandle,
|
|
48
|
+
env: [],
|
|
49
|
+
});
|
|
50
|
+
if (rSettings.isErr())
|
|
51
|
+
return false;
|
|
52
|
+
const entry = rSettings.Ok().settings.entry;
|
|
53
|
+
if (entry.publicAccess?.enable === true)
|
|
54
|
+
return true;
|
|
55
|
+
return entry.enableRequest?.enable === true && entry.enableRequest.autoAcceptRole !== undefined;
|
|
56
|
+
}
|
|
43
57
|
//# sourceMappingURL=access-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-helpers.js","sourceRoot":"","sources":["../../jsr/public/access-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAQ,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAoB,EACpB,MAAc,EACd,OAAe,EACf,WAAmB,EACnB,SAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;SACnC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;SAC5D,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,IAAI,OAAO,EAAE,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEpG,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3F,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,4BAA4B,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACtB,IAAI,6BAA6B,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAoB,EAAE,OAAe,EAAE,WAAmB;IAC/F,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE;QAC9C,IAAI,EAAE,mCAAmC;QACzC,OAAO;QACP,WAAW;QACX,GAAG,EAAE,EAAE;KACR,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;AACrE,CAAC"}
|
|
1
|
+
{"version":3,"file":"access-helpers.js","sourceRoot":"","sources":["../../jsr/public/access-helpers.ts"],"names":[],"mappings":"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"}
|
package/public/list-members.js
CHANGED
|
@@ -4,7 +4,7 @@ import { eq, and } from "drizzle-orm";
|
|
|
4
4
|
import { type } from "arktype";
|
|
5
5
|
import { unwrapMsgBase } from "../unwrap-msg-base.js";
|
|
6
6
|
import { optAuth } from "../check-auth.js";
|
|
7
|
-
import { checkDocAccess, canRead,
|
|
7
|
+
import { checkDocAccess, canRead, isWorldReadable } from "./access-helpers.js";
|
|
8
8
|
import { deriveDisplayName } from "./derive-display-name.js";
|
|
9
9
|
function safeDisplay(foreignInfo, fallbackEmail) {
|
|
10
10
|
const fi = foreignInfo;
|
|
@@ -28,18 +28,17 @@ export const listMembersEvento = {
|
|
|
28
28
|
handle: optAuth(async (ctx) => {
|
|
29
29
|
const req = ctx.validated.payload;
|
|
30
30
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
31
|
-
const { access } = req._auth
|
|
31
|
+
const { access, isOwner } = req._auth
|
|
32
32
|
? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.ownerHandle)
|
|
33
|
-
: { access: "none" };
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
33
|
+
: { access: "none", isOwner: false };
|
|
34
|
+
const worldReadable = await isWorldReadable(vctx, req.appSlug, req.ownerHandle);
|
|
35
|
+
const allowed = worldReadable ? isOwner : canRead(access);
|
|
36
|
+
if (!allowed) {
|
|
37
|
+
await ctx.send.send(ctx, {
|
|
38
|
+
type: "vibes.diy.res-error",
|
|
39
|
+
error: { message: "Access denied" },
|
|
40
|
+
});
|
|
41
|
+
return Result.Ok(EventoResult.Continue);
|
|
43
42
|
}
|
|
44
43
|
const binding = await vctx.sql.db
|
|
45
44
|
.select({ userId: vctx.sql.tables.handleBinding.userId })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-members.js","sourceRoot":"","sources":["../../jsr/public/list-members.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAsC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAEL,cAAc,GAWf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list-members.js","sourceRoot":"","sources":["../../jsr/public/list-members.ts"],"names":[],"mappings":"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"}
|