@vibes.diy/api-queue 2.2.4 → 2.2.6

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.
@@ -0,0 +1,3 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { EvtCommentPosted, MsgBase } from "@vibes.diy/api-types";
3
+ export declare const evtCommentPostedEvento: EventoHandler<unknown, MsgBase<EvtCommentPosted>, void>;
@@ -0,0 +1,24 @@
1
+ import { EventoResult, Option, Result } from "@adviser/cement";
2
+ import { isEvtCommentPosted, msgBase } from "@vibes.diy/api-types";
3
+ import { type } from "arktype";
4
+ import { buildCommentEmbed, postEmbed } from "../intern/post-to-discord.js";
5
+ export const evtCommentPostedEvento = {
6
+ hash: "evt-comment-posted",
7
+ validate: async (ctx) => {
8
+ const msg = msgBase(ctx.enRequest);
9
+ if (msg instanceof type.errors) {
10
+ return Result.Ok(Option.None());
11
+ }
12
+ if (!isEvtCommentPosted(msg.payload)) {
13
+ return Result.Ok(Option.None());
14
+ }
15
+ return Result.Ok(Option.Some(msg));
16
+ },
17
+ handle: async (ctx) => {
18
+ const qctx = ctx.ctx.getOrThrow("queueCtx");
19
+ const payload = ctx.validated.payload;
20
+ await postEmbed(qctx, buildCommentEmbed(qctx, payload));
21
+ return Result.Ok(EventoResult.Continue);
22
+ },
23
+ };
24
+ //# sourceMappingURL=evt-comment-posted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evt-comment-posted.js","sourceRoot":"","sources":["../../jsr/handlers/evt-comment-posted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAoB,MAAM,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAA6B,kBAAkB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,CAAC,MAAM,sBAAsB,GAA4D;IAC7F,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAgC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAA+D,EAAqC,EAAE;QACnH,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QACtC,MAAM,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -2,6 +2,7 @@ import { EventoResult, Option, Result } from "@adviser/cement";
2
2
  import { isEvtInviteGrant, msgBase } from "@vibes.diy/api-types";
3
3
  import { type } from "arktype";
4
4
  import { sendEmailOpts } from "../intern/send-email.js";
