@vibes.diy/api-svc 2.4.5 → 2.4.7
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/asset-grant.js +2 -2
- package/asset-grant.js.map +1 -1
- package/cf-serve.js +2 -2
- package/cf-serve.js.map +1 -1
- package/create-handler.d.ts +1 -1
- package/create-handler.js.map +1 -1
- package/intern/append-turn-to-chat.d.ts +1 -1
- package/intern/append-turn-to-chat.js +4 -4
- package/intern/append-turn-to-chat.js.map +1 -1
- package/intern/bump-app-recency.d.ts +1 -1
- package/intern/bump-app-recency.js +1 -1
- package/intern/bump-app-recency.js.map +1 -1
- package/intern/ensure-app-metadata.d.ts +1 -1
- package/intern/ensure-app-metadata.js +6 -6
- package/intern/ensure-app-metadata.js.map +1 -1
- package/intern/ensure-application-chat-id.d.ts +1 -1
- package/intern/ensure-application-chat-id.js +9 -9
- package/intern/ensure-application-chat-id.js.map +1 -1
- package/intern/ensure-chat-id.d.ts +1 -1
- package/intern/ensure-chat-id.js +21 -21
- package/intern/ensure-chat-id.js.map +1 -1
- package/intern/ensure-push-seeded-chat.d.ts +1 -1
- package/intern/ensure-push-seeded-chat.js +4 -4
- package/intern/ensure-push-seeded-chat.js.map +1 -1
- package/intern/ensure-slug-binding.d.ts +7 -7
- package/intern/ensure-slug-binding.js +53 -53
- package/intern/ensure-slug-binding.js.map +1 -1
- package/intern/get-model-defaults.d.ts +2 -2
- package/intern/get-model-defaults.js +6 -6
- package/intern/get-model-defaults.js.map +1 -1
- package/intern/get-slug-binding.d.ts +3 -3
- package/intern/get-slug-binding.js +6 -6
- package/intern/get-slug-binding.js.map +1 -1
- package/intern/get-vibe-route-hints.d.ts +1 -1
- package/intern/get-vibe-route-hints.js +5 -5
- package/intern/get-vibe-route-hints.js.map +1 -1
- package/intern/render-db-explorer.d.ts +1 -1
- package/intern/render-vibe.d.ts +2 -2
- package/intern/render-vibe.js +5 -5
- package/intern/render-vibe.js.map +1 -1
- package/intern/write-apps.d.ts +2 -2
- package/intern/write-apps.js +7 -7
- package/intern/write-apps.js.map +1 -1
- package/package.json +11 -11
- package/public/access-function.d.ts +8 -0
- package/public/access-function.js +28 -0
- package/public/access-function.js.map +1 -0
- package/public/access-helpers.d.ts +2 -2
- package/public/access-helpers.js +9 -9
- package/public/access-helpers.js.map +1 -1
- package/public/app-documents.js +71 -71
- package/public/app-documents.js.map +1 -1
- package/public/asset-upload-grant.js +2 -2
- package/public/asset-upload-grant.js.map +1 -1
- package/public/convert-image-evt.d.ts +1 -1
- package/public/convert-image-evt.js +3 -3
- package/public/convert-image-evt.js.map +1 -1
- package/public/db-acl-resolver.d.ts +1 -1
- package/public/db-acl-resolver.js +6 -6
- package/public/db-acl-resolver.js.map +1 -1
- package/public/ensure-app-settings.js +17 -17
- package/public/ensure-app-settings.js.map +1 -1
- package/public/ensure-app-slug-item.js +8 -8
- package/public/ensure-app-slug-item.js.map +1 -1
- package/public/files-asset.d.ts +1 -1
- package/public/files-asset.js +8 -8
- package/public/files-asset.js.map +1 -1
- package/public/files-url-mint.d.ts +1 -1
- package/public/files-url-mint.js +2 -2
- package/public/files-url-mint.js.map +1 -1
- package/public/fork-app.js +21 -21
- package/public/fork-app.js.map +1 -1
- package/public/get-app-by-fsid.js +17 -17
- package/public/get-app-by-fsid.js.map +1 -1
- package/public/get-chat-details.js +5 -5
- package/public/get-chat-details.js.map +1 -1
- package/public/get-fp-cloud-token.js +5 -5
- package/public/get-fp-cloud-token.js.map +1 -1
- package/public/get-user-avatar.d.ts +2 -2
- package/public/get-user-avatar.js +8 -8
- package/public/get-user-avatar.js.map +1 -1
- package/public/invite-flow.d.ts +1 -1
- package/public/invite-flow.js +23 -18
- package/public/invite-flow.js.map +1 -1
- package/public/list-application-chats.js +3 -3
- package/public/list-application-chats.js.map +1 -1
- package/public/list-members.js +7 -7
- package/public/list-members.js.map +1 -1
- package/public/list-memberships.js +14 -14
- package/public/list-memberships.js.map +1 -1
- package/public/list-recent-vibes.js +9 -9
- package/public/list-recent-vibes.js.map +1 -1
- package/public/list-user-slug-app-slug.js +15 -15
- package/public/list-user-slug-app-slug.js.map +1 -1
- package/public/open-chat.js +2 -2
- package/public/open-chat.js.map +1 -1
- package/public/pin-recent-vibe.js +7 -7
- package/public/pin-recent-vibe.js.map +1 -1
- package/public/prompt-chat-section.d.ts +1 -1
- package/public/prompt-chat-section.js +14 -14
- package/public/prompt-chat-section.js.map +1 -1
- package/public/put-asset.js +1 -1
- package/public/put-asset.js.map +1 -1
- package/public/report-active-members.js +5 -5
- package/public/report-active-members.js.map +1 -1
- package/public/report-campaign-health.d.ts +5 -1
- package/public/report-campaign-health.js +46 -7
- package/public/report-campaign-health.js.map +1 -1
- package/public/report-growth-memberships.js +7 -7
- package/public/report-growth-memberships.js.map +1 -1
- package/public/report-top-vibes-by-members.js +4 -4
- package/public/report-top-vibes-by-members.js.map +1 -1
- package/public/request-flow.d.ts +3 -3
- package/public/request-flow.js +44 -44
- package/public/request-flow.js.map +1 -1
- package/public/serv-entry-point.js +4 -4
- package/public/serv-entry-point.js.map +1 -1
- package/public/set-mode-fsid.js +5 -5
- package/public/set-mode-fsid.js.map +1 -1
- package/public/store-and-audit-asset.d.ts +1 -1
- package/public/store-and-audit-asset.js +1 -1
- package/public/store-and-audit-asset.js.map +1 -1
- package/public/user-slug-bindings.d.ts +4 -4
- package/public/user-slug-bindings.js +42 -36
- package/public/user-slug-bindings.js.map +1 -1
- package/public/who-am-i.js +10 -10
- package/public/who-am-i.js.map +1 -1
- package/types.d.ts +10 -10
- package/types.js +8 -8
- package/types.js.map +1 -1
- package/usage-report/admin-db.js +1 -1
- package/usage-report/inspect-db-report-template.d.ts +1 -1
- package/usage-report/inspect-db-report-template.js +4 -4
- package/usage-report/inspect-db-report-template.js.map +1 -1
- package/usage-report/inspect-db-report.js +15 -15
- package/usage-report/inspect-db-report.js.map +1 -1
- package/vibes-msg-evento.js +2 -2
- package/vibes-msg-evento.js.map +1 -1
package/public/app-documents.js
CHANGED
|
@@ -8,17 +8,17 @@ import { type } from "arktype";
|
|
|
8
8
|
import { checkDocAccess, canRead, isPublicReadable } from "./access-helpers.js";
|
|
9
9
|
import { aclAllows, resolveDbAcl, checkDirectChannelAccess } from "./db-acl-resolver.js";
|
|
10
10
|
import { mintFilesUrls, isFileMeta } from "./files-url-mint.js";
|
|
11
|
-
async function readAllowed(vctx, acl, access, appSlug,
|
|
11
|
+
async function readAllowed(vctx, acl, access, appSlug, ownerHandle) {
|
|
12
12
|
if (acl?.read !== undefined)
|
|
13
13
|
return aclAllows(acl, "read", access);
|
|
14
14
|
if (canRead(access))
|
|
15
15
|
return true;
|
|
16
|
-
return isPublicReadable(vctx, appSlug,
|
|
16
|
+
return isPublicReadable(vctx, appSlug, ownerHandle);
|
|
17
17
|
}
|
|
18
18
|
function clientWsSend(ctx) {
|
|
19
19
|
return ctx.send.provider;
|
|
20
20
|
}
|
|
21
|
-
async function validateFilesUploads(vctx, doc,
|
|
21
|
+
async function validateFilesUploads(vctx, doc, ownerHandle, appSlug) {
|
|
22
22
|
const files = doc?._files;
|
|
23
23
|
if (!files || typeof files !== "object")
|
|
24
24
|
return { ok: true };
|
|
@@ -31,7 +31,7 @@ async function validateFilesUploads(vctx, doc, userSlug, appSlug) {
|
|
|
31
31
|
return { ok: true };
|
|
32
32
|
const t = vctx.sql.tables.assetUploads;
|
|
33
33
|
const rows = await vctx.sql.db
|
|
34
|
-
.select({ uploadId: t.uploadId,
|
|
34
|
+
.select({ uploadId: t.uploadId, ownerHandle: t.ownerHandle, appSlug: t.appSlug })
|
|
35
35
|
.from(t)
|
|
36
36
|
.where(inArray(t.uploadId, uploadIds));
|
|
37
37
|
const found = new Map(rows.map((r) => [r.uploadId, r]));
|
|
@@ -39,7 +39,7 @@ async function validateFilesUploads(vctx, doc, userSlug, appSlug) {
|
|
|
39
39
|
const row = found.get(id);
|
|
40
40
|
if (!row)
|
|
41
41
|
return { ok: false, reason: `unknown uploadId: ${id}` };
|
|
42
|
-
if (row.
|
|
42
|
+
if (row.ownerHandle !== ownerHandle || row.appSlug !== appSlug) {
|
|
43
43
|
return { ok: false, reason: `uploadId ${id} not minted for this app` };
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -58,16 +58,16 @@ export const putDocEvento = {
|
|
|
58
58
|
const req = ctx.validated.payload;
|
|
59
59
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
60
60
|
const userId = req._auth.verifiedAuth.claims.userId;
|
|
61
|
-
if (isDirectChannel(req.
|
|
62
|
-
const rAccess = await checkDirectChannelAccess(vctx, req.
|
|
61
|
+
if (isDirectChannel(req.ownerHandle)) {
|
|
62
|
+
const rAccess = await checkDirectChannelAccess(vctx, req.ownerHandle, userId);
|
|
63
63
|
if (rAccess.isErr() || !rAccess.Ok()) {
|
|
64
64
|
await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
|
|
65
65
|
return Result.Ok(EventoResult.Continue);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
const access = await checkDocAccess(vctx, userId, req.appSlug, req.
|
|
70
|
-
const rAcl = await resolveDbAcl(vctx, req.
|
|
69
|
+
const access = await checkDocAccess(vctx, userId, req.appSlug, req.ownerHandle);
|
|
70
|
+
const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
|
|
71
71
|
if (rAcl.isErr()) {
|
|
72
72
|
await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
|
|
73
73
|
return Result.Ok(EventoResult.Continue);
|
|
@@ -78,7 +78,7 @@ export const putDocEvento = {
|
|
|
78
78
|
return Result.Ok(EventoResult.Continue);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
const filesCheck = await validateFilesUploads(vctx, req.doc, req.
|
|
81
|
+
const filesCheck = await validateFilesUploads(vctx, req.doc, req.ownerHandle, req.appSlug);
|
|
82
82
|
if (!filesCheck.ok) {
|
|
83
83
|
await ctx.send.send(ctx, {
|
|
84
84
|
type: "vibes.diy.res-error",
|
|
@@ -93,11 +93,11 @@ export const putDocEvento = {
|
|
|
93
93
|
const maxSeqResult = await vctx.sql.db
|
|
94
94
|
.select({ maxSeq: max(t.seq) })
|
|
95
95
|
.from(t)
|
|
96
|
-
.where(and(eq(t.
|
|
96
|
+
.where(and(eq(t.ownerHandle, req.ownerHandle), eq(t.appSlug, req.appSlug), eq(t.dbName, dbName), eq(t.docId, docId)))
|
|
97
97
|
.then((r) => r[0]);
|
|
98
98
|
const nextSeq = (maxSeqResult?.maxSeq ?? 0) + 1;
|
|
99
99
|
await vctx.sql.db.insert(t).values({
|
|
100
|
-
|
|
100
|
+
ownerHandle: req.ownerHandle,
|
|
101
101
|
appSlug: req.appSlug,
|
|
102
102
|
dbName,
|
|
103
103
|
docId,
|
|
@@ -107,24 +107,24 @@ export const putDocEvento = {
|
|
|
107
107
|
deleted: 0,
|
|
108
108
|
created: now,
|
|
109
109
|
});
|
|
110
|
-
if (isDirectChannel(req.
|
|
111
|
-
const participants = directChannelParticipants(req.
|
|
110
|
+
if (isDirectChannel(req.ownerHandle)) {
|
|
111
|
+
const participants = directChannelParticipants(req.ownerHandle);
|
|
112
112
|
if (participants) {
|
|
113
113
|
const t_idx = vctx.sql.tables.directChannelIndex;
|
|
114
114
|
await vctx.sql.db
|
|
115
115
|
.insert(t_idx)
|
|
116
116
|
.values([
|
|
117
|
-
{
|
|
118
|
-
{
|
|
117
|
+
{ handle: participants[0], channelHandle: req.ownerHandle },
|
|
118
|
+
{ handle: participants[1], channelHandle: req.ownerHandle },
|
|
119
119
|
])
|
|
120
120
|
.onConflictDoNothing();
|
|
121
|
-
const t_usb = vctx.sql.tables.
|
|
121
|
+
const t_usb = vctx.sql.tables.handleBinding;
|
|
122
122
|
const senderRow = await vctx.sql.db
|
|
123
|
-
.select({
|
|
123
|
+
.select({ handle: t_usb.handle })
|
|
124
124
|
.from(t_usb)
|
|
125
|
-
.where(and(eq(t_usb.userId, userId), inArray(t_usb.
|
|
125
|
+
.where(and(eq(t_usb.userId, userId), inArray(t_usb.handle, participants)))
|
|
126
126
|
.then((r) => r[0]);
|
|
127
|
-
const senderUserSlug = senderRow?.
|
|
127
|
+
const senderUserSlug = senderRow?.handle ?? "";
|
|
128
128
|
const recipientUserSlug = participants.find((h) => h !== senderUserSlug) ?? participants[1];
|
|
129
129
|
await vctx.postQueue({
|
|
130
130
|
payload: {
|
|
@@ -132,7 +132,7 @@ export const putDocEvento = {
|
|
|
132
132
|
senderUserId: userId,
|
|
133
133
|
senderUserSlug,
|
|
134
134
|
recipientUserSlug,
|
|
135
|
-
channelUserSlug: req.
|
|
135
|
+
channelUserSlug: req.ownerHandle,
|
|
136
136
|
docId,
|
|
137
137
|
created: now,
|
|
138
138
|
bodySnippet: typeof req.doc.body === "string"
|
|
@@ -148,9 +148,9 @@ export const putDocEvento = {
|
|
|
148
148
|
const t_reads = vctx.sql.tables.directChannelReads;
|
|
149
149
|
await vctx.sql.db
|
|
150
150
|
.insert(t_reads)
|
|
151
|
-
.values({
|
|
151
|
+
.values({ channelHandle: req.ownerHandle, handle: senderUserSlug, lastSeenSeq: nextSeq })
|
|
152
152
|
.onConflictDoUpdate({
|
|
153
|
-
target: [t_reads.
|
|
153
|
+
target: [t_reads.channelHandle, t_reads.handle],
|
|
154
154
|
set: { lastSeenSeq: sql `MAX(${t_reads.lastSeenSeq}, ${nextSeq})` },
|
|
155
155
|
});
|
|
156
156
|
}
|
|
@@ -161,7 +161,7 @@ export const putDocEvento = {
|
|
|
161
161
|
payload: {
|
|
162
162
|
type: "vibes.diy.evt-comment-posted",
|
|
163
163
|
userId,
|
|
164
|
-
|
|
164
|
+
ownerHandle: req.ownerHandle,
|
|
165
165
|
appSlug: req.appSlug,
|
|
166
166
|
docId,
|
|
167
167
|
created: now,
|
|
@@ -175,7 +175,7 @@ export const putDocEvento = {
|
|
|
175
175
|
}
|
|
176
176
|
if (vctx.notifyDocChanged) {
|
|
177
177
|
vctx
|
|
178
|
-
.notifyDocChanged({
|
|
178
|
+
.notifyDocChanged({ ownerHandle: req.ownerHandle, appSlug: req.appSlug, dbName, docId }, clientWsSend(ctx).connId)
|
|
179
179
|
.catch((e) => console.error("DocNotify error:", e));
|
|
180
180
|
}
|
|
181
181
|
await ctx.send.send(ctx, {
|
|
@@ -199,10 +199,10 @@ export const getDocEvento = {
|
|
|
199
199
|
const req = ctx.validated.payload;
|
|
200
200
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
201
201
|
const access = req._auth
|
|
202
|
-
? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.
|
|
202
|
+
? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.ownerHandle)
|
|
203
203
|
: "none";
|
|
204
|
-
const rAcl = await resolveDbAcl(vctx, req.
|
|
205
|
-
if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.
|
|
204
|
+
const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
|
|
205
|
+
if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.ownerHandle))) {
|
|
206
206
|
await ctx.send.send(ctx, {
|
|
207
207
|
type: "vibes.diy.res-error",
|
|
208
208
|
error: { message: "Access denied" },
|
|
@@ -213,7 +213,7 @@ export const getDocEvento = {
|
|
|
213
213
|
const row = await vctx.sql.db
|
|
214
214
|
.select()
|
|
215
215
|
.from(t)
|
|
216
|
-
.where(and(eq(t.
|
|
216
|
+
.where(and(eq(t.ownerHandle, req.ownerHandle), eq(t.appSlug, req.appSlug), eq(t.dbName, req.dbName), eq(t.docId, req.docId)))
|
|
217
217
|
.orderBy(sql `${t.seq} desc`)
|
|
218
218
|
.limit(1)
|
|
219
219
|
.then((r) => r[0]);
|
|
@@ -226,7 +226,7 @@ export const getDocEvento = {
|
|
|
226
226
|
return Result.Ok(EventoResult.Continue);
|
|
227
227
|
}
|
|
228
228
|
const doc = mintFilesUrls(row.data, {
|
|
229
|
-
|
|
229
|
+
ownerHandle: req.ownerHandle,
|
|
230
230
|
appSlug: req.appSlug,
|
|
231
231
|
dbName: req.dbName,
|
|
232
232
|
docId: row.docId,
|
|
@@ -285,9 +285,9 @@ export const queryDocsEvento = {
|
|
|
285
285
|
handle: optAuth(async (ctx) => {
|
|
286
286
|
const req = ctx.validated.payload;
|
|
287
287
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
288
|
-
if (isDirectChannel(req.
|
|
288
|
+
if (isDirectChannel(req.ownerHandle)) {
|
|
289
289
|
const userId = req._auth?.verifiedAuth.claims.userId;
|
|
290
|
-
const rAccess = userId ? await checkDirectChannelAccess(vctx, req.
|
|
290
|
+
const rAccess = userId ? await checkDirectChannelAccess(vctx, req.ownerHandle, userId) : Result.Ok(false);
|
|
291
291
|
if (rAccess.isErr() || !rAccess.Ok()) {
|
|
292
292
|
await ctx.send.send(ctx, {
|
|
293
293
|
type: "vibes.diy.res-error",
|
|
@@ -298,10 +298,10 @@ export const queryDocsEvento = {
|
|
|
298
298
|
}
|
|
299
299
|
else {
|
|
300
300
|
const access = req._auth
|
|
301
|
-
? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.
|
|
301
|
+
? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.ownerHandle)
|
|
302
302
|
: "none";
|
|
303
|
-
const rAcl = await resolveDbAcl(vctx, req.
|
|
304
|
-
if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.
|
|
303
|
+
const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
|
|
304
|
+
if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.ownerHandle))) {
|
|
305
305
|
await ctx.send.send(ctx, {
|
|
306
306
|
type: "vibes.diy.res-error",
|
|
307
307
|
error: { message: "Access denied" },
|
|
@@ -313,7 +313,7 @@ export const queryDocsEvento = {
|
|
|
313
313
|
const rows = await vctx.sql.db
|
|
314
314
|
.select()
|
|
315
315
|
.from(t)
|
|
316
|
-
.where(and(eq(t.
|
|
316
|
+
.where(and(eq(t.ownerHandle, req.ownerHandle), eq(t.appSlug, req.appSlug), eq(t.dbName, req.dbName)))
|
|
317
317
|
.orderBy(sql `${t.docId}, ${t.seq}`);
|
|
318
318
|
const latest = new Map();
|
|
319
319
|
for (const row of rows) {
|
|
@@ -324,7 +324,7 @@ export const queryDocsEvento = {
|
|
|
324
324
|
if (row.deleted === 1)
|
|
325
325
|
continue;
|
|
326
326
|
const doc = mintFilesUrls(row.data, {
|
|
327
|
-
|
|
327
|
+
ownerHandle: req.ownerHandle,
|
|
328
328
|
appSlug: req.appSlug,
|
|
329
329
|
dbName: req.dbName,
|
|
330
330
|
docId: row.docId,
|
|
@@ -357,16 +357,16 @@ export const deleteDocEvento = {
|
|
|
357
357
|
const req = ctx.validated.payload;
|
|
358
358
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
359
359
|
const userId = req._auth.verifiedAuth.claims.userId;
|
|
360
|
-
if (isDirectChannel(req.
|
|
361
|
-
const rAccess = await checkDirectChannelAccess(vctx, req.
|
|
360
|
+
if (isDirectChannel(req.ownerHandle)) {
|
|
361
|
+
const rAccess = await checkDirectChannelAccess(vctx, req.ownerHandle, userId);
|
|
362
362
|
if (rAccess.isErr() || !rAccess.Ok()) {
|
|
363
363
|
await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
|
|
364
364
|
return Result.Ok(EventoResult.Continue);
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
367
|
else {
|
|
368
|
-
const access = await checkDocAccess(vctx, userId, req.appSlug, req.
|
|
369
|
-
const rAcl = await resolveDbAcl(vctx, req.
|
|
368
|
+
const access = await checkDocAccess(vctx, userId, req.appSlug, req.ownerHandle);
|
|
369
|
+
const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
|
|
370
370
|
if (rAcl.isErr() || !aclAllows(rAcl.Ok(), "delete", access)) {
|
|
371
371
|
await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
|
|
372
372
|
return Result.Ok(EventoResult.Continue);
|
|
@@ -378,11 +378,11 @@ export const deleteDocEvento = {
|
|
|
378
378
|
const maxSeqResult = await vctx.sql.db
|
|
379
379
|
.select({ maxSeq: max(t.seq) })
|
|
380
380
|
.from(t)
|
|
381
|
-
.where(and(eq(t.
|
|
381
|
+
.where(and(eq(t.ownerHandle, req.ownerHandle), eq(t.appSlug, req.appSlug), eq(t.dbName, dbName), eq(t.docId, req.docId)))
|
|
382
382
|
.then((r) => r[0]);
|
|
383
383
|
const nextSeq = (maxSeqResult?.maxSeq ?? 0) + 1;
|
|
384
384
|
await vctx.sql.db.insert(t).values({
|
|
385
|
-
|
|
385
|
+
ownerHandle: req.ownerHandle,
|
|
386
386
|
appSlug: req.appSlug,
|
|
387
387
|
dbName,
|
|
388
388
|
docId: req.docId,
|
|
@@ -394,7 +394,7 @@ export const deleteDocEvento = {
|
|
|
394
394
|
});
|
|
395
395
|
if (vctx.notifyDocChanged) {
|
|
396
396
|
vctx
|
|
397
|
-
.notifyDocChanged({
|
|
397
|
+
.notifyDocChanged({ ownerHandle: req.ownerHandle, appSlug: req.appSlug, dbName, docId: req.docId }, clientWsSend(ctx).connId)
|
|
398
398
|
.catch((e) => console.error("DocNotify error:", e));
|
|
399
399
|
}
|
|
400
400
|
await ctx.send.send(ctx, {
|
|
@@ -417,9 +417,9 @@ export const subscribeDocsEvento = {
|
|
|
417
417
|
handle: optAuth(async (ctx) => {
|
|
418
418
|
const req = ctx.validated.payload;
|
|
419
419
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
420
|
-
if (isDirectChannel(req.
|
|
420
|
+
if (isDirectChannel(req.ownerHandle)) {
|
|
421
421
|
const userId = req._auth?.verifiedAuth.claims.userId;
|
|
422
|
-
const rAccess = userId ? await checkDirectChannelAccess(vctx, req.
|
|
422
|
+
const rAccess = userId ? await checkDirectChannelAccess(vctx, req.ownerHandle, userId) : Result.Ok(false);
|
|
423
423
|
if (rAccess.isErr() || !rAccess.Ok()) {
|
|
424
424
|
await ctx.send.send(ctx, {
|
|
425
425
|
type: "vibes.diy.res-error",
|
|
@@ -430,10 +430,10 @@ export const subscribeDocsEvento = {
|
|
|
430
430
|
}
|
|
431
431
|
else {
|
|
432
432
|
const access = req._auth
|
|
433
|
-
? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.
|
|
433
|
+
? await checkDocAccess(vctx, req._auth.verifiedAuth.claims.userId, req.appSlug, req.ownerHandle)
|
|
434
434
|
: "none";
|
|
435
|
-
const rAcl = await resolveDbAcl(vctx, req.
|
|
436
|
-
if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.
|
|
435
|
+
const rAcl = await resolveDbAcl(vctx, req.ownerHandle, req.appSlug, req.dbName);
|
|
436
|
+
if (rAcl.isErr() || !(await readAllowed(vctx, rAcl.Ok(), access, req.appSlug, req.ownerHandle))) {
|
|
437
437
|
await ctx.send.send(ctx, {
|
|
438
438
|
type: "vibes.diy.res-error",
|
|
439
439
|
error: { message: "Access denied" },
|
|
@@ -442,7 +442,7 @@ export const subscribeDocsEvento = {
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
const wsSend = clientWsSend(ctx);
|
|
445
|
-
const subscriptionKey = `${req.
|
|
445
|
+
const subscriptionKey = `${req.ownerHandle}/${req.appSlug}/${req.dbName}`;
|
|
446
446
|
wsSend.subscribedDocKeys.add(subscriptionKey);
|
|
447
447
|
if (vctx.registerDocSubscription) {
|
|
448
448
|
vctx.registerDocSubscription(subscriptionKey).catch((e) => console.error("DocNotify error:", e));
|
|
@@ -467,7 +467,7 @@ export const listDbNamesEvento = {
|
|
|
467
467
|
const req = ctx.validated.payload;
|
|
468
468
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
469
469
|
const userId = req._auth.verifiedAuth.claims.userId;
|
|
470
|
-
const access = await checkDocAccess(vctx, userId, req.appSlug, req.
|
|
470
|
+
const access = await checkDocAccess(vctx, userId, req.appSlug, req.ownerHandle);
|
|
471
471
|
if (access !== "owner") {
|
|
472
472
|
await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
|
|
473
473
|
return Result.Ok(EventoResult.Continue);
|
|
@@ -476,7 +476,7 @@ export const listDbNamesEvento = {
|
|
|
476
476
|
const rows = await vctx.sql.db
|
|
477
477
|
.selectDistinct({ dbName: t.dbName })
|
|
478
478
|
.from(t)
|
|
479
|
-
.where(and(eq(t.
|
|
479
|
+
.where(and(eq(t.ownerHandle, req.ownerHandle), eq(t.appSlug, req.appSlug)));
|
|
480
480
|
await ctx.send.send(ctx, {
|
|
481
481
|
type: "vibes.diy.res-list-db-names",
|
|
482
482
|
status: "ok",
|
|
@@ -497,39 +497,39 @@ export const listDmThreadsEvento = {
|
|
|
497
497
|
const req = ctx.validated.payload;
|
|
498
498
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
499
499
|
const userId = req._auth.verifiedAuth.claims.userId;
|
|
500
|
-
const t_usb = vctx.sql.tables.
|
|
501
|
-
const mySlugRows = await vctx.sql.db.select({
|
|
502
|
-
const myUserSlugs = mySlugRows.map((r) => r.
|
|
500
|
+
const t_usb = vctx.sql.tables.handleBinding;
|
|
501
|
+
const mySlugRows = await vctx.sql.db.select({ handle: t_usb.handle }).from(t_usb).where(eq(t_usb.userId, userId));
|
|
502
|
+
const myUserSlugs = mySlugRows.map((r) => r.handle);
|
|
503
503
|
if (myUserSlugs.length === 0) {
|
|
504
504
|
await ctx.send.send(ctx, { type: "vibes.diy.res-list-dm-threads", status: "ok", items: [] });
|
|
505
505
|
return Result.Ok(EventoResult.Continue);
|
|
506
506
|
}
|
|
507
507
|
const t_idx = vctx.sql.tables.directChannelIndex;
|
|
508
508
|
const channelRows = await vctx.sql.db
|
|
509
|
-
.select({ channelUserSlug: t_idx.
|
|
509
|
+
.select({ channelUserSlug: t_idx.channelHandle, ownerHandle: t_idx.handle })
|
|
510
510
|
.from(t_idx)
|
|
511
|
-
.where(inArray(t_idx.
|
|
511
|
+
.where(inArray(t_idx.handle, myUserSlugs));
|
|
512
512
|
const t_docs = vctx.sql.tables.appDocuments;
|
|
513
513
|
const t_reads = vctx.sql.tables.directChannelReads;
|
|
514
514
|
const limit = req.pager?.limit ?? 50;
|
|
515
515
|
const channelSlugs = channelRows.map((r) => r.channelUserSlug);
|
|
516
516
|
const subq = vctx.sql.db
|
|
517
|
-
.select({
|
|
517
|
+
.select({ ownerHandle: t_docs.ownerHandle, maxSeq: max(t_docs.seq).as("maxSeq") })
|
|
518
518
|
.from(t_docs)
|
|
519
|
-
.where(and(inArray(t_docs.
|
|
520
|
-
.groupBy(t_docs.
|
|
519
|
+
.where(and(inArray(t_docs.ownerHandle, channelSlugs), eq(t_docs.appSlug, "dm"), eq(t_docs.dbName, "messages"), eq(t_docs.deleted, 0)))
|
|
520
|
+
.groupBy(t_docs.ownerHandle)
|
|
521
521
|
.as("latest");
|
|
522
522
|
const latestDocs = await vctx.sql.db
|
|
523
523
|
.select()
|
|
524
524
|
.from(t_docs)
|
|
525
|
-
.innerJoin(subq, and(eq(t_docs.
|
|
526
|
-
const latestDocByChannel = new Map(latestDocs.map((row) => [row.AppDocuments.
|
|
525
|
+
.innerJoin(subq, and(eq(t_docs.ownerHandle, subq.ownerHandle), eq(t_docs.seq, subq.maxSeq)));
|
|
526
|
+
const latestDocByChannel = new Map(latestDocs.map((row) => [row.AppDocuments.ownerHandle, row.AppDocuments]));
|
|
527
527
|
const readRows = await vctx.sql.db
|
|
528
|
-
.select({ channelUserSlug: t_reads.
|
|
528
|
+
.select({ channelUserSlug: t_reads.channelHandle, lastSeenSeq: t_reads.lastSeenSeq })
|
|
529
529
|
.from(t_reads)
|
|
530
|
-
.where(and(inArray(t_reads.
|
|
530
|
+
.where(and(inArray(t_reads.channelHandle, channelSlugs), inArray(t_reads.handle, myUserSlugs)));
|
|
531
531
|
const lastSeenByChannel = new Map(readRows.map((r) => [r.channelUserSlug, r.lastSeenSeq]));
|
|
532
|
-
const items = channelRows.map(({ channelUserSlug,
|
|
532
|
+
const items = channelRows.map(({ channelUserSlug, ownerHandle: mySlug }) => {
|
|
533
533
|
const otherUserSlug = (directChannelParticipants(channelUserSlug) ?? []).find((h) => h !== mySlug) ?? "";
|
|
534
534
|
const latestDoc = latestDocByChannel.get(channelUserSlug);
|
|
535
535
|
const latestSeq = latestDoc?.seq ?? 0;
|
|
@@ -574,23 +574,23 @@ export const markDmReadEvento = {
|
|
|
574
574
|
return Result.Ok(EventoResult.Continue);
|
|
575
575
|
}
|
|
576
576
|
const participants = directChannelParticipants(req.channelUserSlug) ?? ["", ""];
|
|
577
|
-
const t_usb = vctx.sql.tables.
|
|
577
|
+
const t_usb = vctx.sql.tables.handleBinding;
|
|
578
578
|
const slugRow = await vctx.sql.db
|
|
579
|
-
.select({
|
|
579
|
+
.select({ handle: t_usb.handle })
|
|
580
580
|
.from(t_usb)
|
|
581
|
-
.where(and(eq(t_usb.userId, userId), inArray(t_usb.
|
|
581
|
+
.where(and(eq(t_usb.userId, userId), inArray(t_usb.handle, participants)))
|
|
582
582
|
.then((r) => r[0]);
|
|
583
583
|
if (!slugRow) {
|
|
584
584
|
await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
|
|
585
585
|
return Result.Ok(EventoResult.Continue);
|
|
586
586
|
}
|
|
587
|
-
const myUserSlug = slugRow.
|
|
587
|
+
const myUserSlug = slugRow.handle;
|
|
588
588
|
const t_reads = vctx.sql.tables.directChannelReads;
|
|
589
589
|
await vctx.sql.db
|
|
590
590
|
.insert(t_reads)
|
|
591
|
-
.values({
|
|
591
|
+
.values({ channelHandle: req.channelUserSlug, handle: myUserSlug, lastSeenSeq: req.lastSeenSeq })
|
|
592
592
|
.onConflictDoUpdate({
|
|
593
|
-
target: [t_reads.
|
|
593
|
+
target: [t_reads.channelHandle, t_reads.handle],
|
|
594
594
|
set: { lastSeenSeq: sql `MAX(${t_reads.lastSeenSeq}, ${req.lastSeenSeq})` },
|
|
595
595
|
});
|
|
596
596
|
await ctx.send.send(ctx, { type: "vibes.diy.res-mark-dm-read", status: "ok" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-documents.js","sourceRoot":"","sources":["../../jsr/public/app-documents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-documents.js","sourceRoot":"","sources":["../../jsr/public/app-documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ export const assetUploadGrantEvento = {
|
|
|
22
22
|
const req = ctx.validated.payload;
|
|
23
23
|
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
24
24
|
const userId = req._auth.verifiedAuth.claims.userId;
|
|
25
|
-
const access = await checkDocAccess(vctx, userId, req.appSlug, req.
|
|
25
|
+
const access = await checkDocAccess(vctx, userId, req.appSlug, req.ownerHandle);
|
|
26
26
|
if (!canWrite(access)) {
|
|
27
27
|
await ctx.send.send(ctx, {
|
|
28
28
|
type: "vibes.diy.res-error",
|
|
@@ -34,7 +34,7 @@ export const assetUploadGrantEvento = {
|
|
|
34
34
|
const rSigned = await vctx.assetGrantSigner.sign({
|
|
35
35
|
jti,
|
|
36
36
|
userId,
|
|
37
|
-
|
|
37
|
+
ownerHandle: req.ownerHandle,
|
|
38
38
|
appSlug: req.appSlug,
|
|
39
39
|
...(req.mimeType !== undefined ? { mimeType: req.mimeType } : {}),
|
|
40
40
|
}, GRANT_TTL_SEC);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-upload-grant.js","sourceRoot":"","sources":["../../jsr/public/asset-upload-grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAsC,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAOL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,aAAa,GAAG,EAAE,CAAC;AAQzB,SAAS,cAAc,CAAC,IAAoB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAC7D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAI/B;IACF,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,GAAY,EAAE,EAAE;QAC7C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC,CAAC;IACF,MAAM,EAAE,SAAS,CACf,KAAK,EACH,GAIC,EACkC,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAiB,aAAa,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAIpD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"asset-upload-grant.js","sourceRoot":"","sources":["../../jsr/public/asset-upload-grant.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { VibesApiSQLCtx } from "../types.js";
|
|
|
4
4
|
export interface ConvertImageEvtParams {
|
|
5
5
|
readonly evt: BlockImageMsg;
|
|
6
6
|
readonly userId: string;
|
|
7
|
-
readonly
|
|
7
|
+
readonly ownerHandle: string;
|
|
8
8
|
readonly appSlug: string;
|
|
9
9
|
readonly fetchFn?: typeof fetch;
|
|
10
10
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Result, exception2Result } from "@adviser/cement";
|
|
2
2
|
import { storeAndAuditAsset } from "./store-and-audit-asset.js";
|
|
3
3
|
export async function convertImageEvtToFileRef(vctx, params) {
|
|
4
|
-
const { evt, userId,
|
|
4
|
+
const { evt, userId, ownerHandle, appSlug } = params;
|
|
5
5
|
const url = evt.url;
|
|
6
6
|
if (url === undefined) {
|
|
7
7
|
return Result.Ok(evt);
|
|
@@ -21,7 +21,7 @@ export async function convertImageEvtToFileRef(vctx, params) {
|
|
|
21
21
|
const rStored = await storeAndAuditAsset(vctx, {
|
|
22
22
|
bytes: rDecoded.Ok(),
|
|
23
23
|
userId,
|
|
24
|
-
|
|
24
|
+
ownerHandle,
|
|
25
25
|
appSlug,
|
|
26
26
|
mimeType: mime,
|
|
27
27
|
});
|
|
@@ -55,7 +55,7 @@ export async function convertImageEvtToFileRef(vctx, params) {
|
|
|
55
55
|
const rStored = await storeAndAuditAsset(vctx, {
|
|
56
56
|
bytes,
|
|
57
57
|
userId,
|
|
58
|
-
|
|
58
|
+
ownerHandle,
|
|
59
59
|
appSlug,
|
|
60
60
|
mimeType,
|
|
61
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-image-evt.js","sourceRoot":"","sources":["../../jsr/public/convert-image-evt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAoBhE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAoB,EACpB,MAA6B;IAE7B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"convert-image-evt.js","sourceRoot":"","sources":["../../jsr/public/convert-image-evt.ts"],"names":[],"mappings":"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"}
|