@frogbotai/piece-slack 0.24.0 → 0.26.0

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 (43) hide show
  1. package/dist/files.d.ts +2 -2
  2. package/dist/index.d.ts +32 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/questions/blocks.d.ts +33 -0
  7. package/dist/questions/blocks.d.ts.map +1 -0
  8. package/dist/questions/blocks.js +173 -0
  9. package/dist/questions/blocks.js.map +1 -0
  10. package/dist/questions/index.d.ts +4 -0
  11. package/dist/questions/index.d.ts.map +1 -0
  12. package/dist/questions/index.js +15 -0
  13. package/dist/questions/index.js.map +1 -0
  14. package/dist/questions/notify.d.ts +8 -0
  15. package/dist/questions/notify.d.ts.map +1 -0
  16. package/dist/questions/notify.js +15 -0
  17. package/dist/questions/notify.js.map +1 -0
  18. package/dist/questions/parse.d.ts +3 -0
  19. package/dist/questions/parse.d.ts.map +1 -0
  20. package/dist/questions/parse.js +90 -0
  21. package/dist/questions/parse.js.map +1 -0
  22. package/dist/questions/render.d.ts +4 -0
  23. package/dist/questions/render.d.ts.map +1 -0
  24. package/dist/questions/render.js +24 -0
  25. package/dist/questions/render.js.map +1 -0
  26. package/dist/questions/settled.d.ts +4 -0
  27. package/dist/questions/settled.d.ts.map +1 -0
  28. package/dist/questions/settled.js +14 -0
  29. package/dist/questions/settled.js.map +1 -0
  30. package/dist/questions/slackThread.d.ts +15 -0
  31. package/dist/questions/slackThread.d.ts.map +1 -0
  32. package/dist/questions/slackThread.js +22 -0
  33. package/dist/questions/slackThread.js.map +1 -0
  34. package/dist/questions/state.d.ts +14 -0
  35. package/dist/questions/state.d.ts.map +1 -0
  36. package/dist/questions/state.js +9 -0
  37. package/dist/questions/state.js.map +1 -0
  38. package/dist/questions/updated.d.ts +6 -0
  39. package/dist/questions/updated.d.ts.map +1 -0
  40. package/dist/questions/updated.js +57 -0
  41. package/dist/questions/updated.js.map +1 -0
  42. package/dist/webhook.d.ts +7 -7
  43. package/package.json +3 -3
package/dist/files.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import type { FrogbotRequest } from 'frogbot';
1
+ import type { FrogBotRequest } from 'frogbot';
2
2
  import { z } from 'zod';
3
3
  export declare const slackFile: z.ZodObject<{
4
4
  fileId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
5
5
  name: z.ZodOptional<z.ZodString>;
6
6
  }, z.core.$strip>;
7
- export declare function loadSlackFile(req: FrogbotRequest, value: z.output<typeof slackFile>): Promise<{
7
+ export declare function loadSlackFile(req: FrogBotRequest, value: z.output<typeof slackFile>): Promise<{
8
8
  data: Blob;
9
9
  name: string;
10
10
  }>;
package/dist/index.d.ts CHANGED
@@ -65,19 +65,19 @@ export declare const createSlack: import("frogbot").PieceFactory<{
65
65
  token: (kind?: import("./client.js").SlackToken) => string | undefined;
66
66
  workspaceId: () => Promise<string>;
67
67
  };
68
- req: import("frogbot").FrogbotRequest;
68
+ req: import("frogbot").FrogBotRequest;
69
69
  }) => Promise<import("frogbot").PieceOAuthAccount>;
70
70
  };
71
71
  readonly webhook: {
72
72
  verify: typeof verifySlackWebhook;
73
73
  handshake({ req }: {
74
- req: import("frogbot").FrogbotRequest;
74
+ req: import("frogbot").FrogBotRequest;
75
75
  options: {
76
76
  signingSecret?: string | undefined;
77
77
  };
78
78
  }): Promise<Response | null>;
79
79
  parse({ req }: {
80
- req: import("frogbot").FrogbotRequest;
80
+ req: import("frogbot").FrogBotRequest;
81
81
  }): {
82
82
  event: string;
83
83
  };
@@ -123,11 +123,39 @@ export declare const createSlack: import("frogbot").PieceFactory<{
123
123
  token: (kind?: import("./client.js").SlackToken) => string | undefined;
124
124
  workspaceId: () => Promise<string>;
125
125
  };
126
- req: import("frogbot").FrogbotRequest;
126
+ req: import("frogbot").FrogBotRequest;
127
127
  }): Promise<{
128
128
  collection: string;
129
129
  id: string | number;
130
130
  } | null>;
