@vibes.diy/api-svc 2.4.11 → 2.4.13

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 (70) hide show
  1. package/README.md +12 -12
  2. package/cf-serve.js +1 -0
  3. package/cf-serve.js.map +1 -1
  4. package/create-handler.d.ts +1 -0
  5. package/create-handler.js +0 -10
  6. package/create-handler.js.map +1 -1
  7. package/intern/process-access-bindings.d.ts +12 -0
  8. package/intern/process-access-bindings.js +225 -0
  9. package/intern/process-access-bindings.js.map +1 -0
  10. package/intern/prompt-streaming.js +5 -4
  11. package/intern/prompt-streaming.js.map +1 -1
  12. package/intern/render-vibe.js +2 -2
  13. package/intern/render-vibe.js.map +1 -1
  14. package/intern/write-apps.js +11 -2
  15. package/intern/write-apps.js.map +1 -1
  16. package/models.json +1 -0
  17. package/package.json +11 -11
  18. package/public/access-function.d.ts +6 -1
  19. package/public/access-function.js +44 -9
  20. package/public/access-function.js.map +1 -1
  21. package/public/access-helpers.d.ts +7 -4
  22. package/public/access-helpers.js +7 -7
  23. package/public/access-helpers.js.map +1 -1
  24. package/public/app-documents-dm-eventos.d.ts +4 -0
  25. package/public/app-documents-dm-eventos.js +121 -0
  26. package/public/app-documents-dm-eventos.js.map +1 -0
  27. package/public/app-documents-query-filter.d.ts +6 -0
  28. package/public/app-documents-query-filter.js +33 -0
  29. package/public/app-documents-query-filter.js.map +1 -0
  30. package/public/app-documents-read-eventos.d.ts +6 -0
  31. package/public/app-documents-read-eventos.js +359 -0
  32. package/public/app-documents-read-eventos.js.map +1 -0
  33. package/public/app-documents-shared.d.ts +11 -0
  34. package/public/app-documents-shared.js +17 -0
  35. package/public/app-documents-shared.js.map +1 -0
  36. package/public/app-documents-write-eventos.d.ts +4 -0
  37. package/public/app-documents-write-eventos.js +405 -0
  38. package/public/app-documents-write-eventos.js.map +1 -0
  39. package/public/app-documents.d.ts +4 -15
  40. package/public/app-documents.js +4 -898
  41. package/public/app-documents.js.map +1 -1
  42. package/public/asset-upload-grant.js +1 -1
  43. package/public/asset-upload-grant.js.map +1 -1
  44. package/public/db-acl-resolver.js +1 -1
  45. package/public/db-acl-resolver.js.map +1 -1
  46. package/public/ensure-app-slug-item.js +9 -225
  47. package/public/ensure-app-slug-item.js.map +1 -1
  48. package/public/files-asset.js +1 -1
  49. package/public/files-asset.js.map +1 -1
  50. package/public/grant-reduce.d.ts +2 -2
  51. package/public/grant-reduce.js +5 -5
  52. package/public/grant-reduce.js.map +1 -1
  53. package/public/list-members.js +2 -2
  54. package/public/list-members.js.map +1 -1
  55. package/public/list-models.d.ts +1 -0
  56. package/public/prompt-chat-section.js +203 -49
  57. package/public/prompt-chat-section.js.map +1 -1
  58. package/public/who-am-i.d.ts +7 -0
  59. package/public/who-am-i.js +79 -6
  60. package/public/who-am-i.js.map +1 -1
  61. package/svc-ws-send-provider.d.ts +1 -0
  62. package/svc-ws-send-provider.js +1 -0
  63. package/svc-ws-send-provider.js.map +1 -1
  64. package/types.d.ts +1 -8
  65. package/types.js.map +1 -1
  66. package/vibes-msg-evento.js +1 -2
  67. package/vibes-msg-evento.js.map +1 -1
  68. package/public/get-fp-cloud-token.d.ts +0 -3
  69. package/public/get-fp-cloud-token.js +0 -140
  70. package/public/get-fp-cloud-token.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"write-apps.js","sourceRoot":"","sources":["../../jsr/intern/write-apps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-apps.js","sourceRoot":"","sources":["../../jsr/intern/write-apps.ts"],"names":[],"mappings":"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"}