5
+ import { buildInviteAcceptedEmbed, postEmbed } from "../intern/post-to-discord.js";
5
6
  export const evtInviteGrantEvento = {
6
7
  hash: "evt-invite-grant",
7
8
  validate: async (ctx) => {
@@ -21,6 +22,9 @@ export const evtInviteGrantEvento = {
21
22
  if (payload.op === "delete") {
22
23
  return Result.Ok(EventoResult.Continue);
23
24
  }
25
+ if (payload.grant.state === "accepted") {
26
+ await postEmbed(qctx, buildInviteAcceptedEmbed(qctx, payload));
27
+ }
24
28
  if (!payload.grant.foreignInfo.givenEmail) {
25
29
  return Result.Ok(EventoResult.Continue);
26
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evt-invite-grant.js","sourceRoot":"","sources":["../../jsr/handlers/evt-invite-grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAoB,MAAM,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAA2B,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,oBAAoB,GAA0D;IACzF,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAA6D,EAAqC,EAAE;QACjH,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAEtC,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAE5B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAE1C,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,aAAa,CAAC,IAAI,EAAE;gBACxB;oBACE,MAAM,EAAE,QAAQ;oBAChB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;oBACzC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;oBACxB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,kBAAkB;iBACxC;aACF,CAAC,CAAC;QACL,CAAC;QAID,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAEtC,MAAM,aAAa,CAAC,IAAI,EAAE;gBACxB;oBACE,MAAM,EAAE,gBAAgB;oBACxB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;oBACzC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;iBACzB;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"evt-invite-grant.js","sourceRoot":"","sources":["../../jsr/handlers/evt-invite-grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAoB,MAAM,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAA2B,gBAAgB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEnF,MAAM,CAAC,MAAM,oBAAoB,GAA0D;IACzF,IAAI,EAAE,kBAAkB;IACxB,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAA6D,EAAqC,EAAE;QACjH,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAEtC,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAE5B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,SAAS,CAAC,IAAI,EAAE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAE1C,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,aAAa,CAAC,IAAI,EAAE;gBACxB;oBACE,MAAM,EAAE,QAAQ;oBAChB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;oBACzC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;oBACxB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,kBAAkB;iBACxC;aACF,CAAC,CAAC;QACL,CAAC;QAID,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAEtC,MAAM,aAAa,CAAC,IAAI,EAAE;gBACxB;oBACE,MAAM,EAAE,gBAAgB;oBACxB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;oBACzC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;iBACzB;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -2,6 +2,7 @@ import { EventoResult, Option, Result } from "@adviser/cement";
2
2
  import { isEvtNewFsId, msgBase } from "@vibes.diy/api-types";
3
3
  import { type } from "arktype";
4
4
  import { processScreenShotEvent } from "../screen-shotter.js";
5
+ import { buildPublishEmbed, postEmbed } from "../intern/post-to-discord.js";
5
6
  export const evtNewFsIdEvento = {
6
7
  hash: "evt-new-fs-id",
7
8
  validate: async (ctx) => {
@@ -21,6 +22,9 @@ export const evtNewFsIdEvento = {
21
22
  if (res.isErr()) {
22
23
  console.error("Error processing screen shot event:", res.Err());
23
24
  }
25
+ if (payload.mode === "production") {
26
+ await postEmbed(qctx, buildPublishEmbed(qctx, payload));
27
+ }
24
28
  return Result.Ok(EventoResult.Continue);
25
29
  },
26
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"evt-new-fs-id.js","sourceRoot":"","sources":["../../jsr/handlers/evt-new-fs-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAoB,MAAM,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAuB,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAsD;IACjF,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAA0B,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAyD,EAAqC,EAAE;QAC7G,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAEtC,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"evt-new-fs-id.js","sourceRoot":"","sources":["../../jsr/handlers/evt-new-fs-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAoB,MAAM,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAuB,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,CAAC,MAAM,gBAAgB,GAAsD;IACjF,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAA0B,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAyD,EAAqC,EAAE;QAC7G,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAEtC,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClC,MAAM,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
@@ -2,6 +2,7 @@ import { EventoResult, Option, Result } from "@adviser/cement";
2
2
  import { isEvtRequestGrant, msgBase } from "@vibes.diy/api-types";
3
3
  import { type } from "arktype";
4
4
  import { sendEmailOpts } from "../intern/send-email.js";
5
+ import { buildRequestApprovedEmbed, buildRequestPendingEmbed, postEmbed } from "../intern/post-to-discord.js";
5
6
  export const evtRequestGrantEvento = {
6
7
  hash: "evt-request-grant",
7
8
  validate: async (ctx) => {
@@ -17,6 +18,12 @@ export const evtRequestGrantEvento = {
17
18
  handle: async (ctx) => {
18
19
  const qctx = ctx.ctx.getOrThrow("queueCtx");
19
20
  const payload = ctx.validated.payload;
21
+ if (payload.grant.state === "pending") {
22
+ await postEmbed(qctx, buildRequestPendingEmbed(qctx, payload));
23
+ }
24
+ else if (payload.grant.state === "approved") {
25
+ await postEmbed(qctx, buildRequestApprovedEmbed(qctx, payload, payload.grant.role));
26
+ }
20
27
  if (!(payload.grant.foreignInfo.claims?.params.email && payload.grant.foreignInfo.givenEmail)) {
21
28
  return Result.Ok(EventoResult.Continue);
22
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evt-request-grant.js","sourceRoot":"","sources":["../../jsr/handlers/evt-request-grant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAoB,MAAM,EAAE,MAAM,EAAoB,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAA4B,iBAAiB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,qBAAqB,GAA2D;IAC3F,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAA+B,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAA8D,EAAqC,EAAE;QAClH,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAW,UAAU,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;QAYtC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9F,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,aAAa,CAAC,IAAI,EAAE;gBACxB;oBACE,MAAM,EAAE,cAAc;oBACtB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;oBAC3F,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;iBACzB;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAEtC,MAAM,aAAa,CAAC,IAAI,EAAE;gBACxB;oBACE,MAAM,EAAE,cAAc;oBACtB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU;oBAC3F,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;oBAChC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;oBAC9B,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;iBACzB;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"evt-request-grant.js","sourceRoot":"","sources":["../../jsr/handlers/evt-request-grant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { EvtCommentPosted, EvtInviteGrant, EvtNewFsId, EvtRequestGrant, Role } from "@vibes.diy/api-types";
3
+ import { DiscordWebhookBody, QueueCtx } from "../queue-ctx.js";
4
+ export declare function buildPublishEmbed(vctx: QueueCtx, payload: EvtNewFsId): DiscordWebhookBody;
5
+ export declare function buildCommentEmbed(vctx: QueueCtx, payload: EvtCommentPosted): DiscordWebhookBody;
6
+ export declare function buildInviteAcceptedEmbed(vctx: QueueCtx, payload: EvtInviteGrant): DiscordWebhookBody;
7
+ export declare function buildRequestPendingEmbed(vctx: QueueCtx, payload: EvtRequestGrant): DiscordWebhookBody;
8
+ export declare function buildRequestApprovedEmbed(vctx: QueueCtx, payload: EvtRequestGrant, role: Role): DiscordWebhookBody;
9
+ export declare function postEmbed(vctx: QueueCtx, body: DiscordWebhookBody): Promise<Result<void>>;
@@ -0,0 +1,105 @@
1
+ import { BuildURI } from "@adviser/cement";
2
+ const DISCORD_EMBED_COLOR = 11184810;
3
+ function vibeUrl(vctx, userSlug, appSlug) {
4
+ return BuildURI.from(vctx.params.vibes.env.VIBES_DIY_PUBLIC_BASE_URL)
5
+ .appendRelative("vibe")
6
+ .appendRelative(userSlug)
7
+ .appendRelative(appSlug)
8
+ .toString();
9
+ }
10
+ function foreignLabel(foreignInfo) {
11
+ return foreignInfo?.claims?.params.email ?? foreignInfo?.givenEmail ?? "(unknown)";
12
+ }
13
+ export function buildPublishEmbed(vctx, payload) {
14
+ const url = vibeUrl(vctx, payload.userSlug, payload.appSlug);
15
+ return {
16
+ content: `🎉 New Vibe published: **[${payload.userSlug}/${payload.appSlug}](${url})**`,
17
+ embeds: [
18
+ {
19
+ title: `${payload.userSlug}/${payload.appSlug}`,
20
+ url,
21
+ color: DISCORD_EMBED_COLOR,
22
+ fields: [
23
+ { name: "User", value: payload.userSlug, inline: true },
24
+ { name: "App", value: payload.appSlug, inline: true },
25
+ { name: "fsId", value: payload.fsId, inline: false },
26
+ ],
27
+ },
28
+ ],
29
+ };
30
+ }
31
+ export function buildCommentEmbed(vctx, payload) {
32
+ const url = vibeUrl(vctx, payload.userSlug, payload.appSlug);
33
+ const commenter = payload.email ?? payload.userId;
34
+ return {
35
+ content: `🗨️ New comment on **[${payload.userSlug}/${payload.appSlug}](${url})**`,
36
+ embeds: [
37
+ {
38
+ title: `${payload.userSlug}/${payload.appSlug}`,
39
+ url,
40
+ color: DISCORD_EMBED_COLOR,
41
+ fields: [
42
+ { name: "Commenter", value: commenter, inline: true },
43
+ { name: "User ID", value: payload.userId, inline: true },
44
+ { name: "Doc", value: payload.docId, inline: true },
45
+ ],
46
+ },
47
+ ],
48
+ };
49
+ }
50
+ export function buildInviteAcceptedEmbed(vctx, payload) {
51
+ const url = vibeUrl(vctx, payload.grant.userSlug, payload.grant.appSlug);
52
+ return {
53
+ content: `🎟️ Invite accepted on **[${payload.grant.userSlug}/${payload.grant.appSlug}](${url})**`,
54
+ embeds: [
55
+ {
56
+ title: `${payload.grant.userSlug}/${payload.grant.appSlug}`,
57
+ url,
58
+ color: DISCORD_EMBED_COLOR,
59
+ fields: [
60
+ { name: "Member", value: foreignLabel(payload.grant.foreignInfo), inline: true },
61
+ { name: "Role", value: payload.grant.role, inline: true },
62
+ ],
63
+ },
64
+ ],
65
+ };
66
+ }
67
+ export function buildRequestPendingEmbed(vctx, payload) {
68
+ const url = vibeUrl(vctx, payload.grant.userSlug, payload.grant.appSlug);
69
+ return {
70
+ content: `🙋 Access requested on **[${payload.grant.userSlug}/${payload.grant.appSlug}](${url})**`,
71
+ embeds: [
72
+ {
73
+ title: `${payload.grant.userSlug}/${payload.grant.appSlug}`,
74
+ url,
75
+ color: DISCORD_EMBED_COLOR,
76
+ fields: [{ name: "Requester", value: foreignLabel(payload.grant.foreignInfo), inline: true }],
77
+ },
78
+ ],
79
+ };
80
+ }
81
+ export function buildRequestApprovedEmbed(vctx, payload, role) {
82
+ const url = vibeUrl(vctx, payload.grant.userSlug, payload.grant.appSlug);
83
+ return {
84
+ content: `✅ Access granted on **[${payload.grant.userSlug}/${payload.grant.appSlug}](${url})**`,
85
+ embeds: [
86
+ {
87
+ title: `${payload.grant.userSlug}/${payload.grant.appSlug}`,
88
+ url,
89
+ color: DISCORD_EMBED_COLOR,
90
+ fields: [
91
+ { name: "Member", value: foreignLabel(payload.grant.foreignInfo), inline: true },
92
+ { name: "Role", value: role, inline: true },
93
+ ],
94
+ },
95
+ ],
96
+ };
97
+ }
98
+ export async function postEmbed(vctx, body) {
99
+ const r = await vctx.postToDiscord(body);
100
+ if (r.isErr()) {
101
+ console.error("Discord post failed:", r.Err());
102
+ }
103
+ return r;
104
+ }
105
+ //# sourceMappingURL=post-to-discord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-to-discord.js","sourceRoot":"","sources":["../../jsr/intern/post-to-discord.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-queue",
3
- "version": "2.2.4",
3
+ "version": "2.2.6",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "scripts": {
@@ -15,10 +15,10 @@
15
15
  "@cloudflare/puppeteer": "~1.0.6",
16
16
  "@fireproof/core-runtime": "~0.24.19",
17
17
  "@fireproof/core-types-base": "~0.24.19",
18
- "@vibes.diy/api-pkg": "2.2.4",
19
- "@vibes.diy/api-sql": "2.2.4",
20
- "@vibes.diy/api-svc": "2.2.4",
21
- "@vibes.diy/api-types": "2.2.4",
18
+ "@vibes.diy/api-pkg": "2.2.6",
19
+ "@vibes.diy/api-sql": "2.2.6",
20
+ "@vibes.diy/api-svc": "2.2.6",
21
+ "@vibes.diy/api-types": "2.2.6",
22
22
  "arktype": "~2.2.0",
23
23
  "drizzle-orm": "~0.45.2"
24
24
  },
package/queue-ctx.d.ts CHANGED
@@ -16,9 +16,26 @@ export interface QueueCtxParams {
16
16
  VIBES_DIY_FROM_EMAIL: string;
17
17
  DB_FLAVOUR: string;
18
18
  NEON_DATABASE_URL?: string;
19
+ DISCORD_WEBHOOK_URL?: string;
19
20
  };
20
21
  };
21
22
  }
23
+ export interface DiscordEmbedField {
24
+ name: string;
25
+ value: string;
26
+ inline?: boolean;
27
+ }
28
+ export interface DiscordEmbed {
29
+ title?: string;
30
+ description?: string;
31
+ url?: string;
32
+ color?: number;
33
+ fields?: DiscordEmbedField[];
34
+ }
35
+ export interface DiscordWebhookBody {
36
+ content?: string;
37
+ embeds?: DiscordEmbed[];
38
+ }
22
39
  export declare class QueueCtx {
23
40
  readonly sthis: SuperThis;
24
41
  readonly params: QueueCtxParams;
@@ -30,6 +47,7 @@ export declare class QueueCtx {
30
47
  tables: VibesApiTables;
31
48
  };
32
49
  constructor(params: QueueCtxParams);
50
+ postToDiscord(body: DiscordWebhookBody): Promise<Result<void>>;
33
51
  sendEmail(rm: RawEmailWithoutFrom): Promise<Result<{
34
52
  result: unknown;
35
53
  }>>;
package/queue-ctx.js CHANGED
@@ -22,6 +22,26 @@ export class QueueCtx {
22
22
  },
23
23
  };
24
24
  }
25
+ async postToDiscord(body) {
26
+ const webhookUrl = this.params.vibes.env.DISCORD_WEBHOOK_URL;
27
+ if (webhookUrl === undefined) {
28
+ console.log("DISCORD_WEBHOOK_URL not set — skipping Discord notification");
29
+ return Result.Ok();
30
+ }
31
+ const rRes = await exception2Result(() => fetch(webhookUrl, {
32
+ method: "POST",
33
+ headers: { "Content-Type": "application/json" },
34
+ body: JSON.stringify(body),
35
+ }));
36
+ if (rRes.isErr()) {
37
+ return Result.Err(rRes);
38
+ }
39
+ const res = rRes.Ok();
40
+ if (!res.ok) {
41
+ return Result.Err(`Discord webhook got an error: ${res.status}:${res.statusText}`);
42
+ }
43
+ return Result.Ok();
44
+ }
25
45
  async sendEmail(rm) {
26
46
  const rRes = await exception2Result(() => fetch("https://api.resend.com/emails", {
27
47
  method: "POST",
package/queue-ctx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"queue-ctx.js","sourceRoot":"","sources":["../jsr/queue-ctx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAuB,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAoBvH,MAAM,OAAO,QAAQ;IACV,KAAK,CAAY;IACjB,MAAM,CAAiB;IACvB,cAAc,CAErB;IACO,GAAG,CAGV;IACF,YAAY,MAAsB;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,GAAG,GAAG;YACT,EAAE;YACF,MAAM;SACP,CAAC;QACF,IAAI,CAAC,cAAc,GAAG;YACpB,GAAG,EAAE;gBACH,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBACtD,EAAE;gBACF,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAuB;QACrC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACvC,KAAK,CAAC,+BAA+B,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE;gBAC/D,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB;aACjD,CAAC;SACH,CAAC,CACH,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;CACF"}
1
+ {"version":3,"file":"queue-ctx.js","sourceRoot":"","sources":["../jsr/queue-ctx.ts"],"names":[],"mappings":"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"}
package/queue-evento.js CHANGED
@@ -3,10 +3,11 @@ import { evtNewFsIdEvento } from "./handlers/evt-new-fs-id.js";
3
3
  import { evtAppSettingEvento } from "./handlers/evt-app-setting.js";
4
4
  import { evtInviteGrantEvento } from "./handlers/evt-invite-grant.js";
5
5
  import { evtRequestGrantEvento } from "./handlers/evt-request-grant.js";
6
+ import { evtCommentPostedEvento } from "./handlers/evt-comment-posted.js";
6
7
  import { MsgBaseEventoEnDecoder } from "@vibes.diy/api-pkg";
7
8
  export const vibesQueueEvento = Lazy(() => {
8
9
  const evento = new Evento(new MsgBaseEventoEnDecoder());
9
- evento.push(evtNewFsIdEvento, evtAppSettingEvento, evtInviteGrantEvento, evtRequestGrantEvento, {
10
+ evento.push(evtNewFsIdEvento, evtAppSettingEvento, evtInviteGrantEvento, evtRequestGrantEvento, evtCommentPostedEvento, {
10
11
  type: EventoType.Error,
11
12
  hash: "queue-error-handler",
12
13
  handle: async (ctx) => {
@@ -1 +1 @@
1
- {"version":3,"file":"queue-evento.js","sourceRoot":"","sources":["../jsr/queue-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;IACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EASrB;QACE,IAAI,EAAE,UAAU,CAAC,KAAK;QACtB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,KAAK,EAAG,GAAG,CAAC,KAA6B,EAAE,KAAK,CAAC,CAAC;YACtG,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"queue-evento.js","sourceRoot":"","sources":["../jsr/queue-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE;IACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EAStB;QACE,IAAI,EAAE,UAAU,CAAC,KAAK;QACtB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,KAAK,EAAG,GAAG,CAAC,KAA6B,EAAE,KAAK,CAAC,CAAC;YACtG,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CAAC"}
package/worker.js CHANGED
@@ -24,6 +24,7 @@ export default {
24
24
  VIBES_DIY_FROM_EMAIL: env.VIBES_DIY_FROM_EMAIL,
25
25
  DB_FLAVOUR: toDBFlavour(env.DB_FLAVOUR),
26
26
  NEON_DATABASE_URL: env.NEON_DATABASE_URL,
27
+ DISCORD_WEBHOOK_URL: env.DISCORD_WEBHOOK_URL,
27
28
  },
28
29
  },
29
30
  });
package/worker.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../jsr/worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,qBAAqB;IACzB,KAAK,CAAC,IAAI,CAAI,IAAiD,EAAE,KAAc;QAC7E,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC;IACrB,CAAC;CACF;AAED,eAAe;IACb,KAAK,CAAC,KAAK,CAAC,KAAmB,EAAE,GAAU;QACzC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,KAAK;YACL,EAAE,EAAE;gBACF,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;aACX;YACD,KAAK,EAAE;gBACL,GAAG,EAAE;oBACH,yBAAyB,EAAE,GAAG,CAAC,yBAAyB;oBACxD,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;oBAC9C,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;oBACvC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;iBACzC;aACF;SACF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;CAC+B,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../jsr/worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,qBAAqB;IACzB,KAAK,CAAC,IAAI,CAAI,IAAiD,EAAE,KAAc;QAC7E,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC;IACrB,CAAC;CACF;AAED,eAAe;IACb,KAAK,CAAC,KAAK,CAAC,KAAmB,EAAE,GAAU;QACzC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,KAAK;YACL,EAAE,EAAE;gBACF,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;aACX;YACD,KAAK,EAAE;gBACL,GAAG,EAAE;oBACH,yBAAyB,EAAE,GAAG,CAAC,yBAAyB;oBACxD,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;oBAC9C,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;oBACvC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;oBACxC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;iBAC7C;aACF;SACF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,IAAI,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC9E,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;CAC+B,CAAC"}
package/wrangler.toml CHANGED
@@ -20,9 +20,17 @@ queue = "vibes-service"
20
20
  max_batch_size = 10
21
21
  max_batch_timeout = 1
22
22
 
23
+ [observability.logs]
24
+ enabled = true
25
+ invocation_logs = true
26
+
23
27
  [env.dev]
24
28
  name = "vibes-diy-v2-queue-consumer-dev"
25
29
 
30
+ [env.dev.observability.logs]
31
+ enabled = true
32
+ invocation_logs = true
33
+
26
34
  [env.dev.browser]
27
35
  binding = "BROWSER"
28
36
 
@@ -43,6 +51,10 @@ max_batch_timeout = 1
43
51
  [env.prod]
44
52
  name = "vibes-diy-v2-queue-consumer-prod"
45
53
 
54
+ [env.prod.observability.logs]
55
+ enabled = true
56
+ invocation_logs = true
57
+
46
58
  [env.prod.browser]
47
59
  binding = "BROWSER"
48
60