131
+ questions: import("frogbot/pieces").PieceChannelQuestions<{
132
+ request: (path: string, body?: Record<string, unknown>, tokenKind?: import("./client.js").SlackToken) => Promise<{
133
+ [x: string]: unknown;
134
+ ok: true;
135
+ }>;
136
+ raw: ({ path, method, body, headers, token: tokenKind, }: {
137
+ path: string;
138
+ method?: string;
139
+ body?: BodyInit | Record<string, unknown>;
140
+ headers?: HeadersInit;
141
+ token?: import("./client.js").SlackToken;
142
+ }) => Promise<{
143
+ status: number;
144
+ headers: {
145
+ [k: string]: string;
146
+ };
147
+ body: any;
148
+ }>;
149
+ paginate: ({ path, body, item, token: tokenKind, limit, }: {
150
+ path: string;
151
+ body?: Record<string, unknown>;
152
+ item: string;
153
+ token?: import("./client.js").SlackToken;
154
+ limit?: number;
155
+ }) => Promise<Record<string, unknown>[]>;
156
+ token: (kind?: import("./client.js").SlackToken) => string | undefined;
157
+ workspaceId: () => Promise<string>;
158
+ }>;
131
159
  };
132
160
  readonly actions: (import("frogbot").PieceActionDefinition<z.ZodObject<{
133
161
  text: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAClE,OAAO,EAA2B,WAAW,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAqC,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAErF,eAAO,MAAM,gBAAgB,UAA4C,CAAC;AAC1E,eAAO,MAAM,iBAAiB,UAA+C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,CAAC;AA2CvB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAFa,CAAC;wBAEtC,CADA;2BAEQ,CAAA;yBACO,CAAC;;;;;;;;;;wBA6CH,CAAC;;yBACO,CAAC;yBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAlDT,CAAC;wBAEtC,CADA;2BAEQ,CAAA;yBACO,CAAC;;;;;;;;;;wBA6CH,CAAC;;yBACO,CAAC;yBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAlDT,CAAC;gBAEtC,CADA;mBAEQ,CAAA;iBACO,CAAC;;;;;;;;;;gBA6CH,CAAC;;iBACO,CAAC;iBAAuB,CAAC;;;;;EAgB5C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAClE,OAAO,EAA2B,WAAW,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAqC,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAErF,eAAO,MAAM,gBAAgB,UAA4C,CAAC;AAC1E,eAAO,MAAM,iBAAiB,UAA+C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,CAAC;AA2CvB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAJF,CAAC;wBAErB,CAAA;2BAAiD,CAAC;yBAElC,CAAC;;;;;;;;;;wBA6CQ,CAAA;;yBAEd,CAAC;yBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAnDhB,CAAC;wBAErB,CAAA;2BAAiD,CAAC;yBAElC,CAAC;;;;;;;;;;wBA6CQ,CAAA;;yBAEd,CAAC;yBAAuB,CAAC;;;;;;;;;;;;;;;;;sBAnDhB,CAAC;oBAErB,CAAA;uBAAiD,CAAC;qBAElC,CAAC;;;;;;;;;;oBA6CQ,CAAA;;qBAEd,CAAC;qBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;;;;;;;;;;;;;;kBAnDhB,CAAC;gBAErB,CAAA;mBAAiD,CAAC;iBAElC,CAAC;;;;;;;;;;gBA6CQ,CAAA;;iBAEd,CAAC;iBAAuB,CAAC;;;;;EAkBpC,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { definePiece, } from 'frogbot/pieces';
3
3
  import { slackActions } from './actions.js';
4
4
  import { createSlackClient } from './client.js';
5
5
  import { slackAuth, slackOptions, slackScopes } from './config.js';
6
+ import { slackQuestions } from './questions/index.js';
6
7
  import { slackTriggers } from './triggers.js';
7
8
  import { parseSlackWebhook, slackHandshake, verifySlackWebhook } from './webhook.js';
8
9
  export const slackActionNames = slackActions.map((action) => action.slug);
@@ -94,6 +95,7 @@ export const createSlack = definePiece({
94
95
  const match = result.docs[0];
95
96
  return match ? { ...match, collection: payloadConfig.admin.user } : null;
96
97
  },
98
+ questions: slackQuestions,
97
99
  },
98
100
  actions: slackActions,
99
101
  triggers: slackTriggers,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ChannelQuestionCall, QuestionInput } from 'frogbot/pieces';
2
+ export declare const QUESTION_PREFIX = "frogbot:question";
3
+ export declare const CUSTOM_ANSWER_CALLBACK_ID = "frogbot:question:custom";
4
+ export declare const CUSTOM_ANSWER_ACTION_ID = "answer";
5
+ export type SlackBlock = Record<string, unknown>;
6
+ export declare const actionIds: {
7
+ choose: (call: ChannelQuestionCall, q: number) => string;
8
+ custom: (call: ChannelQuestionCall, q: number) => string;
9
+ dismiss: (call: ChannelQuestionCall) => string;
10
+ submit: (call: ChannelQuestionCall) => string;
11
+ };
12
+ export declare const blockIds: {
13
+ question: (call: ChannelQuestionCall, q: number) => string;
14
+ custom: (call: ChannelQuestionCall, q: number) => string;
15
+ };
16
+ export declare function isQuickQuestion(input: QuestionInput): boolean;
17
+ export declare function questionBlocks(call: ChannelQuestionCall): SlackBlock[];
18
+ export declare function settledBlocks({ actorId, answers, call, }: {
19
+ actorId?: string;
20
+ answers?: Array<{
21
+ selected: string[];
22
+ custom?: string;
23
+ }>;
24
+ call: ChannelQuestionCall;
25
+ }): SlackBlock[];
26
+ export declare function fallbackText(input: QuestionInput): string;
27
+ export declare function customAnswerView({ call, initialValue, metadata, q, }: {
28
+ call: ChannelQuestionCall;
29
+ initialValue?: string;
30
+ metadata: string;
31
+ q: number;
32
+ }): SlackBlock;
33
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/questions/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEzE,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,yBAAyB,4BAA8B,CAAC;AACrE,eAAO,MAAM,uBAAuB,WAAW,CAAC;AAUhD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,eAAO,MAAM,SAAS;mBACL,mBAAmB,KAAK,MAAM;mBAE9B,mBAAmB,KAAK,MAAM;oBAE7B,mBAAmB;mBACpB,mBAAmB;CACnC,CAAC;AAEF,eAAO,MAAM,QAAQ;qBACF,mBAAmB,KAAK,MAAM;mBAChC,mBAAmB,KAAK,MAAM;CAE9C,CAAC;AAEF,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE7D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,EAAE,CAEtE;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,IAAI,GACL,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,IAAI,EAAE,mBAAmB,CAAC;CAC3B,GAAG,UAAU,EAAE,CAmBf;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAIzD;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,CAAC,GACF,EAAE;IACD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,UAAU,CA2Bb"}
@@ -0,0 +1,173 @@
1
+ export const QUESTION_PREFIX = 'frogbot:question';
2
+ export const CUSTOM_ANSWER_CALLBACK_ID = `${QUESTION_PREFIX}:custom`;
3
+ export const CUSTOM_ANSWER_ACTION_ID = 'answer';
4
+ const BUTTON_OPTIONS = 5;
5
+ const RADIO_OPTIONS = 10;
6
+ const SELECT_OPTIONS = 100;
7
+ const OPTION_TEXT = 75;
8
+ const MODAL_TITLE = 24;
9
+ export const actionIds = {
10
+ choose: (call, q) => `${QUESTION_PREFIX}:choose:${call.toolCallId}:${q}`,
11
+ custom: (call, q) => `${QUESTION_PREFIX}:custom:${call.toolCallId}:${q}`,
12
+ dismiss: (call) => `${QUESTION_PREFIX}:dismiss:${call.toolCallId}`,
13
+ submit: (call) => `${QUESTION_PREFIX}:submit:${call.toolCallId}`,
14
+ };
15
+ export const blockIds = {
16
+ question: (call, q) => `${QUESTION_PREFIX}:${call.toolCallId}:${q}`,
17
+ custom: (call, q) => `${QUESTION_PREFIX}:custom:${call.toolCallId}:${q}`,
18
+ };
19
+ export function isQuickQuestion(input) {
20
+ return input.questions.length === 1 && !input.questions[0].multiple;
21
+ }
22
+ export function questionBlocks(call) {
23
+ return isQuickQuestion(call.input) ? quickBlocks(call) : formBlocks(call);
24
+ }
25
+ export function settledBlocks({ actorId, answers, call, }) {
26
+ const blocks = call.input.questions.map((item, q) => {
27
+ const answer = answers?.[q];
28
+ const lines = [prompt(item)];
29
+ if (answer) {
30
+ const values = [...answer.selected, ...(answer.custom ? [`“${answer.custom}”`] : [])];
31
+ lines.push(`:white_check_mark: *${escape(values.join(', '))}*`);
32
+ }
33
+ return section(lines.join('\n'));
34
+ });
35
+ const verb = answers ? 'Answered' : 'Dismissed';
36
+ if (!answers)
37
+ blocks.push(section(':no_entry_sign: *Dismissed*'));
38
+ return [...blocks, context(actorId ? `${verb} by <@${actorId}>` : verb)];
39
+ }
40
+ export function fallbackText(input) {
41
+ return input.questions
42
+ .map(({ header, question }) => `${escape(header)}: ${escape(question)}`)
43
+ .join('\n');
44
+ }
45
+ export function customAnswerView({ call, initialValue, metadata, q, }) {
46
+ const item = call.input.questions[q];
47
+ const quick = isQuickQuestion(call.input);
48
+ return {
49
+ type: 'modal',
50
+ callback_id: CUSTOM_ANSWER_CALLBACK_ID,
51
+ title: plain(truncate(item.header, MODAL_TITLE)),
52
+ submit: plain(quick ? 'Submit' : 'Save'),
53
+ close: plain('Cancel'),
54
+ private_metadata: JSON.stringify({ m: metadata }),
55
+ blocks: [
56
+ section(prompt(item)),
57
+ {
58
+ type: 'input',
59
+ block_id: blockIds.custom(call, q),
60
+ optional: !quick,
61
+ label: plain('Your answer'),
62
+ element: {
63
+ type: 'plain_text_input',
64
+ action_id: CUSTOM_ANSWER_ACTION_ID,
65
+ multiline: true,
66
+ ...(initialValue ? { initial_value: initialValue } : {}),
67
+ },
68
+ },
69
+ ],
70
+ };
71
+ }
72
+ function quickBlocks(call) {
73
+ const item = call.input.questions[0];
74
+ const buttons = item.options.length <= BUTTON_OPTIONS;
75
+ const descriptions = buttons
76
+ ? item.options.flatMap(({ label, description }) => description ? [`• *${escape(label)}* — ${escape(description)}`] : [])
77
+ : [];
78
+ const controls = buttons
79
+ ? item.options.map((option, index) => ({
80
+ type: 'button',
81
+ action_id: `${actionIds.choose(call, 0)}:${index}`,
82
+ text: plain(truncate(option.label, OPTION_TEXT)),
83
+ value: String(index),
84
+ }))
85
+ : [choiceElement({ call, item, q: 0 })];
86
+ return [
87
+ section([prompt(item), ...descriptions].join('\n')),
88
+ {
89
+ type: 'actions',
90
+ elements: [
91
+ ...controls,
92
+ ...(item.custom
93
+ ? [button({ actionId: actionIds.custom(call, 0), text: 'Type your answer' })]
94
+ : []),
95
+ button({ actionId: actionIds.dismiss(call), text: 'Dismiss', style: 'danger' }),
96
+ ],
97
+ },
98
+ ];
99
+ }
100
+ function formBlocks(call) {
101
+ const questions = call.input.questions.flatMap((item, q) => [
102
+ section(prompt(item)),
103
+ {
104
+ type: 'actions',
105
+ block_id: blockIds.question(call, q),
106
+ elements: [
107
+ choiceElement({ call, item, q }),
108
+ ...(item.custom
109
+ ? [button({ actionId: actionIds.custom(call, q), text: 'Type an answer' })]
110
+ : []),
111
+ ],
112
+ },
113
+ ]);
114
+ return [
115
+ ...questions,
116
+ {
117
+ type: 'actions',
118
+ elements: [
119
+ button({ actionId: actionIds.submit(call), text: 'Submit', style: 'primary' }),
120
+ button({ actionId: actionIds.dismiss(call), text: 'Dismiss', style: 'danger' }),
121
+ ],
122
+ },
123
+ ];
124
+ }
125
+ function choiceElement({ call, item, q, }) {
126
+ const options = item.options.map(({ label, description }, index) => ({
127
+ text: plain(truncate(label, OPTION_TEXT)),
128
+ value: String(index),
129
+ ...(description ? { description: plain(truncate(description, OPTION_TEXT)) } : {}),
130
+ }));
131
+ const actionId = actionIds.choose(call, q);
132
+ if (options.length <= RADIO_OPTIONS) {
133
+ return { type: item.multiple ? 'checkboxes' : 'radio_buttons', action_id: actionId, options };
134
+ }
135
+ return {
136
+ type: item.multiple ? 'multi_static_select' : 'static_select',
137
+ action_id: actionId,
138
+ placeholder: plain(item.multiple ? 'Choose options' : 'Choose an option'),
139
+ ...(options.length <= SELECT_OPTIONS
140
+ ? { options }
141
+ : {
142
+ option_groups: chunk(options, SELECT_OPTIONS).map((group, index) => ({
143
+ label: plain(`Options ${index * SELECT_OPTIONS + 1}–${index * SELECT_OPTIONS + group.length}`),
144
+ options: group,
145
+ })),
146
+ }),
147
+ };
148
+ }
149
+ function prompt({ header, question }) {
150
+ return `*${escape(header)}*\n${escape(question)}`;
151
+ }
152
+ function button({ actionId, style, text, }) {
153
+ return { type: 'button', action_id: actionId, text: plain(text), ...(style ? { style } : {}) };
154
+ }
155
+ function section(text) {
156
+ return { type: 'section', text: { type: 'mrkdwn', text: truncate(text, 3000) } };
157
+ }
158
+ function context(text) {
159
+ return { type: 'context', elements: [{ type: 'mrkdwn', text }] };
160
+ }
161
+ function plain(text) {
162
+ return { type: 'plain_text', text, emoji: true };
163
+ }
164
+ function escape(text) {
165
+ return text.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
166
+ }
167
+ function truncate(text, limit) {
168
+ return text.length > limit ? `${text.slice(0, limit - 1)}…` : text;
169
+ }
170
+ function chunk(values, size) {
171
+ return Array.from({ length: Math.ceil(values.length / size) }, (_, index) => values.slice(index * size, (index + 1) * size));
172
+ }
173
+ //# sourceMappingURL=blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/questions/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PieceChannelQuestions } from 'frogbot/pieces';
2
+ import type { SlackClient } from '../client.js';
3
+ export declare const slackQuestions: PieceChannelQuestions<SlackClient>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/questions/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAOhD,eAAO,MAAM,cAAc,EAAE,qBAAqB,CAAC,WAAW,CAQ7D,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { denySlackQuestion, rejectSlackQuestion, staleSlackQuestion } from './notify.js';
2
+ import { parseSlackQuestion } from './parse.js';
3
+ import { renderSlackQuestion } from './render.js';
4
+ import { settleSlackQuestion } from './settled.js';
5
+ import { updateSlackQuestion } from './updated.js';
6
+ export const slackQuestions = {
7
+ render: renderSlackQuestion,
8
+ parse: parseSlackQuestion,
9
+ settled: settleSlackQuestion,
10
+ updated: updateSlackQuestion,
11
+ rejected: rejectSlackQuestion,
12
+ denied: denySlackQuestion,
13
+ stale: staleSlackQuestion,
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/questions/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAuC;IAChE,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE,kBAAkB;CAC1B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { PieceChannelQuestions } from 'frogbot/pieces';
2
+ import type { SlackClient } from '../client.js';
3
+ type SlackQuestions = Required<PieceChannelQuestions<SlackClient>>;
4
+ export declare const denySlackQuestion: SlackQuestions['denied'];
5
+ export declare const rejectSlackQuestion: SlackQuestions['rejected'];
6
+ export declare const staleSlackQuestion: SlackQuestions['stale'];
7
+ export {};
8
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/questions/notify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,KAAK,cAAc,GAAG,QAAQ,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC;AAEnE,eAAO,MAAM,iBAAiB,EAAE,cAAc,CAAC,QAAQ,CAMnD,CAAC;AAEL,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,UAAU,CAKoB,CAAC;AAEhF,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,OAAO,CAMnD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { postEphemeral } from './slackThread.js';
2
+ export const denySlackQuestion = ({ client, interaction, thread }) => postEphemeral({
3
+ client,
4
+ interaction,
5
+ text: "You don't have access to answer this question.",
6
+ threadId: thread.id,
7
+ });
8
+ export const rejectSlackQuestion = ({ client, interaction, reason, thread, }) => postEphemeral({ client, interaction, text: reason, threadId: thread.id });
9
+ export const staleSlackQuestion = ({ client, interaction, thread }) => postEphemeral({
10
+ client,
11
+ interaction,
12
+ text: 'This question was already answered.',
13
+ threadId: thread.id,
14
+ });
15
+ //# sourceMappingURL=notify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/questions/notify.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,CAAC,MAAM,iBAAiB,GAA6B,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7F,aAAa,CAAC;IACZ,MAAM;IACN,WAAW;IACX,IAAI,EAAE,gDAAgD;IACtD,QAAQ,EAAE,MAAM,CAAC,EAAE;CACpB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,mBAAmB,GAA+B,CAAC,EAC9D,MAAM,EACN,WAAW,EACX,MAAM,EACN,MAAM,GACP,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,kBAAkB,GAA4B,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7F,aAAa,CAAC;IACZ,MAAM;IACN,WAAW;IACX,IAAI,EAAE,qCAAqC;IAC3C,QAAQ,EAAE,MAAM,CAAC,EAAE;CACpB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PieceChannelQuestions } from 'frogbot/pieces';
2
+ export declare const parseSlackQuestion: PieceChannelQuestions['parse'];
3
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/questions/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,gBAAgB,CAAC;AAiCxB,eAAO,MAAM,kBAAkB,EAAE,qBAAqB,CAAC,OAAO,CAuB7D,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { actionIds, blockIds, CUSTOM_ANSWER_ACTION_ID, CUSTOM_ANSWER_CALLBACK_ID, isQuickQuestion, } from './blocks.js';
2
+ import { customAnswers, withCustomAnswer } from './state.js';
3
+ export const parseSlackQuestion = ({ call, interaction, question, }) => {
4
+ if (interaction.type === 'message')
5
+ return { kind: 'ignore' };
6
+ const state = question.state;
7
+ return interaction.type === 'action'
8
+ ? parseAction({
9
+ actionId: interaction.event.actionId,
10
+ call,
11
+ payload: interaction.event.raw,
12
+ state,
13
+ userId: interaction.event.user.userId,
14
+ })
15
+ : parseCustomAnswer({
16
+ call,
17
+ payload: interaction.event.raw,
18
+ state,
19
+ userId: interaction.event.user.userId,
20
+ });
21
+ };
22
+ function parseAction({ actionId, call, payload, state, userId, }) {
23
+ if (actionId === actionIds.dismiss(call))
24
+ return { kind: 'dismiss' };
25
+ if (actionId === actionIds.submit(call))
26
+ return parseSubmit({ call, payload, state, userId });
27
+ const custom = call.input.questions.findIndex((_, q) => actionId === actionIds.custom(call, q));
28
+ if (custom !== -1)
29
+ return { kind: 'partial' };
30
+ if (!isQuickQuestion(call.input))
31
+ return { kind: 'ignore' };
32
+ const choose = actionIds.choose(call, 0);
33
+ if (actionId !== choose && !actionId.startsWith(`${choose}:`))
34
+ return { kind: 'ignore' };
35
+ const action = payload.actions?.find(({ action_id }) => action_id === actionId);
36
+ const item = call.input.questions[0];
37
+ const option = item.options[Number(action?.selected_option?.value ?? action?.value)];
38
+ if (!option)
39
+ return { kind: 'ignore' };
40
+ return {
41
+ kind: 'answer',
42
+ output: { answers: [{ header: item.header, selected: [option.label] }] },
43
+ };
44
+ }
45
+ function parseSubmit({ call, payload, state, userId, }) {
46
+ const values = payload.state?.values;
47
+ if (!values) {
48
+ return { kind: 'rejected', reason: 'Slack did not send your selections. Try again.' };
49
+ }
50
+ const typed = customAnswers({ state, userId });
51
+ const answers = call.input.questions.map((item, q) => {
52
+ const element = values[blockIds.question(call, q)]?.[actionIds.choose(call, q)];
53
+ const chosen = element?.selected_options ?? (element?.selected_option ? [element.selected_option] : []);
54
+ const custom = item.custom ? typed[q]?.trim() : undefined;
55
+ const selected = chosen
56
+ .map(({ value }) => Number(value))
57
+ .filter((index) => item.options[index] !== undefined)
58
+ .sort((a, b) => a - b)
59
+ .map((index) => item.options[index].label);
60
+ return {
61
+ header: item.header,
62
+ selected: custom && !item.multiple ? [] : selected,
63
+ ...(custom ? { custom } : {}),
64
+ };
65
+ });
66
+ const missing = answers.find(({ custom, selected }) => selected.length === 0 && !custom);
67
+ if (missing)
68
+ return { kind: 'rejected', reason: `Answer “${missing.header}” before submitting.` };
69
+ return { kind: 'answer', output: { answers } };
70
+ }
71
+ function parseCustomAnswer({ call, payload, state, userId, }) {
72
+ if (payload.view?.callback_id !== CUSTOM_ANSWER_CALLBACK_ID)
73
+ return { kind: 'ignore' };
74
+ const values = payload.view.state?.values ?? {};
75
+ const q = call.input.questions.findIndex((_, index) => blockIds.custom(call, index) in values);
76
+ if (q === -1)
77
+ return { kind: 'ignore' };
78
+ const text = values[blockIds.custom(call, q)]?.[CUSTOM_ANSWER_ACTION_ID]?.value?.trim() ?? '';
79
+ if (!isQuickQuestion(call.input)) {
80
+ return { kind: 'partial', state: withCustomAnswer({ q, state, text, userId }) };
81
+ }
82
+ if (!text)
83
+ return { kind: 'rejected', reason: 'Type an answer before submitting.' };
84
+ const item = call.input.questions[0];
85
+ return {
86
+ kind: 'answer',
87
+ output: { answers: [{ header: item.header, selected: [], custom: text }] },
88
+ };
89
+ }
90
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/questions/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PieceChannelQuestions } from 'frogbot/pieces';
2
+ import type { SlackClient } from '../client.js';
3
+ export declare const renderSlackQuestion: PieceChannelQuestions<SlackClient>['render'];
4
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/questions/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,eAAO,MAAM,mBAAmB,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC,QAAQ,CA4B5E,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { fallbackText, questionBlocks } from './blocks.js';
2
+ import { slackPostedAt, slackThread } from './slackThread.js';
3
+ export const renderSlackQuestion = async ({ calls, client, thread, }) => {
4
+ const [call] = calls;
5
+ if (!call)
6
+ return [];
7
+ const { channel, threadTs } = slackThread(thread.id);
8
+ const response = await client.request('chat.postMessage', {
9
+ channel,
10
+ text: fallbackText(call.input),
11
+ blocks: questionBlocks(call),
12
+ ...(threadTs ? { thread_ts: threadTs } : {}),
13
+ });
14
+ if (typeof response.ts !== 'string') {
15
+ throw new Error('Slack chat.postMessage did not return a message timestamp.');
16
+ }
17
+ return [
18
+ {
19
+ calls: [call.toolCallId],
20
+ messages: [{ id: response.ts, postedAt: slackPostedAt(response.ts) }],
21
+ },
22
+ ];
23
+ };
24
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/questions/render.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAiD,KAAK,EAAE,EACtF,KAAK,EACL,MAAM,EACN,MAAM,GACP,EAAE,EAAE;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAErB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE;QACxD,OAAO;QACP,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC;QAC5B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC,CAAC;IAEH,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,OAAO;QACL;YACE,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;YACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;SACtE;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { PieceChannelQuestions } from 'frogbot/pieces';
2
+ import type { SlackClient } from '../client.js';
3
+ export declare const settleSlackQuestion: PieceChannelQuestions<SlackClient>['settled'];
4
+ //# sourceMappingURL=settled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settled.d.ts","sourceRoot":"","sources":["../../src/questions/settled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD,eAAO,MAAM,mBAAmB,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC,SAAS,CAwB7E,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { fallbackText, settledBlocks } from './blocks.js';
2
+ import { slackThread } from './slackThread.js';
3
+ export const settleSlackQuestion = async ({ actor, call, client, outcome, question, thread, }) => {
4
+ const { channel } = slackThread(thread.id);
5
+ const actorId = actor?.channel?.piece === 'slack' ? actor.channel.id : undefined;
6
+ const text = fallbackText(call.input);
7
+ const blocks = settledBlocks({
8
+ actorId,
9
+ answers: 'output' in outcome ? outcome.output.answers : undefined,
10
+ call,
11
+ });
12
+ await Promise.all(question.messages.map(({ id }) => client.request('chat.update', { channel, ts: id, text, blocks })));
13
+ };
14
+ //# sourceMappingURL=settled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settled.js","sourceRoot":"","sources":["../../src/questions/settled.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAkD,KAAK,EAAE,EACvF,KAAK,EACL,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,MAAM,GACP,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,OAAO;QACP,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACjE,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAC/B,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CACjE,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { QuestionInteraction } from 'frogbot/pieces';
2
+ import type { SlackClient } from '../client.js';
3
+ export declare function slackThread(threadId: string): {
4
+ channel: string;
5
+ threadTs?: string;
6
+ };
7
+ export declare function slackPostedAt(ts: string): string;
8
+ export declare function interactionUserId(interaction: QuestionInteraction): string;
9
+ export declare function postEphemeral({ client, interaction, text, threadId, }: {
10
+ client: SlackClient;
11
+ interaction: QuestionInteraction;
12
+ text: string;
13
+ threadId: string;
14
+ }): Promise<void>;
15
+ //# sourceMappingURL=slackThread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slackThread.d.ts","sourceRoot":"","sources":["../../src/questions/slackThread.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAIpF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAI1E;AAED,wBAAsB,aAAa,CAAC,EAClC,MAAM,EACN,WAAW,EACX,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAShB"}
@@ -0,0 +1,22 @@
1
+ export function slackThread(threadId) {
2
+ const [, channel = '', threadTs] = threadId.split(':');
3
+ return { channel, ...(threadTs ? { threadTs } : {}) };
4
+ }
5
+ export function slackPostedAt(ts) {
6
+ return new Date(Number(ts) * 1000).toISOString();
7
+ }
8
+ export function interactionUserId(interaction) {
9
+ return interaction.type === 'message'
10
+ ? interaction.message.author.userId
11
+ : interaction.event.user.userId;
12
+ }
13
+ export async function postEphemeral({ client, interaction, text, threadId, }) {
14
+ const { channel, threadTs } = slackThread(threadId);
15
+ await client.request('chat.postEphemeral', {
16
+ channel,
17
+ user: interactionUserId(interaction),
18
+ text,
19
+ ...(threadTs ? { thread_ts: threadTs } : {}),
20
+ });
21
+ }
22
+ //# sourceMappingURL=slackThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slackThread.js","sourceRoot":"","sources":["../../src/questions/slackThread.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvD,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAgC;IAChE,OAAO,WAAW,CAAC,IAAI,KAAK,SAAS;QACnC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;QACnC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,MAAM,EACN,WAAW,EACX,IAAI,EACJ,QAAQ,GAMT;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEpD,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE;QACzC,OAAO;QACP,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC;QACpC,IAAI;QACJ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type SlackQuestionState = {
2
+ custom?: Record<string, Record<string, string>>;
3
+ };
4
+ export declare function customAnswers({ state, userId, }: {
5
+ state?: SlackQuestionState;
6
+ userId: string;
7
+ }): Record<string, string>;
8
+ export declare function withCustomAnswer({ q, state, text, userId, }: {
9
+ q: number;
10
+ state?: SlackQuestionState;
11
+ text: string;
12
+ userId: string;
13
+ }): SlackQuestionState;
14
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/questions/state.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,GACP,EAAE;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,CAAC,EACD,KAAK,EACL,IAAI,EACJ,MAAM,GACP,EAAE;IACD,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,kBAAkB,CAKrB"}
@@ -0,0 +1,9 @@
1
+ export function customAnswers({ state, userId, }) {
2
+ return state?.custom?.[userId] ?? {};
3
+ }
4
+ export function withCustomAnswer({ q, state, text, userId, }) {
5
+ const { [q]: _previous, ...rest } = customAnswers({ state, userId });
6
+ const answers = text ? { ...rest, [q]: text } : rest;
7
+ return { ...state, custom: { ...state?.custom, [userId]: answers } };
8
+ }
9
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/questions/state.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,GAIP;IACC,OAAO,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,CAAC,EACD,KAAK,EACL,IAAI,EACJ,MAAM,GAMP;IACC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAErD,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;AACvE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type PieceChannelQuestions } from 'frogbot/pieces';
2
+ import type { SlackClient } from '../client.js';
3
+ type SlackQuestionUpdate = NonNullable<PieceChannelQuestions<SlackClient>['updated']>;
4
+ export declare const updateSlackQuestion: SlackQuestionUpdate;
5
+ export {};
6
+ //# sourceMappingURL=updated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updated.d.ts","sourceRoot":"","sources":["../../src/questions/updated.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,KAAK,mBAAmB,GAAG,WAAW,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAMtF,eAAO,MAAM,mBAAmB,EAAE,mBAkBjC,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { encodeQuestionModalMetadata, } from 'frogbot/pieces';
2
+ import { actionIds, customAnswerView } from './blocks.js';
3
+ import { interactionUserId, postEphemeral } from './slackThread.js';
4
+ import { customAnswers } from './state.js';
5
+ export const updateSlackQuestion = async ({ call, client, interaction, question, req, thread, }) => {
6
+ if (!interaction)
7
+ return;
8
+ try {
9
+ await respond({ call, client, interaction, question, thread });
10
+ }
11
+ catch (error) {
12
+ req.frogbot.logger.error({ err: error, piece: 'slack', toolCallId: call.toolCallId }, '[piece-slack] Could not respond to a question interaction.');
13
+ }
14
+ };
15
+ async function respond({ call, client, interaction, question, thread, }) {
16
+ if (interaction.type === 'modalSubmit') {
17
+ await postEphemeral({
18
+ client,
19
+ interaction,
20
+ text: 'Saved your typed answer. Press *Submit* when every question is answered.',
21
+ threadId: thread.id,
22
+ });
23
+ return;
24
+ }
25
+ if (interaction.type !== 'action')
26
+ return;
27
+ const { actionId, triggerId } = interaction.event;
28
+ const q = call.input.questions.findIndex((_, index) => actionId === actionIds.custom(call, index));
29
+ if (q === -1 || !triggerId)
30
+ return;
31
+ const view = customAnswerView({
32
+ call,
33
+ initialValue: customAnswers({
34
+ state: question.state,
35
+ userId: interactionUserId(interaction),
36
+ })[q],
37
+ metadata: encodeQuestionModalMetadata({
38
+ threadId: thread.id,
39
+ messageId: question.messages.at(-1).id,
40
+ }),
41
+ q,
42
+ });
43
+ try {
44
+ await client.request('views.open', { trigger_id: triggerId, view });
45
+ }
46
+ catch (error) {
47
+ if (!(error instanceof Error) || !error.message.includes('expired_trigger_id'))
48
+ throw error;
49
+ await postEphemeral({
50
+ client,
51
+ interaction,
52
+ text: 'That took too long. Press the button again to type your answer.',
53
+ threadId: thread.id,
54
+ });
55
+ }
56
+ }
57
+ //# sourceMappingURL=updated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updated.js","sourceRoot":"","sources":["../../src/questions/updated.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,GAG5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQ3C,MAAM,CAAC,MAAM,mBAAmB,GAAwB,KAAK,EAAE,EAC7D,IAAI,EACJ,MAAM,EACN,WAAW,EACX,QAAQ,EACR,GAAG,EACH,MAAM,GACP,EAAE,EAAE;IACH,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACtB,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAC3D,4DAA4D,CAC7D,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,EACrB,IAAI,EACJ,MAAM,EACN,WAAW,EACX,QAAQ,EACR,MAAM,GACmB;IACzB,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACvC,MAAM,aAAa,CAAC;YAClB,MAAM;YACN,WAAW;YACX,IAAI,EAAE,0EAA0E;YAChF,QAAQ,EAAE,MAAM,CAAC,EAAE;SACpB,CAAC,CAAC;QAEH,OAAO;IACT,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO;IAE1C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC;IAClD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CACtC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CACzD,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO;IAEnC,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,IAAI;QACJ,YAAY,EAAE,aAAa,CAAC;YAC1B,KAAK,EAAE,QAAQ,CAAC,KAAuC;YACvD,MAAM,EAAE,iBAAiB,CAAC,WAAW,CAAC;SACvC,CAAC,CAAC,CAAC,CAAC;QACL,QAAQ,EAAE,2BAA2B,CAAC;YACpC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE;SACxC,CAAC;QACF,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAAE,MAAM,KAAK,CAAC;QAE5F,MAAM,aAAa,CAAC;YAClB,MAAM;YACN,WAAW;YACX,IAAI,EAAE,iEAAiE;YACvE,QAAQ,EAAE,MAAM,CAAC,EAAE;SACpB,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
package/dist/webhook.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import type { FrogbotRequest } from 'frogbot';
2
- export declare function slackEvent(req: FrogbotRequest): Record<string, unknown> | undefined;
3
- export declare function slackWorkspace(req: FrogbotRequest): string | undefined;
4
- export declare function slackEventType(req: FrogbotRequest): string;
1
+ import type { FrogBotRequest } from 'frogbot';
2
+ export declare function slackEvent(req: FrogBotRequest): Record<string, unknown> | undefined;
3
+ export declare function slackWorkspace(req: FrogBotRequest): string | undefined;
4
+ export declare function slackEventType(req: FrogBotRequest): string;
5
5
  export declare function verifySlackWebhook({ req, options, }: {
6
- req: FrogbotRequest;
6
+ req: FrogBotRequest;
7
7
  options: {
8
8
  signingSecret?: string;
9
9
  };
10
10
  }): Promise<boolean>;
11
- export declare function slackHandshake(req: FrogbotRequest): Response | null;
12
- export declare function parseSlackWebhook(req: FrogbotRequest): {
11
+ export declare function slackHandshake(req: FrogBotRequest): Response | null;
12
+ export declare function parseSlackWebhook(req: FrogBotRequest): {
13
13
  event: string;
14
14
  };
15
15
  //# sourceMappingURL=webhook.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frogbotai/piece-slack",
3
- "version": "0.24.0",
3
+ "version": "0.26.0",
4
4
  "description": "slack tools for FrogBot.",
5
5
  "license": "MIT",
6
6
  "author": "Colby Gilbert",
@@ -24,11 +24,11 @@
24
24
  "zod": "^4.3.6"
25
25
  },
26
26
  "peerDependencies": {
27
- "frogbot": "0.24.0"
27
+ "frogbot": "0.26.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "typescript": "5.6.2",
31
- "frogbot": "0.24.0"
31
+ "frogbot": "0.26.0"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"