package/models.json CHANGED
@@ -34,6 +34,7 @@
34
34
  "name": "Gemini 3.1 Pro",
35
35
  "description": "Gemini 3.1 Pro is Google's frontier reasoning model for software engineering and agentic tasks",
36
36
  "featured": true,
37
+ "fallbackFor": ["chat", "app"],
37
38
  "supports": ["chat", "app"]
38
39
  },
39
40
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-svc",
3
- "version": "2.4.11",
3
+ "version": "2.4.13",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "scripts": {
@@ -25,18 +25,18 @@
25
25
  "@libsql/client": "~0.17.3",
26
26
  "@neondatabase/serverless": "~1.1.0",
27
27
  "@noble/hashes": "~2.2.0",
28
- "@vibes.diy/api-impl": "2.4.11",
29
- "@vibes.diy/api-pkg": "2.4.11",
30
- "@vibes.diy/api-sql": "2.4.11",
31
- "@vibes.diy/api-types": "2.4.11",
32
- "@vibes.diy/call-ai-v2": "2.4.11",
33
- "@vibes.diy/prompts": "2.4.11",
34
- "@vibes.diy/use-vibes-base": "2.4.11",
35
- "@vibes.diy/vibe-db-explorer": "2.4.11",
36
- "@vibes.diy/vibe-types": "2.4.11",
28
+ "@vibes.diy/api-impl": "2.4.13",
29
+ "@vibes.diy/api-pkg": "2.4.13",
30
+ "@vibes.diy/api-sql": "2.4.13",
31
+ "@vibes.diy/api-types": "2.4.13",
32
+ "@vibes.diy/call-ai-v2": "2.4.13",
33
+ "@vibes.diy/prompts": "2.4.13",
34
+ "@vibes.diy/use-vibes-base": "2.4.13",
35
+ "@vibes.diy/vibe-db-explorer": "2.4.13",
36
+ "@vibes.diy/vibe-types": "2.4.13",
37
37
  "acorn": "~8.16.0",
38
38
  "arktype": "~2.2.0",
39
- "call-ai": "2.4.11",
39
+ "call-ai": "2.4.13",
40
40
  "cookie": "~1.1.1",
41
41
  "drizzle-orm": "~0.45.2",
42
42
  "jose": "~6.2.2",
@@ -1,7 +1,12 @@
1
1
  import type { AccessDescriptor, AccessFunction, Helpers, UserContext } from "@vibes.diy/api-types";
2
2
  export type { AccessDescriptor, AccessFunction, Helpers, UserContext };
3
3
  export declare function enforceAllowAnonymous(result: AccessDescriptor, user: UserContext | null): void;
4
- export declare function makeHelpers(user: UserContext | null): Helpers;
4
+ interface GrantState {
5
+ members: Record<string, string[]>;
6
+ roleGrants: Record<string, string[]>;
7
+ userGrants: Record<string, string[]>;
8
+ }
9
+ export declare function makeHelpers(user: UserContext | null, grantState?: GrantState): Helpers;
5
10
  export declare function extractExportSource(fullSource: string, bindingDbName: string): string | undefined;
6
11
  export declare class ForbiddenError extends Error {
7
12
  readonly forbidden: string;
@@ -3,34 +3,69 @@ export function enforceAllowAnonymous(result, user) {
3
3
  throw new ForbiddenError("authentication required");
4
4
  }
5
5
  }
6
- export function makeHelpers(user) {
6
+ export function makeHelpers(user, grantState) {
7
+ const gs = grantState ?? { members: {}, roleGrants: {}, userGrants: {} };
8
+ function resolveChannels(userHandle) {
9
+ const channels = new Set();
10
+ const direct = gs.userGrants[userHandle];
11
+ if (direct)
12
+ for (const ch of direct)
13
+ channels.add(ch);
14
+ for (const [role, members] of Object.entries(gs.members)) {
15
+ if (members.includes(userHandle)) {
16
+ const roleChannels = gs.roleGrants[role];
17
+ if (roleChannels)
18
+ for (const ch of roleChannels)
19
+ channels.add(ch);
20
+ }
21
+ }
22
+ return channels;
23
+ }
7
24
  return {
8
25
  requireAccess(channelId) {
9
26
  if (user === null) {
10
27
  throw new ForbiddenError(`not in channel: ${channelId}`);
11
28
  }
29
+ const channels = resolveChannels(user.userHandle);
30
+ if (!channels.has(channelId)) {
31
+ throw new ForbiddenError(`not in channel: ${channelId}`);
32
+ }
12
33
  },
13
34
  requireRole(roleName) {
14
35
  if (user === null) {
15
36
  throw new ForbiddenError(`not in role: ${roleName}`);
16
37
  }
38
+ const roleMembers = gs.members[roleName];
39
+ if (!roleMembers?.includes(user.userHandle)) {
40
+ throw new ForbiddenError(`not in role: ${roleName}`);
41
+ }
17
42
  },
18
43
  };
19
44
  }
20
45
  export function extractExportSource(fullSource, bindingDbName) {
21
- let pattern;
22
46
  if (bindingDbName === "*") {
23
- pattern = /export\s+default\s+(?:function\s*(?:\w+\s*)?\([^)]*\)\s*\{|\([^)]*\)\s*=>\s*\{|\w+\s*=>\s*\{)/;
47
+ return extractByPattern(fullSource, /export\s+default\s+(?:function\s*(?:\w+\s*)?\([^)]*\)\s*\{|\([^)]*\)\s*=>\s*\{|\w+\s*=>\s*\{)/, true);
24
48
  }
25
- else {
26
- pattern = new RegExp(`export\\s+function\\s+${bindingDbName}\\s*\\([^)]*\\)\\s*\\{`);
49
+ const directPattern = new RegExp(`export\\s+function\\s+${escapeRegExp(bindingDbName)}\\s*\\([^)]*\\)\\s*\\{`);
50
+ const direct = extractByPattern(fullSource, directPattern, false);
51
+ if (direct)
52
+ return direct;
53
+ const asMatch = fullSource.match(new RegExp(`export\\s*\\{\\s*(\\w+)\\s+as\\s+["']${escapeRegExp(bindingDbName)}["']\\s*\\}`));
54
+ if (asMatch) {
55
+ const localName = asMatch[1];
56
+ const fnPattern = new RegExp(`function\\s+${localName}\\s*\\([^)]*\\)\\s*\\{`);
57
+ return extractByPattern(fullSource, fnPattern, false);
27
58
  }
59
+ return undefined;
60
+ }
61
+ function escapeRegExp(s) {
62
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
63
+ }
64
+ function extractByPattern(fullSource, pattern, isDefault) {
28
65
  const match = fullSource.match(pattern);
29
- if (!match)
66
+ if (!match || match.index === undefined)
30
67
  return undefined;
31
68
  const start = match.index;
32
- if (start === undefined)
33
- return undefined;
34
69
  let depth = 0;
35
70
  let end = start;
36
71
  for (let i = start; i < fullSource.length; i++) {
@@ -45,7 +80,7 @@ export function extractExportSource(fullSource, bindingDbName) {
45
80
  }
46
81
  }
47
82
  let extracted = fullSource.slice(start, end).replace(/^export\s+/, "");
48
- if (bindingDbName === "*")
83
+ if (isDefault)
49
84
  extracted = extracted.replace(/^default\s+/, "");
50
85
  return extracted;
51
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"access-function.js","sourceRoot":"","sources":["../../jsr/public/access-function.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,qBAAqB,CAAC,MAAwB,EAAE,IAAwB;IACtF,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,IAAI,cAAc,CAAC,yBAAyB,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,WAAW,CAAC,IAAwB;IAClD,OAAO;QACL,aAAa,CAAC,SAAiB;YAC7B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,cAAc,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;YAC3D,CAAC;QAGH,CAAC;QACD,WAAW,CAAC,QAAgB;YAC1B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,cAAc,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;YACvD,CAAC;QAGH,CAAC;KACF,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,aAAqB;IAC3E,IAAI,OAAe,CAAC;IACpB,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,GAAG,+FAA+F,CAAC;IAC5G,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,MAAM,CAAC,yBAAyB,aAAa,wBAAwB,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1B,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,aAAa,KAAK,GAAG;QAAE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,SAAS,CAAS;IAE3B,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"access-function.js","sourceRoot":"","sources":["../../jsr/public/access-function.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { Role } from "@vibes.diy/api-types";
2
2
  import { VibesApiSQLCtx } from "../types.js";
3
- export type DocAccessLevel = Role | "owner" | "none";
4
- export declare const canRead: (level: DocAccessLevel) => level is "editor" | "owner" | "viewer";
5
- export declare const canWrite: (level: DocAccessLevel) => level is "editor" | "owner" | "submitter";
6
- export declare function checkDocAccess(vctx: VibesApiSQLCtx, userId: string, appSlug: string, ownerHandle: string): Promise<DocAccessLevel>;
3
+ export type DocAccessLevel = Role | "override" | "none";
4
+ export declare const canRead: (level: DocAccessLevel) => level is "editor" | "override" | "viewer";
5
+ export declare const canWrite: (level: DocAccessLevel) => level is "editor" | "override" | "submitter";
6
+ export declare function checkDocAccess(vctx: VibesApiSQLCtx, userId: string, appSlug: string, ownerHandle: string, adminMode?: boolean): Promise<{
7
+ access: DocAccessLevel;
8
+ isOwner: boolean;
9
+ }>;
7
10
  export declare function isPublicReadable(vctx: VibesApiSQLCtx, appSlug: string, ownerHandle: string): Promise<boolean>;
@@ -3,9 +3,9 @@ import { isResHasAccessInviteAccepted, isResHasAccessRequestApproved } from "@vi
3
3
  import { hasAccessInvite } from "./invite-flow.js";
4
4
  import { hasAccessRequest } from "./request-flow.js";
5
5
  import { ensureAppSettings } from "./ensure-app-settings.js";
6
- export const canRead = (level) => level === "owner" || level === "editor" || level === "viewer";
7
- export const canWrite = (level) => level === "owner" || level === "editor" || level === "submitter";
8
- export async function checkDocAccess(vctx, userId, appSlug, ownerHandle) {
6
+ export const canRead = (level) => level === "override" || level === "editor" || level === "viewer";
7
+ export const canWrite = (level) => level === "override" || level === "editor" || level === "submitter";
8
+ export async function checkDocAccess(vctx, userId, appSlug, ownerHandle, adminMode) {
9
9
  const binding = await vctx.sql.db
10
10
  .select({ userId: vctx.sql.tables.handleBinding.userId })
11
11
  .from(vctx.sql.tables.handleBinding)
@@ -13,22 +13,22 @@ export async function checkDocAccess(vctx, userId, appSlug, ownerHandle) {
13
13
  .limit(1)
14
14
  .then((r) => r[0]);
15
15
  if (binding?.userId === userId)
16
- return "owner";
16
+ return { access: adminMode ? "override" : "editor", isOwner: true };
17
17
  const rInvite = await hasAccessInvite(vctx, { grantUserId: userId, appSlug, ownerHandle });
18
18
  if (rInvite.isOk()) {
19
19
  const invite = rInvite.Ok();
20
20
  if (isResHasAccessInviteAccepted(invite)) {
21
- return invite.role;
21
+ return { access: invite.role, isOwner: false };
22
22
  }
23
23
  }
24
24
  const rReq = await hasAccessRequest(vctx, { foreignUserId: userId, appSlug, ownerHandle });
25
25
  if (rReq.isOk()) {
26
26
  const req = rReq.Ok();
27
27
  if (isResHasAccessRequestApproved(req)) {
28
- return req.role;
28
+ return { access: req.role, isOwner: false };
29
29
  }
30
30
  }
31
- return "none";
31
+ return { access: "none", isOwner: false };
32
32
  }
33
33
  export async function isPublicReadable(vctx, appSlug, ownerHandle) {
34
34
  const rSettings = await ensureAppSettings(vctx, {
@@ -1 +1 @@
1
- {"version":3,"file":"access-helpers.js","sourceRoot":"","sources":["../../jsr/public/access-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,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;AAI7D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC;AAChH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,CAAC;AAEpH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAoB,EACpB,MAAc,EACd,OAAe,EACf,WAAmB;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,OAAO,CAAC;IAE/C,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,MAAM,CAAC,IAAI,CAAC;QACrB,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,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,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,IAAI,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAE9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;SAC1B,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EACzC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EACjD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5C,CACF;SACA,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,OAAO,OAAO,KAAK,SAAS,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"access-helpers.js","sourceRoot":"","sources":["../../jsr/public/access-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqListDmThreads, ResListDmThreads, ReqMarkDmRead, ResMarkDmRead, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const listDmThreadsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqListDmThreads>, ResListDmThreads | VibesDiyError>;
4
+ export declare const markDmReadEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqMarkDmRead>, ResMarkDmRead | VibesDiyError>;
@@ -0,0 +1,121 @@
1
+ import { Result, Option, EventoResult } from "@adviser/cement";
2
+ import { reqListDmThreads, reqMarkDmRead, directChannelParticipants, } from "@vibes.diy/api-types";
3
+ import { unwrapMsgBase } from "../unwrap-msg-base.js";
4
+ import { checkAuth } from "../check-auth.js";
5
+ import { eq, and, inArray, sql } from "drizzle-orm";
6
+ import { max } from "drizzle-orm/sql";
7
+ import { type } from "arktype";
8
+ import { checkDirectChannelAccess } from "./db-acl-resolver.js";
9
+ export const listDmThreadsEvento = {
10
+ hash: "list-dm-threads",
11
+ validate: unwrapMsgBase(async (msg) => {
12
+ const ret = reqListDmThreads(msg.payload);
13
+ if (ret instanceof type.errors)
14
+ return Result.Ok(Option.None());
15
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
16
+ }),
17
+ handle: checkAuth(async (ctx) => {
18
+ const req = ctx.validated.payload;
19
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
20
+ const userId = req._auth.verifiedAuth.claims.userId;
21
+ const t_usb = vctx.sql.tables.handleBinding;
22
+ const mySlugRows = await vctx.sql.db.select({ handle: t_usb.handle }).from(t_usb).where(eq(t_usb.userId, userId));
23
+ const myUserSlugs = mySlugRows.map((r) => r.handle);
24
+ if (myUserSlugs.length === 0) {
25
+ await ctx.send.send(ctx, { type: "vibes.diy.res-list-dm-threads", status: "ok", items: [] });
26
+ return Result.Ok(EventoResult.Continue);
27
+ }
28
+ const t_idx = vctx.sql.tables.directChannelIndex;
29
+ const channelRows = await vctx.sql.db
30
+ .select({ channelUserSlug: t_idx.channelHandle, ownerHandle: t_idx.handle })
31
+ .from(t_idx)
32
+ .where(inArray(t_idx.handle, myUserSlugs));
33
+ const t_docs = vctx.sql.tables.appDocuments;
34
+ const t_reads = vctx.sql.tables.directChannelReads;
35
+ const limit = req.pager?.limit ?? 50;
36
+ const channelSlugs = channelRows.map((r) => r.channelUserSlug);
37
+ const subq = vctx.sql.db
38
+ .select({ ownerHandle: t_docs.ownerHandle, maxSeq: max(t_docs.seq).as("maxSeq") })
39
+ .from(t_docs)
40
+ .where(and(inArray(t_docs.ownerHandle, channelSlugs), eq(t_docs.appSlug, "dm"), eq(t_docs.dbName, "messages"), eq(t_docs.deleted, 0)))
41
+ .groupBy(t_docs.ownerHandle)
42
+ .as("latest");
43
+ const latestDocs = await vctx.sql.db
44
+ .select()
45
+ .from(t_docs)
46
+ .innerJoin(subq, and(eq(t_docs.ownerHandle, subq.ownerHandle), eq(t_docs.seq, subq.maxSeq)));
47
+ const latestDocByChannel = new Map(latestDocs.map((row) => [row.AppDocuments.ownerHandle, row.AppDocuments]));
48
+ const readRows = await vctx.sql.db
49
+ .select({ channelUserSlug: t_reads.channelHandle, lastSeenSeq: t_reads.lastSeenSeq })
50
+ .from(t_reads)
51
+ .where(and(inArray(t_reads.channelHandle, channelSlugs), inArray(t_reads.handle, myUserSlugs)));
52
+ const lastSeenByChannel = new Map(readRows.map((r) => [r.channelUserSlug, r.lastSeenSeq]));
53
+ const items = channelRows.map(({ channelUserSlug, ownerHandle: mySlug }) => {
54
+ const otherUserSlug = (directChannelParticipants(channelUserSlug) ?? []).find((h) => h !== mySlug) ?? "";
55
+ const latestDoc = latestDocByChannel.get(channelUserSlug);
56
+ const latestSeq = latestDoc?.seq ?? 0;
57
+ const lastSeen = lastSeenByChannel.get(channelUserSlug) ?? 0;
58
+ const unreadCount = Math.max(0, latestSeq - lastSeen);
59
+ return {
60
+ channelUserSlug,
61
+ otherUserSlug,
62
+ latestSeq,
63
+ unreadCount,
64
+ latestMessage: latestDoc
65
+ ? {
66
+ body: String(latestDoc.data.body ?? ""),
67
+ createdAt: latestDoc.created,
68
+ authorHandle: String(latestDoc.data.authorHandle ?? ""),
69
+ }
70
+ : undefined,
71
+ };
72
+ });
73
+ const sorted = items
74
+ .sort((a, b) => ((b.latestMessage?.createdAt ?? "") > (a.latestMessage?.createdAt ?? "") ? 1 : -1))
75
+ .slice(0, limit);
76
+ await ctx.send.send(ctx, { type: "vibes.diy.res-list-dm-threads", status: "ok", items: sorted });
77
+ return Result.Ok(EventoResult.Continue);
78
+ }),
79
+ };
80
+ export const markDmReadEvento = {
81
+ hash: "mark-dm-read",
82
+ validate: unwrapMsgBase(async (msg) => {
83
+ const ret = reqMarkDmRead(msg.payload);
84
+ if (ret instanceof type.errors)
85
+ return Result.Ok(Option.None());
86
+ return Result.Ok(Option.Some({ ...msg, payload: ret }));
87
+ }),
88
+ handle: checkAuth(async (ctx) => {
89
+ const req = ctx.validated.payload;
90
+ const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
91
+ const userId = req._auth.verifiedAuth.claims.userId;
92
+ const rAccess = await checkDirectChannelAccess(vctx, req.channelUserSlug, userId);
93
+ if (rAccess.isErr() || !rAccess.Ok()) {
94
+ await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
95
+ return Result.Ok(EventoResult.Continue);
96
+ }
97
+ const participants = directChannelParticipants(req.channelUserSlug) ?? ["", ""];
98
+ const t_usb = vctx.sql.tables.handleBinding;
99
+ const slugRow = await vctx.sql.db
100
+ .select({ handle: t_usb.handle })
101
+ .from(t_usb)
102
+ .where(and(eq(t_usb.userId, userId), inArray(t_usb.handle, participants)))
103
+ .then((r) => r[0]);
104
+ if (!slugRow) {
105
+ await ctx.send.send(ctx, { type: "vibes.diy.res-error", error: { message: "Access denied" } });
106
+ return Result.Ok(EventoResult.Continue);
107
+ }
108
+ const myUserSlug = slugRow.handle;
109
+ const t_reads = vctx.sql.tables.directChannelReads;
110
+ await vctx.sql.db
111
+ .insert(t_reads)
112
+ .values({ channelHandle: req.channelUserSlug, handle: myUserSlug, lastSeenSeq: req.lastSeenSeq })
113
+ .onConflictDoUpdate({
114
+ target: [t_reads.channelHandle, t_reads.handle],
115
+ set: { lastSeenSeq: sql `MAX(${t_reads.lastSeenSeq}, ${req.lastSeenSeq})` },
116
+ });
117
+ await ctx.send.send(ctx, { type: "vibes.diy.res-mark-dm-read", status: "ok" });
118
+ return Result.Ok(EventoResult.Continue);
119
+ }),
120
+ };
121
+ //# sourceMappingURL=app-documents-dm-eventos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-documents-dm-eventos.js","sourceRoot":"","sources":["../../jsr/public/app-documents-dm-eventos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type QueryFilter } from "@vibes.diy/api-types";
2
+ export declare function applyQueryFilter(docs: ({
3
+ _id: string;
4
+ } & Record<string, unknown>)[], filter: QueryFilter | undefined): ({
5
+ _id: string;
6
+ } & Record<string, unknown>)[];
@@ -0,0 +1,33 @@
1
+ function isInInclusiveRange(value, lo, hi) {
2
+ if (typeof value === "string" && typeof lo === "string" && typeof hi === "string") {
3
+ return value >= lo && value <= hi;
4
+ }
5
+ if (typeof value === "number" && typeof lo === "number" && typeof hi === "number") {
6
+ return value >= lo && value <= hi;
7
+ }
8
+ if (typeof value === "bigint" && typeof lo === "bigint" && typeof hi === "bigint") {
9
+ return value >= lo && value <= hi;
10
+ }
11
+ if (typeof value === "boolean" && typeof lo === "boolean" && typeof hi === "boolean") {
12
+ return Number(value) >= Number(lo) && Number(value) <= Number(hi);
13
+ }
14
+ return false;
15
+ }
16
+ export function applyQueryFilter(docs, filter) {
17
+ if (!filter)
18
+ return docs;
19
+ const { field, key, keys, range } = filter;
20
+ if (key !== undefined) {
21
+ return docs.filter((doc) => doc[field] === key);
22
+ }
23
+ if (keys !== undefined) {
24
+ const keySet = new Set(keys);
25
+ return docs.filter((doc) => keySet.has(doc[field]));
26
+ }
27
+ if (range !== undefined) {
28
+ const [lo, hi] = range;
29
+ return docs.filter((doc) => isInInclusiveRange(doc[field], lo, hi));
30
+ }
31
+ return docs;
32
+ }
33
+ //# sourceMappingURL=app-documents-query-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-documents-query-filter.js","sourceRoot":"","sources":["../../jsr/public/app-documents-query-filter.ts"],"names":[],"mappings":"AAEA,SAAS,kBAAkB,CAAC,KAAc,EAAE,EAAW,EAAE,EAAW;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClF,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;QACrF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAmD,EACnD,MAA+B;IAE/B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC3C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { MsgBase, ReqGetDoc, ResGetDoc, ResGetDocNotFound, ReqQueryDocs, ResQueryDocs, ReqSubscribeDocs, ResSubscribeDocs, ReqListDbNames, ResListDbNames, VibesDiyError, W3CWebSocketEvent } from "@vibes.diy/api-types";
3
+ export declare const getDocEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqGetDoc>, ResGetDoc | ResGetDocNotFound | VibesDiyError>;
4
+ export declare const queryDocsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqQueryDocs>, ResQueryDocs | VibesDiyError>;
5
+ export declare const subscribeDocsEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqSubscribeDocs>, ResSubscribeDocs | VibesDiyError>;
6
+ export declare const listDbNamesEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqListDbNames>, ResListDbNames | VibesDiyError>;