@vibes.diy/api-svc 14.3.59 → 14.3.65
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/cf-serve.js +1 -0
- package/cf-serve.js.map +1 -1
- package/evento-handler-manifest.js +4 -0
- package/evento-handler-manifest.js.map +1 -1
- package/index.d.ts +5 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/intern/agent-belt.d.ts +6 -2
- package/intern/agent-belt.js +30 -9
- package/intern/agent-belt.js.map +1 -1
- package/intern/agent-build-tools.d.ts +1 -0
- package/intern/agent-build-tools.js +5 -2
- package/intern/agent-build-tools.js.map +1 -1
- package/intern/agent-dispatcher.js +26 -3
- package/intern/agent-dispatcher.js.map +1 -1
- package/intern/agent-image-survey-start.js +2 -1
- package/intern/agent-image-survey-start.js.map +1 -1
- package/intern/agent-session.d.ts +24 -24
- package/intern/attach-draft-handle.js +2 -0
- package/intern/attach-draft-handle.js.map +1 -1
- package/intern/backend-db-callback.js +1 -0
- package/intern/backend-db-callback.js.map +1 -1
- package/intern/components/vibe-page.js +1 -0
- package/intern/components/vibe-page.js.map +1 -1
- package/intern/cross-lane-build-guard.d.ts +10 -0
- package/intern/cross-lane-build-guard.js +17 -0
- package/intern/cross-lane-build-guard.js.map +1 -0
- package/intern/delete-access-gate.js +1 -0
- package/intern/delete-access-gate.js.map +1 -1
- package/intern/draft-chat-store.d.ts +7 -0
- package/intern/ensure-chat-id.js +8 -5
- package/intern/ensure-chat-id.js.map +1 -1
- package/intern/ensure-slug-binding.js +2 -0
- package/intern/ensure-slug-binding.js.map +1 -1
- package/intern/grouped-vibe-import-map.d.ts +3 -0
- package/intern/grouped-vibe-import-map.js +3 -0
- package/intern/grouped-vibe-import-map.js.map +1 -1
- package/intern/guest-build-store.js +1 -0
- package/intern/guest-build-store.js.map +1 -1
- package/intern/image-survey.d.ts +1 -1
- package/intern/image-survey.js +1 -2
- package/intern/image-survey.js.map +1 -1
- package/intern/import-synth.d.ts +5 -0
- package/intern/import-synth.js +52 -12
- package/intern/import-synth.js.map +1 -1
- package/intern/inline-build-pass.d.ts +3 -1
- package/intern/inline-build-pass.js +3 -1
- package/intern/inline-build-pass.js.map +1 -1
- package/intern/instruction-variant.js +4 -3
- package/intern/instruction-variant.js.map +1 -1
- package/intern/mint-decision.d.ts +3 -0
- package/intern/mint-decision.js +14 -2
- package/intern/mint-decision.js.map +1 -1
- package/intern/mint-style.d.ts +3 -0
- package/intern/mint-style.js +12 -1
- package/intern/mint-style.js.map +1 -1
- package/intern/open-turn-store.d.ts +10 -0
- package/intern/open-turn-store.js +28 -1
- package/intern/open-turn-store.js.map +1 -1
- package/intern/opens-check.js +4 -0
- package/intern/opens-check.js.map +1 -1
- package/intern/pouf-head-css.d.ts +15 -0
- package/intern/pouf-head-css.js +40 -0
- package/intern/pouf-head-css.js.map +1 -0
- package/intern/pouf-look-flag.d.ts +9 -0
- package/intern/pouf-look-flag.js +7 -0
- package/intern/pouf-look-flag.js.map +1 -0
- package/intern/prompt-assembly.d.ts +8 -0
- package/intern/prompt-assembly.js +19 -2
- package/intern/prompt-assembly.js.map +1 -1
- package/intern/put-access-gate.d.ts +1 -0
- package/intern/put-access-gate.js +8 -0
- package/intern/put-access-gate.js.map +1 -1
- package/intern/render-vibe.d.ts +2 -1
- package/intern/render-vibe.js +5 -2
- package/intern/render-vibe.js.map +1 -1
- package/intern/save-build-pass.d.ts +2 -0
- package/intern/save-build-pass.js +1 -0
- package/intern/save-build-pass.js.map +1 -1
- package/package.json +13 -12
- package/public/agent-turn-action.js +10 -0
- package/public/agent-turn-action.js.map +1 -1
- package/public/app-documents-read-eventos.js +17 -0
- package/public/app-documents-read-eventos.js.map +1 -1
- package/public/app-documents-write-eventos.d.ts +1 -0
- package/public/app-documents-write-eventos.js +9 -0
- package/public/app-documents-write-eventos.js.map +1 -1
- package/public/channel-invite-flow.d.ts +6 -0
- package/public/channel-invite-flow.js +102 -0
- package/public/channel-invite-flow.js.map +1 -0
- package/public/channel-invite-signup-match.d.ts +6 -0
- package/public/channel-invite-signup-match.js +31 -0
- package/public/channel-invite-signup-match.js.map +1 -0
- package/public/channel-invite-store.d.ts +62 -0
- package/public/channel-invite-store.js +186 -0
- package/public/channel-invite-store.js.map +1 -0
- package/public/grant-reduce.d.ts +5 -0
- package/public/grant-reduce.js +33 -8
- package/public/grant-reduce.js.map +1 -1
- package/public/handle-prompt-context.js +3 -1
- package/public/handle-prompt-context.js.map +1 -1
- package/public/handler-llm-request.js +1 -0
- package/public/handler-llm-request.js.map +1 -1
- package/public/inherit-read-resolver.d.ts +1 -0
- package/public/inherit-read-resolver.js +9 -0
- package/public/inherit-read-resolver.js.map +1 -1
- package/public/invite-subject-aliases.d.ts +15 -0
- package/public/invite-subject-aliases.js +77 -0
- package/public/invite-subject-aliases.js.map +1 -0
- package/public/invite-unsubscribe.js +2 -1
- package/public/invite-unsubscribe.js.map +1 -1
- package/public/lookup-handles.js +5 -2
- package/public/lookup-handles.js.map +1 -1
- package/public/prompt-chat-section.js +8 -0
- package/public/prompt-chat-section.js.map +1 -1
- package/public/resolve-invite-subjects.d.ts +4 -0
- package/public/resolve-invite-subjects.js +53 -0
- package/public/resolve-invite-subjects.js.map +1 -0
- package/public/serv-entry-point.js +7 -3
- package/public/serv-entry-point.js.map +1 -1
- package/public/social-flow.js +52 -4
- package/public/social-flow.js.map +1 -1
- package/public/sync-eventos.js +1 -0
- package/public/sync-eventos.js.map +1 -1
- package/public/viewer-channel-resolver.js +9 -0
- package/public/viewer-channel-resolver.js.map +1 -1
- package/public/who-am-i.d.ts +1 -1
- package/public/who-am-i.js +10 -2
- package/public/who-am-i.js.map +1 -1
- package/types.d.ts +1 -0
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-documents-write-eventos.js","sourceRoot":"","sources":["../../jsr/public/app-documents-write-eventos.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-documents-write-eventos.js","sourceRoot":"","sources":["../../jsr/public/app-documents-write-eventos.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EventoHandler } from "@adviser/cement";
|
|
2
|
+
import { MsgBase, VibesDiyError, W3CWebSocketEvent, ReqChannelInvite, ResChannelInvite } from "@vibes.diy/api-types";
|
|
3
|
+
export declare const CHANNEL_INVITE_HANDLE_REQUIRED_CODE = "channel-invite-handle-required";
|
|
4
|
+
export declare const CHANNEL_INVITE_INVALID_CONTACT_CODE = "channel-invite-invalid-contact";
|
|
5
|
+
export declare const CHANNEL_INVITE_APP_NOT_FOUND_CODE = "channel-invite-app-not-found";
|
|
6
|
+
export declare const channelInviteEvento: EventoHandler<W3CWebSocketEvent, MsgBase<ReqChannelInvite>, ResChannelInvite | VibesDiyError>;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Result, Option, EventoResult } from "@adviser/cement";
|
|
2
|
+
import { and, eq } from "drizzle-orm/sql/expressions";
|
|
3
|
+
import { isReqChannelInvite, } from "@vibes.diy/api-types";
|
|
4
|
+
import { unwrapMsgBase } from "../unwrap-msg-base.js";
|
|
5
|
+
import { checkAuth } from "../check-auth.js";
|
|
6
|
+
import { resolveActiveHandle } from "./resolve-active-handle.js";
|
|
7
|
+
import { INVITE_INVITER_DAILY_CAP, INVITE_CONTACT_LIFETIME_CAP, INVITE_EXPIRY_MS, canonicalEmail, isValidEmailContact, isContactSuppressed, countInviterInvitesSince, countContactInvitesEver, } from "./social-invite-store.js";
|
|
8
|
+
import { channelInviteSubject, countContactChannelInvitesEver, countInviterChannelInvitesSince, insertPendingChannelInviteIfAbsent, } from "./channel-invite-store.js";
|
|
9
|
+
export const CHANNEL_INVITE_HANDLE_REQUIRED_CODE = "channel-invite-handle-required";
|
|
10
|
+
export const CHANNEL_INVITE_INVALID_CONTACT_CODE = "channel-invite-invalid-contact";
|
|
11
|
+
export const CHANNEL_INVITE_APP_NOT_FOUND_CODE = "channel-invite-app-not-found";
|
|
12
|
+
export const channelInviteEvento = {
|
|
13
|
+
hash: "channel-invite",
|
|
14
|
+
validate: unwrapMsgBase(async (msg) => {
|
|
15
|
+
if (isReqChannelInvite(msg.payload)) {
|
|
16
|
+
return Result.Ok(Option.Some({ ...msg, payload: msg.payload }));
|
|
17
|
+
}
|
|
18
|
+
return Result.Ok(Option.None());
|
|
19
|
+
}),
|
|
20
|
+
handle: checkAuth(async (ctx) => {
|
|
21
|
+
const req = ctx.validated.payload;
|
|
22
|
+
const vctx = ctx.ctx.getOrThrow("vibesApiCtx");
|
|
23
|
+
const userId = req._auth.verifiedAuth.claims.userId;
|
|
24
|
+
const inviterHandle = await resolveActiveHandle(vctx, userId);
|
|
25
|
+
if (inviterHandle === undefined) {
|
|
26
|
+
await ctx.send.send(ctx, {
|
|
27
|
+
type: "vibes.diy.res-error",
|
|
28
|
+
error: { message: "a handle is required to invite people", code: CHANNEL_INVITE_HANDLE_REQUIRED_CODE },
|
|
29
|
+
});
|
|
30
|
+
return Result.Ok(EventoResult.Continue);
|
|
31
|
+
}
|
|
32
|
+
if (isValidEmailContact(req.contact) === false) {
|
|
33
|
+
await ctx.send.send(ctx, {
|
|
34
|
+
type: "vibes.diy.res-error",
|
|
35
|
+
error: { message: "not a valid email address", code: CHANNEL_INVITE_INVALID_CONTACT_CODE },
|
|
36
|
+
});
|
|
37
|
+
return Result.Ok(EventoResult.Continue);
|
|
38
|
+
}
|
|
39
|
+
const contactKey = canonicalEmail(req.contact);
|
|
40
|
+
const t = vctx.sql.tables.appSlugBinding;
|
|
41
|
+
const appRow = await vctx.sql.db
|
|
42
|
+
.select({ appSlug: t.appSlug })
|
|
43
|
+
.from(t)
|
|
44
|
+
.where(and(eq(t.ownerHandle, req.ownerHandle), eq(t.appSlug, req.appSlug)))
|
|
45
|
+
.limit(1)
|
|
46
|
+
.then((rows) => rows[0]);
|
|
47
|
+
if (appRow === undefined) {
|
|
48
|
+
await ctx.send.send(ctx, {
|
|
49
|
+
type: "vibes.diy.res-error",
|
|
50
|
+
error: { message: `no such app: ${req.ownerHandle}/${req.appSlug}`, code: CHANNEL_INVITE_APP_NOT_FOUND_CODE },
|
|
51
|
+
});
|
|
52
|
+
return Result.Ok(EventoResult.Continue);
|
|
53
|
+
}
|
|
54
|
+
const dayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
|
|
55
|
+
const sentToday = (await countInviterInvitesSince(vctx.sql, inviterHandle, dayAgo)) +
|
|
56
|
+
(await countInviterChannelInvitesSince(vctx.sql, inviterHandle, dayAgo));
|
|
57
|
+
if (sentToday >= INVITE_INVITER_DAILY_CAP) {
|
|
58
|
+
await ctx.send.send(ctx, { type: "vibes.diy.res-channel-invite", status: "rate-limited" });
|
|
59
|
+
return Result.Ok(EventoResult.Continue);
|
|
60
|
+
}
|
|
61
|
+
const suppressed = await isContactSuppressed(vctx.sql, "email", contactKey);
|
|
62
|
+
const everCount = (await countContactInvitesEver(vctx.sql, "email", contactKey)) +
|
|
63
|
+
(await countContactChannelInvitesEver(vctx.sql, "email", contactKey));
|
|
64
|
+
const mayEmail = suppressed === false && everCount < INVITE_CONTACT_LIFETIME_CAP;
|
|
65
|
+
const now = new Date();
|
|
66
|
+
const { inserted, id, token } = await insertPendingChannelInviteIfAbsent(vctx.sql, {
|
|
67
|
+
id: vctx.sthis.nextId(96 / 8).str,
|
|
68
|
+
ownerHandle: req.ownerHandle,
|
|
69
|
+
appSlug: req.appSlug,
|
|
70
|
+
inviterHandle,
|
|
71
|
+
contactType: "email",
|
|
72
|
+
contactKey,
|
|
73
|
+
token: vctx.sthis.nextId(96 / 8).str,
|
|
74
|
+
now: now.toISOString(),
|
|
75
|
+
expires: new Date(now.getTime() + INVITE_EXPIRY_MS).toISOString(),
|
|
76
|
+
});
|
|
77
|
+
if (inserted && mayEmail) {
|
|
78
|
+
await vctx.postQueue({
|
|
79
|
+
payload: {
|
|
80
|
+
type: "vibes.diy.evt-channel-invite",
|
|
81
|
+
id,
|
|
82
|
+
inviterHandle,
|
|
83
|
+
ownerHandle: req.ownerHandle,
|
|
84
|
+
appSlug: req.appSlug,
|
|
85
|
+
contactKey,
|
|
86
|
+
token,
|
|
87
|
+
},
|
|
88
|
+
tid: "queue-event",
|
|
89
|
+
src: "channel-invite-flow",
|
|
90
|
+
dst: "vibes-service",
|
|
91
|
+
ttl: 1,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
await ctx.send.send(ctx, {
|
|
95
|
+
type: "vibes.diy.res-channel-invite",
|
|
96
|
+
status: "ok",
|
|
97
|
+
subject: channelInviteSubject(id),
|
|
98
|
+
});
|
|
99
|
+
return Result.Ok(EventoResult.Continue);
|
|
100
|
+
}),
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=channel-invite-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-invite-flow.js","sourceRoot":"","sources":["../../jsr/public/channel-invite-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { exception2Result } from "@adviser/cement";
|
|
2
|
+
import { and, eq, ne } from "drizzle-orm/sql/expressions";
|
|
3
|
+
import { canonicalEmail } from "./social-invite-store.js";
|
|
4
|
+
import { findPendingChannelInvitesForContact, markChannelInviteBound } from "./channel-invite-store.js";
|
|
5
|
+
export async function bindChannelInvitesToNewHandle(ctx, input) {
|
|
6
|
+
const t_hb = ctx.sql.tables.handleBinding;
|
|
7
|
+
const others = await ctx.sql.db
|
|
8
|
+
.select({ handle: t_hb.handle })
|
|
9
|
+
.from(t_hb)
|
|
10
|
+
.where(and(eq(t_hb.userId, input.userId), ne(t_hb.handle, input.ownerHandle)))
|
|
11
|
+
.limit(1);
|
|
12
|
+
if (others.length > 0)
|
|
13
|
+
return 0;
|
|
14
|
+
const contactKey = canonicalEmail(input.email);
|
|
15
|
+
const now = new Date().toISOString();
|
|
16
|
+
const pending = await findPendingChannelInvitesForContact(ctx.sql, "email", contactKey, now);
|
|
17
|
+
let bound = 0;
|
|
18
|
+
for (const inv of pending) {
|
|
19
|
+
if (inv.inviterHandle === input.ownerHandle)
|
|
20
|
+
continue;
|
|
21
|
+
const r = await exception2Result(() => markChannelInviteBound(ctx.sql, { id: inv.id, boundHandle: input.ownerHandle, boundUserId: input.userId, now }));
|
|
22
|
+
if (r.isErr()) {
|
|
23
|
+
console.error("[channel-invite] signup bind failed (isolated):", r.Err());
|
|
24
|
+
}
|
|
25
|
+
else if (r.Ok() === true) {
|
|
26
|
+
bound++;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return bound;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=channel-invite-signup-match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-invite-signup-match.js","sourceRoot":"","sources":["../../jsr/public/channel-invite-signup-match.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,mCAAmC,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAiBxG,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,GAAmB,EACnB,KAA6D;IAM7D,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE;SAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;SAC/B,IAAI,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;SAC7E,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,mCAAmC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC7F,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,aAAa,KAAK,KAAK,CAAC,WAAW;YAAE,SAAS;QACtD,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACpC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAChH,CAAC;QACF,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;YAC3B,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type SocialInviteSql } from "./social-invite-store.js";
|
|
2
|
+
export type ChannelInviteSql = SocialInviteSql;
|
|
3
|
+
export declare const CHANNEL_INVITE_SUBJECT_PREFIX = "invite:";
|
|
4
|
+
export declare function channelInviteSubject(id: string): string;
|
|
5
|
+
export interface InsertPendingChannelInviteInput {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly ownerHandle: string;
|
|
8
|
+
readonly appSlug: string;
|
|
9
|
+
readonly inviterHandle: string;
|
|
10
|
+
readonly contactType: "email";
|
|
11
|
+
readonly contactKey: string;
|
|
12
|
+
readonly token: string;
|
|
13
|
+
readonly now: string;
|
|
14
|
+
readonly expires: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function insertPendingChannelInviteIfAbsent(sql: ChannelInviteSql, input: InsertPendingChannelInviteInput): Promise<{
|
|
17
|
+
inserted: boolean;
|
|
18
|
+
id: string;
|
|
19
|
+
token: string;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function selectChannelInviteByToken(sql: ChannelInviteSql, token: string): Promise<{
|
|
22
|
+
id: string;
|
|
23
|
+
ownerHandle: string;
|
|
24
|
+
appSlug: string;
|
|
25
|
+
inviterHandle: string;
|
|
26
|
+
contactType: string;
|
|
27
|
+
contactKey: string;
|
|
28
|
+
token: string;
|
|
29
|
+
state: string;
|
|
30
|
+
boundHandle: string | null;
|
|
31
|
+
boundUserId: string | null;
|
|
32
|
+
expires: string;
|
|
33
|
+
updated: string;
|
|
34
|
+
created: string;
|
|
35
|
+
}>;
|
|
36
|
+
export interface PendingChannelInvite {
|
|
37
|
+
readonly id: string;
|
|
38
|
+
readonly ownerHandle: string;
|
|
39
|
+
readonly appSlug: string;
|
|
40
|
+
readonly inviterHandle: string;
|
|
41
|
+
readonly token: string;
|
|
42
|
+
readonly expires: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function findPendingChannelInvitesForContact(sql: ChannelInviteSql, contactType: "email", contactKey: string, nowIso?: string): Promise<PendingChannelInvite[]>;
|
|
45
|
+
export declare function markChannelInviteBound(sql: ChannelInviteSql, input: {
|
|
46
|
+
id: string;
|
|
47
|
+
boundHandle: string;
|
|
48
|
+
boundUserId: string;
|
|
49
|
+
now: string;
|
|
50
|
+
}): Promise<boolean>;
|
|
51
|
+
export declare function resolveBoundInviteAliases(sql: ChannelInviteSql, input: {
|
|
52
|
+
ownerHandle: string;
|
|
53
|
+
appSlug: string;
|
|
54
|
+
handle: string;
|
|
55
|
+
userId: string;
|
|
56
|
+
}): Promise<Map<string, string>>;
|
|
57
|
+
export declare function countInviterChannelInvitesSince(sql: ChannelInviteSql, inviterHandle: string, sinceIso: string): Promise<number>;
|
|
58
|
+
export declare function countContactChannelInvitesEver(sql: ChannelInviteSql, contactType: "email", contactKey: string): Promise<number>;
|
|
59
|
+
export declare function sweepExpiredChannelInvites(sql: ChannelInviteSql, nowIso: string): Promise<{
|
|
60
|
+
expired: number;
|
|
61
|
+
failed: number;
|
|
62
|
+
}>;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { exception2Result } from "@adviser/cement";
|
|
2
|
+
import { and, eq, gt, inArray, lte } from "drizzle-orm/sql/expressions";
|
|
3
|
+
import { hashContactKey } from "./social-invite-store.js";
|
|
4
|
+
export const CHANNEL_INVITE_SUBJECT_PREFIX = "invite:";
|
|
5
|
+
export function channelInviteSubject(id) {
|
|
6
|
+
return `${CHANNEL_INVITE_SUBJECT_PREFIX}${id}`;
|
|
7
|
+
}
|
|
8
|
+
export async function insertPendingChannelInviteIfAbsent(sql, input) {
|
|
9
|
+
const t = sql.tables.channelInvites;
|
|
10
|
+
const existing = await selectAppContactRow(sql, input);
|
|
11
|
+
if (existing === undefined) {
|
|
12
|
+
const returned = await sql.db
|
|
13
|
+
.insert(t)
|
|
14
|
+
.values({
|
|
15
|
+
id: input.id,
|
|
16
|
+
ownerHandle: input.ownerHandle,
|
|
17
|
+
appSlug: input.appSlug,
|
|
18
|
+
inviterHandle: input.inviterHandle,
|
|
19
|
+
contactType: input.contactType,
|
|
20
|
+
contactKey: input.contactKey,
|
|
21
|
+
token: input.token,
|
|
22
|
+
state: "pending",
|
|
23
|
+
boundHandle: null,
|
|
24
|
+
boundUserId: null,
|
|
25
|
+
expires: input.expires,
|
|
26
|
+
updated: input.now,
|
|
27
|
+
created: input.now,
|
|
28
|
+
})
|
|
29
|
+
.onConflictDoNothing({ target: [t.ownerHandle, t.appSlug, t.contactType, t.contactKey] })
|
|
30
|
+
.returning({ id: t.id, token: t.token });
|
|
31
|
+
const row = returned[0];
|
|
32
|
+
if (row !== undefined)
|
|
33
|
+
return { inserted: true, id: row.id, token: row.token };
|
|
34
|
+
const winner = await selectAppContactRow(sql, input);
|
|
35
|
+
if (winner === undefined)
|
|
36
|
+
throw new Error("channel invite insert conflicted but no row found");
|
|
37
|
+
return { inserted: false, id: winner.id, token: winner.token };
|
|
38
|
+
}
|
|
39
|
+
const live = existing.state === "pending" && existing.expires > input.now;
|
|
40
|
+
if (live || existing.state === "bound") {
|
|
41
|
+
return { inserted: false, id: existing.id, token: existing.token };
|
|
42
|
+
}
|
|
43
|
+
const refreshed = await sql.db
|
|
44
|
+
.update(t)
|
|
45
|
+
.set({
|
|
46
|
+
inviterHandle: input.inviterHandle,
|
|
47
|
+
contactKey: input.contactKey,
|
|
48
|
+
token: input.token,
|
|
49
|
+
state: "pending",
|
|
50
|
+
boundHandle: null,
|
|
51
|
+
boundUserId: null,
|
|
52
|
+
expires: input.expires,
|
|
53
|
+
updated: input.now,
|
|
54
|
+
created: input.now,
|
|
55
|
+
})
|
|
56
|
+
.where(and(eq(t.id, existing.id), eq(t.token, existing.token), eq(t.state, existing.state)))
|
|
57
|
+
.returning({ id: t.id, token: t.token });
|
|
58
|
+
const row = refreshed[0];
|
|
59
|
+
if (row !== undefined)
|
|
60
|
+
return { inserted: true, id: row.id, token: row.token };
|
|
61
|
+
const current = await selectAppContactRow(sql, input);
|
|
62
|
+
if (current === undefined)
|
|
63
|
+
throw new Error("channel invite refresh lost its row");
|
|
64
|
+
return { inserted: false, id: current.id, token: current.token };
|
|
65
|
+
}
|
|
66
|
+
async function selectAppContactRow(sql, input) {
|
|
67
|
+
const t = sql.tables.channelInvites;
|
|
68
|
+
const rows = await sql.db
|
|
69
|
+
.select()
|
|
70
|
+
.from(t)
|
|
71
|
+
.where(and(eq(t.ownerHandle, input.ownerHandle), eq(t.appSlug, input.appSlug), eq(t.contactType, input.contactType), inArray(t.contactKey, [input.contactKey, hashContactKey(input.contactKey)])));
|
|
72
|
+
return rows.find((r) => r.contactKey === input.contactKey) ?? rows[0];
|
|
73
|
+
}
|
|
74
|
+
export async function selectChannelInviteByToken(sql, token) {
|
|
75
|
+
const t = sql.tables.channelInvites;
|
|
76
|
+
return sql.db
|
|
77
|
+
.select()
|
|
78
|
+
.from(t)
|
|
79
|
+
.where(eq(t.token, token))
|
|
80
|
+
.limit(1)
|
|
81
|
+
.then((r) => r[0]);
|
|
82
|
+
}
|
|
83
|
+
export async function findPendingChannelInvitesForContact(sql, contactType, contactKey, nowIso = new Date().toISOString()) {
|
|
84
|
+
const t = sql.tables.channelInvites;
|
|
85
|
+
return sql.db
|
|
86
|
+
.select({
|
|
87
|
+
id: t.id,
|
|
88
|
+
ownerHandle: t.ownerHandle,
|
|
89
|
+
appSlug: t.appSlug,
|
|
90
|
+
inviterHandle: t.inviterHandle,
|
|
91
|
+
token: t.token,
|
|
92
|
+
expires: t.expires,
|
|
93
|
+
})
|
|
94
|
+
.from(t)
|
|
95
|
+
.where(and(eq(t.state, "pending"), eq(t.contactType, contactType), eq(t.contactKey, contactKey), gt(t.expires, nowIso)));
|
|
96
|
+
}
|
|
97
|
+
export async function markChannelInviteBound(sql, input) {
|
|
98
|
+
const t = sql.tables.channelInvites;
|
|
99
|
+
const row = await sql.db
|
|
100
|
+
.select({ contactKey: t.contactKey, state: t.state })
|
|
101
|
+
.from(t)
|
|
102
|
+
.where(eq(t.id, input.id))
|
|
103
|
+
.limit(1)
|
|
104
|
+
.then((r) => r[0]);
|
|
105
|
+
if (row === undefined || row.state !== "pending")
|
|
106
|
+
return false;
|
|
107
|
+
const returned = await sql.db
|
|
108
|
+
.update(t)
|
|
109
|
+
.set({
|
|
110
|
+
state: "bound",
|
|
111
|
+
boundHandle: input.boundHandle,
|
|
112
|
+
boundUserId: input.boundUserId,
|
|
113
|
+
contactKey: hashContactKey(row.contactKey),
|
|
114
|
+
updated: input.now,
|
|
115
|
+
})
|
|
116
|
+
.where(and(eq(t.id, input.id), eq(t.state, "pending"), eq(t.contactKey, row.contactKey), gt(t.expires, input.now)))
|
|
117
|
+
.returning({ id: t.id });
|
|
118
|
+
return returned.length > 0;
|
|
119
|
+
}
|
|
120
|
+
export async function resolveBoundInviteAliases(sql, input) {
|
|
121
|
+
const t = sql.tables.channelInvites;
|
|
122
|
+
const rows = await sql.db
|
|
123
|
+
.select({ id: t.id, boundHandle: t.boundHandle })
|
|
124
|
+
.from(t)
|
|
125
|
+
.where(and(eq(t.ownerHandle, input.ownerHandle), eq(t.appSlug, input.appSlug), eq(t.boundHandle, input.handle), eq(t.boundUserId, input.userId), eq(t.state, "bound")));
|
|
126
|
+
const out = new Map();
|
|
127
|
+
for (const r of rows) {
|
|
128
|
+
if (r.boundHandle !== null)
|
|
129
|
+
out.set(channelInviteSubject(r.id), r.boundHandle);
|
|
130
|
+
}
|
|
131
|
+
return out;
|
|
132
|
+
}
|
|
133
|
+
export async function countInviterChannelInvitesSince(sql, inviterHandle, sinceIso) {
|
|
134
|
+
const t = sql.tables.channelInvites;
|
|
135
|
+
const rows = await sql.db
|
|
136
|
+
.select({ id: t.id })
|
|
137
|
+
.from(t)
|
|
138
|
+
.where(and(eq(t.inviterHandle, inviterHandle), gt(t.created, sinceIso)));
|
|
139
|
+
return rows.length;
|
|
140
|
+
}
|
|
141
|
+
export async function countContactChannelInvitesEver(sql, contactType, contactKey) {
|
|
142
|
+
const t = sql.tables.channelInvites;
|
|
143
|
+
const rows = await sql.db
|
|
144
|
+
.select({ id: t.id })
|
|
145
|
+
.from(t)
|
|
146
|
+
.where(and(eq(t.contactType, contactType), inArray(t.contactKey, [contactKey, hashContactKey(contactKey)])));
|
|
147
|
+
return rows.length;
|
|
148
|
+
}
|
|
149
|
+
export async function sweepExpiredChannelInvites(sql, nowIso) {
|
|
150
|
+
const t = sql.tables.channelInvites;
|
|
151
|
+
const due = await sql.db
|
|
152
|
+
.select({ id: t.id, ownerHandle: t.ownerHandle, appSlug: t.appSlug, contactType: t.contactType, contactKey: t.contactKey })
|
|
153
|
+
.from(t)
|
|
154
|
+
.where(and(eq(t.state, "pending"), lte(t.expires, nowIso)));
|
|
155
|
+
let expired = 0;
|
|
156
|
+
let failed = 0;
|
|
157
|
+
for (const row of due) {
|
|
158
|
+
const rMutate = await exception2Result(async () => {
|
|
159
|
+
const hashed = hashContactKey(row.contactKey);
|
|
160
|
+
const clash = await sql.db
|
|
161
|
+
.select({ id: t.id })
|
|
162
|
+
.from(t)
|
|
163
|
+
.where(and(eq(t.ownerHandle, row.ownerHandle), eq(t.appSlug, row.appSlug), eq(t.contactType, row.contactType), eq(t.contactKey, hashed)))
|
|
164
|
+
.limit(1)
|
|
165
|
+
.then((r) => r[0]);
|
|
166
|
+
if (clash !== undefined) {
|
|
167
|
+
await sql.db.delete(t).where(and(eq(t.id, row.id), eq(t.state, "pending")));
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
await sql.db
|
|
171
|
+
.update(t)
|
|
172
|
+
.set({ state: "expired", contactKey: hashed, updated: nowIso })
|
|
173
|
+
.where(and(eq(t.id, row.id), eq(t.state, "pending"), eq(t.contactKey, row.contactKey)));
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
if (rMutate.isErr()) {
|
|
177
|
+
failed++;
|
|
178
|
+
console.error("[channel-invite] sweep row failed (isolated):", rMutate.Err());
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
expired++;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return { expired, failed };
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=channel-invite-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-invite-store.js","sourceRoot":"","sources":["../../jsr/public/channel-invite-store.ts"],"names":[],"mappings":"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"}
|
package/public/grant-reduce.d.ts
CHANGED
|
@@ -15,9 +15,12 @@ export declare class GrantReduce {
|
|
|
15
15
|
publicChannels: Set<string>;
|
|
16
16
|
_hydrated: boolean;
|
|
17
17
|
private seedContribution;
|
|
18
|
+
private subjectAliases;
|
|
18
19
|
get isHydrated(): boolean;
|
|
19
20
|
markHydrated(): void;
|
|
20
21
|
setSeed(contribution: DocContribution | undefined): void;
|
|
22
|
+
setSubjectAliases(aliases: ReadonlyMap<string, string>): void;
|
|
23
|
+
namesSubjectPrefix(prefix: string): boolean;
|
|
21
24
|
cloneSeedFrom(other: GrantReduce): void;
|
|
22
25
|
addDoc(docId: string, contribution: DocContribution): void;
|
|
23
26
|
removeDoc(docId: string): void;
|
|
@@ -25,7 +28,9 @@ export declare class GrantReduce {
|
|
|
25
28
|
hasRole(userHandle: string, roleName: string): boolean;
|
|
26
29
|
private rebuild;
|
|
27
30
|
private unionContribution;
|
|
31
|
+
private unionUserGrant;
|
|
28
32
|
}
|
|
33
|
+
export declare const INVITE_SUBJECT_PREFIX = "invite:";
|
|
29
34
|
export declare const RESERVED_OWNER_ROLE = "owner";
|
|
30
35
|
export declare const RESERVED_DEV_ROLE = "~dev";
|
|
31
36
|
export declare function seedOwnerGrants(reduce: GrantReduce, ownerHandle: string | undefined, devHandles?: readonly string[]): void;
|
package/public/grant-reduce.js
CHANGED
|
@@ -34,6 +34,7 @@ export class GrantReduce {
|
|
|
34
34
|
publicChannels = new Set();
|
|
35
35
|
_hydrated = false;
|
|
36
36
|
seedContribution;
|
|
37
|
+
subjectAliases = new Map();
|
|
37
38
|
get isHydrated() {
|
|
38
39
|
return this._hydrated;
|
|
39
40
|
}
|
|
@@ -44,6 +45,20 @@ export class GrantReduce {
|
|
|
44
45
|
this.seedContribution = contribution && hasContent(contribution) ? contribution : undefined;
|
|
45
46
|
this.rebuild();
|
|
46
47
|
}
|
|
48
|
+
setSubjectAliases(aliases) {
|
|
49
|
+
this.subjectAliases = aliases;
|
|
50
|
+
this.rebuild();
|
|
51
|
+
}
|
|
52
|
+
namesSubjectPrefix(prefix) {
|
|
53
|
+
for (const key of this.userGrants.keys())
|
|
54
|
+
if (key.startsWith(prefix))
|
|
55
|
+
return true;
|
|
56
|
+
for (const members of this.effectiveMembers.values())
|
|
57
|
+
for (const m of members)
|
|
58
|
+
if (m.startsWith(prefix))
|
|
59
|
+
return true;
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
47
62
|
cloneSeedFrom(other) {
|
|
48
63
|
this.setSeed(other.seedContribution);
|
|
49
64
|
}
|
|
@@ -114,6 +129,9 @@ export class GrantReduce {
|
|
|
114
129
|
}
|
|
115
130
|
for (const u of users) {
|
|
116
131
|
set.add(u);
|
|
132
|
+
const alias = this.subjectAliases.get(u);
|
|
133
|
+
if (alias !== undefined)
|
|
134
|
+
set.add(alias);
|
|
117
135
|
}
|
|
118
136
|
}
|
|
119
137
|
for (const [role, channels] of c.grantRoles) {
|
|
@@ -127,20 +145,27 @@ export class GrantReduce {
|
|
|
127
145
|
}
|
|
128
146
|
}
|
|
129
147
|
for (const [user, channels] of c.grantUsers) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
this.
|
|
134
|
-
}
|
|
135
|
-
for (const ch of channels) {
|
|
136
|
-
set.add(ch);
|
|
137
|
-
}
|
|
148
|
+
this.unionUserGrant(user, channels);
|
|
149
|
+
const alias = this.subjectAliases.get(user);
|
|
150
|
+
if (alias !== undefined)
|
|
151
|
+
this.unionUserGrant(alias, channels);
|
|
138
152
|
}
|
|
139
153
|
for (const ch of c.grantPublic) {
|
|
140
154
|
this.publicChannels.add(ch);
|
|
141
155
|
}
|
|
142
156
|
}
|
|
157
|
+
unionUserGrant(user, channels) {
|
|
158
|
+
let set = this.userGrants.get(user);
|
|
159
|
+
if (!set) {
|
|
160
|
+
set = new Set();
|
|
161
|
+
this.userGrants.set(user, set);
|
|
162
|
+
}
|
|
163
|
+
for (const ch of channels) {
|
|
164
|
+
set.add(ch);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
143
167
|
}
|
|
168
|
+
export const INVITE_SUBJECT_PREFIX = "invite:";
|
|
144
169
|
export const RESERVED_OWNER_ROLE = "owner";
|
|
145
170
|
export const RESERVED_DEV_ROLE = "~dev";
|
|
146
171
|
export function seedOwnerGrants(reduce, ownerHandle, devHandles = []) {
|