@frogbotai/piece-linear 0.29.0 → 0.30.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 (59) hide show
  1. package/dist/actions/createComment.js +23 -7
  2. package/dist/actions/createComment.js.map +1 -1
  3. package/dist/actions/createIssue.js +12 -6
  4. package/dist/actions/createIssue.js.map +1 -1
  5. package/dist/actions/createProject.js +20 -7
  6. package/dist/actions/createProject.js.map +1 -1
  7. package/dist/actions/options.js +35 -18
  8. package/dist/actions/options.js.map +1 -1
  9. package/dist/actions/rawGraphqlQuery.js +4 -3
  10. package/dist/actions/rawGraphqlQuery.js.map +1 -1
  11. package/dist/actions/updateIssue.js +12 -6
  12. package/dist/actions/updateIssue.js.map +1 -1
  13. package/dist/actions/updateProject.js +21 -7
  14. package/dist/actions/updateProject.js.map +1 -1
  15. package/dist/adapter.js +6 -3
  16. package/dist/adapter.js.map +1 -1
  17. package/dist/client.js +6 -3
  18. package/dist/client.js.map +1 -1
  19. package/dist/config.js +29 -17
  20. package/dist/config.js.map +1 -1
  21. package/dist/define.js +1 -0
  22. package/dist/define.js.map +1 -1
  23. package/dist/index.js +55 -23
  24. package/dist/index.js.map +1 -1
  25. package/dist/questions/elicitation.js +45 -34
  26. package/dist/questions/elicitation.js.map +1 -1
  27. package/dist/questions/index.js +2 -1
  28. package/dist/questions/index.js.map +1 -1
  29. package/dist/questions/linearThread.js +8 -6
  30. package/dist/questions/linearThread.js.map +1 -1
  31. package/dist/questions/notify.js +23 -10
  32. package/dist/questions/notify.js.map +1 -1
  33. package/dist/questions/parse.js +118 -61
  34. package/dist/questions/parse.js.map +1 -1
  35. package/dist/questions/render.js +23 -5
  36. package/dist/questions/render.js.map +1 -1
  37. package/dist/questions/settled.js +4 -4
  38. package/dist/questions/settled.js.map +1 -1
  39. package/dist/questions/supports.js +2 -1
  40. package/dist/questions/supports.js.map +1 -1
  41. package/dist/triggers/commentCreated.js +3 -6
  42. package/dist/triggers/commentCreated.js.map +1 -1
  43. package/dist/triggers/issueCreated.js +4 -1
  44. package/dist/triggers/issueCreated.js.map +1 -1
  45. package/dist/triggers/issueRemoved.js +4 -1
  46. package/dist/triggers/issueRemoved.js.map +1 -1
  47. package/dist/triggers/issueUpdated.js +4 -1
  48. package/dist/triggers/issueUpdated.js.map +1 -1
  49. package/dist/triggers/projectCreated.js +2 -1
  50. package/dist/triggers/projectCreated.js.map +1 -1
  51. package/dist/triggers/projectRemoved.js +2 -1
  52. package/dist/triggers/projectRemoved.js.map +1 -1
  53. package/dist/triggers/projectUpdated.js +3 -4
  54. package/dist/triggers/projectUpdated.js.map +1 -1
  55. package/dist/triggers/webhook.js +24 -24
  56. package/dist/triggers/webhook.js.map +1 -1
  57. package/dist/webhook.js +11 -17
  58. package/dist/webhook.js.map +1 -1
  59. package/package.json +4 -4
@@ -4,106 +4,163 @@ const NUMBER_LIST = /^\d+(?:[\s,]+\d+)+$/;
4
4
  const OPTION_NUMBER = /^(\d+)[.)]?$/;
5
5
  const LIST_MARKER = /^(?:[-*+]|\d+[.)])\s+/;
6
6
  const MARKDOWN_ESCAPE = /\\([!-/:-@[-`{-~])/g;
7
- export const parseLinearQuestion = ({ call, interaction, question, settled, }) => {
8
- if (interaction.type !== 'message')
9
- return { kind: 'ignore' };
10
- if (stopRequested(interaction))
11
- return { kind: 'dismiss' };
7
+ export const parseLinearQuestion = ({ call, interaction, question, settled })=>{
8
+ if (interaction.type !== 'message') return {
9
+ kind: 'ignore'
10
+ };
11
+ if (stopRequested(interaction)) return {
12
+ kind: 'dismiss'
13
+ };
12
14
  const { metadata, text } = interaction.message;
13
- const result = parseReply({ input: call.input, text });
15
+ const result = parseReply({
16
+ input: call.input,
17
+ text
18
+ });
14
19
  const early = new Date(metadata.dateSent).getTime() < new Date(question.messages.at(-1).postedAt).getTime();
15
20
  if (settled || early) {
16
- return result.kind === 'answer' && result.explicit ? { kind: 'stale' } : { kind: 'ignore' };
21
+ return result.kind === 'answer' && result.explicit ? {
22
+ kind: 'stale'
23
+ } : {
24
+ kind: 'ignore'
25
+ };
17
26
  }
18
- return result.kind === 'answer' ? { kind: 'answer', output: result.output } : result;
27
+ return result.kind === 'answer' ? {
28
+ kind: 'answer',
29
+ output: result.output
30
+ } : result;
19
31
  };
20
32
  function parseReply({ input, text }) {
21
33
  const { questions } = input;
22
34
  const numbered = !isSelectQuestion(input);
23
- const lines = questions.length === 1
24
- ? [text.trim()]
25
- : text
26
- .split(/\r?\n/)
27
- .map((line) => line.trim())
28
- .filter(Boolean);
35
+ const lines = questions.length === 1 ? [
36
+ text.trim()
37
+ ] : text.split(/\r?\n/).map((line)=>line.trim()).filter(Boolean);
29
38
  if (lines.length !== questions.length) {
30
39
  return {
31
40
  kind: 'rejected',
32
- reason: `Answer each of the ${questions.length} questions on its own line, in the order shown.`,
41
+ reason: `Answer each of the ${questions.length} questions on its own line, in the order shown.`
33
42
  };
34
43
  }
35
- const results = questions.map((item, index) => parseLine({ item, line: lines[index], numbered, unmarkCustom: questions.length > 1 }));
36
- const failure = results.find((result) => 'reason' in result);
37
- if (failure)
38
- return { kind: 'rejected', reason: failure.reason };
39
- const answers = results.map((result) => result.answer);
44
+ const results = questions.map((item, index)=>parseLine({
45
+ item,
46
+ line: lines[index],
47
+ numbered,
48
+ unmarkCustom: questions.length > 1
49
+ }));
50
+ const failure = results.find((result)=>'reason' in result);
51
+ if (failure) return {
52
+ kind: 'rejected',
53
+ reason: failure.reason
54
+ };
55
+ const answers = results.map((result)=>result.answer);
40
56
  return {
41
57
  kind: 'answer',
42
- output: { answers },
43
- explicit: answers.every(({ custom }) => custom === undefined),
58
+ output: {
59
+ answers
60
+ },
61
+ explicit: answers.every(({ custom })=>custom === undefined)
44
62
  };
45
63
  }
46
- function parseLine({ item, line, numbered, unmarkCustom, }) {
64
+ function parseLine({ item, line, numbered, unmarkCustom }) {
47
65
  const unmarked = line.replace(LIST_MARKER, '');
48
- const selected = line
49
- ? (selectOptions({ item, line, numbered }) ??
50
- (unmarked !== line ? selectOptions({ item, line: unmarked, numbered }) : undefined))
51
- : undefined;
52
- if (selected)
53
- return { answer: { header: item.header, selected } };
66
+ const selected = line ? selectOptions({
67
+ item,
68
+ line,
69
+ numbered
70
+ }) ?? (unmarked !== line ? selectOptions({
71
+ item,
72
+ line: unmarked,
73
+ numbered
74
+ }) : undefined) : undefined;
75
+ if (selected) return {
76
+ answer: {
77
+ header: item.header,
78
+ selected
79
+ }
80
+ };
54
81
  const custom = unmarkCustom ? unmarked : line;
55
- if (custom && item.custom)
56
- return { answer: { header: item.header, selected: [], custom } };
57
- return { reason: replyHint({ item, numbered }) };
82
+ if (custom && item.custom) return {
83
+ answer: {
84
+ header: item.header,
85
+ selected: [],
86
+ custom
87
+ }
88
+ };
89
+ return {
90
+ reason: replyHint({
91
+ item,
92
+ numbered
93
+ })
94
+ };
58
95
  }
59
- function selectOptions({ item, line, numbered, }) {
60
- const whole = optionIndex({ item, numbered, token: line });
61
- if (whole !== undefined)
62
- return [item.options[whole].label];
96
+ function selectOptions({ item, line, numbered }) {
97
+ const whole = optionIndex({
98
+ item,
99
+ numbered,
100
+ token: line
101
+ });
102
+ if (whole !== undefined) return [
103
+ item.options[whole].label
104
+ ];
63
105
  const segments = numbered && NUMBER_LIST.test(line) ? line.split(/[\s,]+/) : line.split(',');
64
- const indexes = matchSegments({ item, numbered, segments });
65
- if (!indexes?.length)
66
- return undefined;
67
- const unique = [...new Set(indexes)].sort((a, b) => a - b);
68
- if (!item.multiple && unique.length !== 1)
69
- return undefined;
70
- return unique.map((index) => item.options[index].label);
106
+ const indexes = matchSegments({
107
+ item,
108
+ numbered,
109
+ segments
110
+ });
111
+ if (!indexes?.length) return undefined;
112
+ const unique = [
113
+ ...new Set(indexes)
114
+ ].sort((a, b)=>a - b);
115
+ if (!item.multiple && unique.length !== 1) return undefined;
116
+ return unique.map((index)=>item.options[index].label);
71
117
  }
72
- function matchSegments({ item, numbered, segments, }) {
73
- const limit = 2 * Math.max(10, ...item.options.map(({ label }) => label.length));
118
+ function matchSegments({ item, numbered, segments }) {
119
+ const limit = 2 * Math.max(10, ...item.options.map(({ label })=>label.length));
74
120
  const matches = [];
75
121
  matches[segments.length] = [];
76
- for (let start = segments.length - 1; start >= 0; start--) {
122
+ for(let start = segments.length - 1; start >= 0; start--){
77
123
  if (!segments[start].trim()) {
78
124
  matches[start] = matches[start + 1];
79
125
  continue;
80
126
  }
81
- for (let end = start + 1; end <= segments.length; end++) {
127
+ for(let end = start + 1; end <= segments.length; end++){
82
128
  const token = segments.slice(start, end).join(',').trim();
83
- if (token.length > limit)
84
- break;
129
+ if (token.length > limit) break;
85
130
  const rest = matches[end];
86
- const index = rest ? optionIndex({ item, numbered, token }) : undefined;
87
- if (index !== undefined)
88
- matches[start] = [index, ...rest];
131
+ const index = rest ? optionIndex({
132
+ item,
133
+ numbered,
134
+ token
135
+ }) : undefined;
136
+ if (index !== undefined) matches[start] = [
137
+ index,
138
+ ...rest
139
+ ];
89
140
  }
90
141
  }
91
142
  return matches[0];
92
143
  }
93
- function optionIndex({ item, numbered, token, }) {
144
+ function optionIndex({ item, numbered, token }) {
94
145
  const unescaped = token.replace(MARKDOWN_ESCAPE, '$1');
95
- const label = labelIndex({ item, text: token }) ??
96
- (unescaped !== token ? labelIndex({ item, text: unescaped }) : undefined);
97
- if (label !== undefined || !numbered)
98
- return label;
146
+ const label = labelIndex({
147
+ item,
148
+ text: token
149
+ }) ?? (unescaped !== token ? labelIndex({
150
+ item,
151
+ text: unescaped
152
+ }) : undefined);
153
+ if (label !== undefined || !numbered) return label;
99
154
  const number = Number(OPTION_NUMBER.exec(token)?.[1] ?? 0);
100
155
  return number >= 1 && number <= item.options.length ? number - 1 : undefined;
101
156
  }
102
157
  function labelIndex({ item, text }) {
103
- const exact = item.options.findIndex(({ label }) => label === text);
104
- if (exact !== -1)
105
- return exact;
106
- const folded = item.options.flatMap(({ label }, index) => label.toLowerCase() === text.toLowerCase() ? [index] : []);
158
+ const exact = item.options.findIndex(({ label })=>label === text);
159
+ if (exact !== -1) return exact;
160
+ const folded = item.options.flatMap(({ label }, index)=>label.toLowerCase() === text.toLowerCase() ? [
161
+ index
162
+ ] : []);
107
163
  return folded.length === 1 ? folded[0] : undefined;
108
164
  }
165
+
109
166
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/questions/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/questions/parse.ts"],"names":["isSelectQuestion","replyHint","stopRequested","NUMBER_LIST","OPTION_NUMBER","LIST_MARKER","MARKDOWN_ESCAPE","parseLinearQuestion","call","interaction","question","settled","type","kind","metadata","text","message","result","parseReply","input","early","Date","dateSent","getTime","messages","at","postedAt","explicit","output","questions","numbered","lines","length","trim","split","map","line","filter","Boolean","reason","results","item","index","parseLine","unmarkCustom","failure","find","answers","answer","every","custom","undefined","unmarked","replace","selected","selectOptions","header","whole","optionIndex","token","options","label","segments","test","indexes","matchSegments","unique","Set","sort","a","b","multiple","limit","Math","max","matches","start","end","slice","join","rest","unescaped","labelIndex","number","Number","exec","exact","findIndex","folded","flatMap","toLowerCase"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,SAAS,QAAQ,mBAAmB;AAC/D,SAASC,aAAa,QAAQ,oBAAoB;AAWlD,MAAMC,cAAc;AACpB,MAAMC,gBAAgB;AACtB,MAAMC,cAAc;AACpB,MAAMC,kBAAkB;AAExB,OAAO,MAAMC,sBAAsD,CAAC,EAClEC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACRC,OAAO,EACR;IACC,IAAIF,YAAYG,IAAI,KAAK,WAAW,OAAO;QAAEC,MAAM;IAAS;IAE5D,IAAIX,cAAcO,cAAc,OAAO;QAAEI,MAAM;IAAU;IAEzD,MAAM,EAAEC,QAAQ,EAAEC,IAAI,EAAE,GAAGN,YAAYO,OAAO;IAC9C,MAAMC,SAASC,WAAW;QAAEC,OAAOX,KAAKW,KAAK;QAAEJ;IAAK;IAEpD,MAAMK,QACJ,IAAIC,KAAKP,SAASQ,QAAQ,EAAEC,OAAO,KAAK,IAAIF,KAAKX,SAASc,QAAQ,CAACC,EAAE,CAAC,CAAC,GAAIC,QAAQ,EAAEH,OAAO;IAE9F,IAAIZ,WAAWS,OAAO;QACpB,OAAOH,OAAOJ,IAAI,KAAK,YAAYI,OAAOU,QAAQ,GAAG;YAAEd,MAAM;QAAQ,IAAI;YAAEA,MAAM;QAAS;IAC5F;IAEA,OAAOI,OAAOJ,IAAI,KAAK,WAAW;QAAEA,MAAM;QAAUe,QAAQX,OAAOW,MAAM;IAAC,IAAIX;AAChF,EAAE;AAEF,SAASC,WAAW,EAAEC,KAAK,EAAEJ,IAAI,EAA0C;IACzE,MAAM,EAAEc,SAAS,EAAE,GAAGV;IACtB,MAAMW,WAAW,CAAC9B,iBAAiBmB;IAEnC,MAAMY,QACJF,UAAUG,MAAM,KAAK,IACjB;QAACjB,KAAKkB,IAAI;KAAG,GACblB,KACGmB,KAAK,CAAC,SACNC,GAAG,CAAC,CAACC,OAASA,KAAKH,IAAI,IACvBI,MAAM,CAACC;IAEhB,IAAIP,MAAMC,MAAM,KAAKH,UAAUG,MAAM,EAAE;QACrC,OAAO;YACLnB,MAAM;YACN0B,QAAQ,CAAC,mBAAmB,EAAEV,UAAUG,MAAM,CAAC,+CAA+C,CAAC;QACjG;IACF;IAEA,MAAMQ,UAAUX,UAAUM,GAAG,CAAC,CAACM,MAAMC,QACnCC,UAAU;YAAEF;YAAML,MAAML,KAAK,CAACW,MAAM;YAAGZ;YAAUc,cAAcf,UAAUG,MAAM,GAAG;QAAE;IAGtF,MAAMa,UAAUL,QAAQM,IAAI,CAAC,CAAC7B,SAAyC,YAAYA;IAEnF,IAAI4B,SAAS,OAAO;QAAEhC,MAAM;QAAY0B,QAAQM,QAAQN,MAAM;IAAC;IAE/D,MAAMQ,UAAUP,QAAQL,GAAG,CAAC,CAAClB,SAAW,AAACA,OAA8B+B,MAAM;IAE7E,OAAO;QACLnC,MAAM;QACNe,QAAQ;YAAEmB;QAAQ;QAClBpB,UAAUoB,QAAQE,KAAK,CAAC,CAAC,EAAEC,MAAM,EAAE,GAAKA,WAAWC;IACrD;AACF;AAEA,SAASR,UAAU,EACjBF,IAAI,EACJL,IAAI,EACJN,QAAQ,EACRc,YAAY,EAC0C;IACtD,MAAMQ,WAAWhB,KAAKiB,OAAO,CAAChD,aAAa;IAE3C,MAAMiD,WAAWlB,OACZmB,cAAc;QAAEd;QAAML;QAAMN;IAAS,MACrCsB,CAAAA,aAAahB,OAAOmB,cAAc;QAAEd;QAAML,MAAMgB;QAAUtB;IAAS,KAAKqB,SAAQ,IACjFA;IAEJ,IAAIG,UAAU,OAAO;QAAEN,QAAQ;YAAEQ,QAAQf,KAAKe,MAAM;YAAEF;QAAS;IAAE;IAEjE,MAAMJ,SAASN,eAAeQ,WAAWhB;IAEzC,IAAIc,UAAUT,KAAKS,MAAM,EAAE,OAAO;QAAEF,QAAQ;YAAEQ,QAAQf,KAAKe,MAAM;YAAEF,UAAU,EAAE;YAAEJ;QAAO;IAAE;IAE1F,OAAO;QAAEX,QAAQtC,UAAU;YAAEwC;YAAMX;QAAS;IAAG;AACjD;AAEA,SAASyB,cAAc,EACrBd,IAAI,EACJL,IAAI,EACJN,QAAQ,EACuB;IAC/B,MAAM2B,QAAQC,YAAY;QAAEjB;QAAMX;QAAU6B,OAAOvB;IAAK;IAExD,IAAIqB,UAAUN,WAAW,OAAO;QAACV,KAAKmB,OAAO,CAACH,MAAM,CAAEI,KAAK;KAAC;IAE5D,MAAMC,WAAWhC,YAAY3B,YAAY4D,IAAI,CAAC3B,QAAQA,KAAKF,KAAK,CAAC,YAAYE,KAAKF,KAAK,CAAC;IACxF,MAAM8B,UAAUC,cAAc;QAAExB;QAAMX;QAAUgC;IAAS;IAEzD,IAAI,CAACE,SAAShC,QAAQ,OAAOmB;IAE7B,MAAMe,SAAS;WAAI,IAAIC,IAAIH;KAAS,CAACI,IAAI,CAAC,CAACC,GAAGC,IAAMD,IAAIC;IAExD,IAAI,CAAC7B,KAAK8B,QAAQ,IAAIL,OAAOlC,MAAM,KAAK,GAAG,OAAOmB;IAElD,OAAOe,OAAO/B,GAAG,CAAC,CAACO,QAAUD,KAAKmB,OAAO,CAAClB,MAAM,CAAEmB,KAAK;AACzD;AAEA,SAASI,cAAc,EACrBxB,IAAI,EACJX,QAAQ,EACRgC,QAAQ,EAC6B;IACrC,MAAMU,QAAQ,IAAIC,KAAKC,GAAG,CAAC,OAAOjC,KAAKmB,OAAO,CAACzB,GAAG,CAAC,CAAC,EAAE0B,KAAK,EAAE,GAAKA,MAAM7B,MAAM;IAC9E,MAAM2C,UAAuC,EAAE;IAE/CA,OAAO,CAACb,SAAS9B,MAAM,CAAC,GAAG,EAAE;IAE7B,IAAK,IAAI4C,QAAQd,SAAS9B,MAAM,GAAG,GAAG4C,SAAS,GAAGA,QAAS;QACzD,IAAI,CAACd,QAAQ,CAACc,MAAM,CAAE3C,IAAI,IAAI;YAC5B0C,OAAO,CAACC,MAAM,GAAGD,OAAO,CAACC,QAAQ,EAAE;YAEnC;QACF;QAEA,IAAK,IAAIC,MAAMD,QAAQ,GAAGC,OAAOf,SAAS9B,MAAM,EAAE6C,MAAO;YACvD,MAAMlB,QAAQG,SAASgB,KAAK,CAACF,OAAOC,KAAKE,IAAI,CAAC,KAAK9C,IAAI;YAEvD,IAAI0B,MAAM3B,MAAM,GAAGwC,OAAO;YAE1B,MAAMQ,OAAOL,OAAO,CAACE,IAAI;YACzB,MAAMnC,QAAQsC,OAAOtB,YAAY;gBAAEjB;gBAAMX;gBAAU6B;YAAM,KAAKR;YAE9D,IAAIT,UAAUS,WAAWwB,OAAO,CAACC,MAAM,GAAG;gBAAClC;mBAAUsC;aAAM;QAC7D;IACF;IAEA,OAAOL,OAAO,CAAC,EAAE;AACnB;AAEA,SAASjB,YAAY,EACnBjB,IAAI,EACJX,QAAQ,EACR6B,KAAK,EAC2B;IAChC,MAAMsB,YAAYtB,MAAMN,OAAO,CAAC/C,iBAAiB;IAEjD,MAAMuD,QACJqB,WAAW;QAAEzC;QAAM1B,MAAM4C;IAAM,MAC9BsB,CAAAA,cAActB,QAAQuB,WAAW;QAAEzC;QAAM1B,MAAMkE;IAAU,KAAK9B,SAAQ;IAEzE,IAAIU,UAAUV,aAAa,CAACrB,UAAU,OAAO+B;IAE7C,MAAMsB,SAASC,OAAOhF,cAAciF,IAAI,CAAC1B,QAAQ,CAAC,EAAE,IAAI;IAExD,OAAOwB,UAAU,KAAKA,UAAU1C,KAAKmB,OAAO,CAAC5B,MAAM,GAAGmD,SAAS,IAAIhC;AACrE;AAEA,SAAS+B,WAAW,EAAEzC,IAAI,EAAE1B,IAAI,EAAwC;IACtE,MAAMuE,QAAQ7C,KAAKmB,OAAO,CAAC2B,SAAS,CAAC,CAAC,EAAE1B,KAAK,EAAE,GAAKA,UAAU9C;IAE9D,IAAIuE,UAAU,CAAC,GAAG,OAAOA;IAEzB,MAAME,SAAS/C,KAAKmB,OAAO,CAAC6B,OAAO,CAAC,CAAC,EAAE5B,KAAK,EAAE,EAAEnB,QAC9CmB,MAAM6B,WAAW,OAAO3E,KAAK2E,WAAW,KAAK;YAAChD;SAAM,GAAG,EAAE;IAG3D,OAAO8C,OAAOxD,MAAM,KAAK,IAAIwD,MAAM,CAAC,EAAE,GAAGrC;AAC3C","file":"parse.js"}
@@ -1,10 +1,28 @@
1
1
  import { elicitation } from './elicitation.js';
2
2
  import { postActivity } from './linearThread.js';
3
- export const renderLinearQuestion = async ({ calls, client, thread, }) => {
3
+ export const renderLinearQuestion = async ({ calls, client, thread })=>{
4
4
  const [call] = calls;
5
- if (!call)
6
- return [];
7
- const id = await postActivity({ activity: elicitation({ call }), client, threadId: thread.id });
8
- return [{ calls: [call.toolCallId], messages: [{ id, postedAt: '' }] }];
5
+ if (!call) return [];
6
+ const id = await postActivity({
7
+ activity: elicitation({
8
+ call
9
+ }),
10
+ client,
11
+ threadId: thread.id
12
+ });
13
+ return [
14
+ {
15
+ calls: [
16
+ call.toolCallId
17
+ ],
18
+ messages: [
19
+ {
20
+ id,
21
+ postedAt: ''
22
+ }
23
+ ]
24
+ }
25
+ ];
9
26
  };
27
+
10
28
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/questions/render.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAA4C,KAAK,EAAE,EAClF,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,GAAG,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhG,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/questions/render.ts"],"names":["elicitation","postActivity","renderLinearQuestion","calls","client","thread","call","id","activity","threadId","toolCallId","messages","postedAt"],"mappings":"AAGA,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,YAAY,QAAQ,oBAAoB;AAEjD,OAAO,MAAMC,uBAAgE,OAAO,EAClFC,KAAK,EACLC,MAAM,EACNC,MAAM,EACP;IACC,MAAM,CAACC,KAAK,GAAGH;IAEf,IAAI,CAACG,MAAM,OAAO,EAAE;IAEpB,MAAMC,KAAK,MAAMN,aAAa;QAAEO,UAAUR,YAAY;YAAEM;QAAK;QAAIF;QAAQK,UAAUJ,OAAOE,EAAE;IAAC;IAE7F,OAAO;QAAC;YAAEJ,OAAO;gBAACG,KAAKI,UAAU;aAAC;YAAEC,UAAU;gBAAC;oBAAEJ;oBAAIK,UAAU;gBAAG;aAAE;QAAC;KAAE;AACzE,EAAE","file":"render.js"}
@@ -1,13 +1,13 @@
1
1
  import { escapeMarkdown, response } from './elicitation.js';
2
2
  import { postActivity } from './linearThread.js';
3
- export const settleLinearQuestion = async ({ actor, client, outcome, thread, }) => {
4
- if ('output' in outcome || !actor)
5
- return;
3
+ export const settleLinearQuestion = async ({ actor, client, outcome, thread })=>{
4
+ if ('output' in outcome || !actor) return;
6
5
  const name = actor.channel?.name ?? actor.channel?.username;
7
6
  await postActivity({
8
7
  activity: response(name ? `Stopped. ${escapeMarkdown(name)} dismissed the question.` : 'Stopped.'),
9
8
  client,
10
- threadId: thread.id,
9
+ threadId: thread.id
11
10
  });
12
11
  };
12
+
13
13
  //# sourceMappingURL=settled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settled.js","sourceRoot":"","sources":["../../src/questions/settled.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAA6C,KAAK,EAAE,EACnF,KAAK,EACL,MAAM,EACN,OAAO,EACP,MAAM,GACP,EAAE,EAAE;IACH,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK;QAAE,OAAO;IAE1C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;IAE5D,MAAM,YAAY,CAAC;QACjB,QAAQ,EAAE,QAAQ,CAChB,IAAI,CAAC,CAAC,CAAC,YAAY,cAAc,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAC/E;QACD,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,EAAE;KACpB,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/questions/settled.ts"],"names":["escapeMarkdown","response","postActivity","settleLinearQuestion","actor","client","outcome","thread","name","channel","username","activity","threadId","id"],"mappings":"AAGA,SAASA,cAAc,EAAEC,QAAQ,QAAQ,mBAAmB;AAC5D,SAASC,YAAY,QAAQ,oBAAoB;AAEjD,OAAO,MAAMC,uBAAiE,OAAO,EACnFC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,MAAM,EACP;IACC,IAAI,YAAYD,WAAW,CAACF,OAAO;IAEnC,MAAMI,OAAOJ,MAAMK,OAAO,EAAED,QAAQJ,MAAMK,OAAO,EAAEC;IAEnD,MAAMR,aAAa;QACjBS,UAAUV,SACRO,OAAO,CAAC,SAAS,EAAER,eAAeQ,MAAM,wBAAwB,CAAC,GAAG;QAEtEH;QACAO,UAAUL,OAAOM,EAAE;IACrB;AACF,EAAE","file":"settled.js"}
@@ -1,3 +1,4 @@
1
1
  import { agentSessionId } from './linearThread.js';
2
- export const supportsLinearQuestion = ({ thread, }) => agentSessionId(thread.id) !== undefined;
2
+ export const supportsLinearQuestion = ({ thread })=>agentSessionId(thread.id) !== undefined;
3
+
3
4
  //# sourceMappingURL=supports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supports.js","sourceRoot":"","sources":["../../src/questions/supports.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAmD,CAAC,EACrF,MAAM,GACP,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC"}
1
+ {"version":3,"sources":["../../src/questions/supports.ts"],"names":["agentSessionId","supportsLinearQuestion","thread","id","undefined"],"mappings":"AAEA,SAASA,cAAc,QAAQ,oBAAoB;AAEnD,OAAO,MAAMC,yBAAyE,CAAC,EACrFC,MAAM,EACP,GAAKF,eAAeE,OAAOC,EAAE,MAAMC,UAAU","file":"supports.js"}
@@ -6,12 +6,9 @@ export const commentCreated = webhookTrigger({
6
6
  resourceType: 'Comment',
7
7
  input: z.object({
8
8
  teamIds: z.array(z.string()).optional(),
9
- authorIds: z.array(z.string()).optional(),
9
+ authorIds: z.array(z.string()).optional()
10
10
  }),
11
- matches: (delivery, input) => (!input.teamIds?.length ||
12
- (delivery.data?.issue?.team?.id !== undefined &&
13
- input.teamIds.includes(delivery.data.issue.team.id))) &&
14
- (!input.authorIds?.length ||
15
- (delivery.data?.userId !== undefined && input.authorIds.includes(delivery.data.userId))),
11
+ matches: (delivery, input)=>(!input.teamIds?.length || delivery.data?.issue?.team?.id !== undefined && input.teamIds.includes(delivery.data.issue.team.id)) && (!input.authorIds?.length || delivery.data?.userId !== undefined && input.authorIds.includes(delivery.data.userId))
16
12
  });
13
+
17
14
  //# sourceMappingURL=commentCreated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commentCreated.js","sourceRoot":"","sources":["../../src/triggers/commentCreated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;IAC3C,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC;IACF,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAC3B,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;QACrB,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,SAAS;YAC3C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM;YACvB,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAC7F,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/triggers/commentCreated.ts"],"names":["z","webhookTrigger","commentCreated","slug","action","resourceType","input","object","teamIds","array","string","optional","authorIds","matches","delivery","length","data","issue","team","id","undefined","includes","userId"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC,iBAAiBD,eAAe;IAC3CE,MAAM;IACNC,QAAQ;IACRC,cAAc;IACdC,OAAON,EAAEO,MAAM,CAAC;QACdC,SAASR,EAAES,KAAK,CAACT,EAAEU,MAAM,IAAIC,QAAQ;QACrCC,WAAWZ,EAAES,KAAK,CAACT,EAAEU,MAAM,IAAIC,QAAQ;IACzC;IACAE,SAAS,CAACC,UAAUR,QAClB,AAAC,CAAA,CAACA,MAAME,OAAO,EAAEO,UACdD,SAASE,IAAI,EAAEC,OAAOC,MAAMC,OAAOC,aAClCd,MAAME,OAAO,CAACa,QAAQ,CAACP,SAASE,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,EAAE,CAAC,KACtD,CAAA,CAACb,MAAMM,SAAS,EAAEG,UAChBD,SAASE,IAAI,EAAEM,WAAWF,aAAad,MAAMM,SAAS,CAACS,QAAQ,CAACP,SAASE,IAAI,CAACM,MAAM,CAAC;AAC5F,GAAG","file":"commentCreated.js"}
@@ -5,6 +5,9 @@ export const issueCreated = webhookTrigger({
5
5
  slug: 'issueCreated',
6
6
  action: 'create',
7
7
  resourceType: 'Issue',
8
- input: z.object({ teamId }),
8
+ input: z.object({
9
+ teamId
10
+ })
9
11
  });
12
+
10
13
  //# sourceMappingURL=issueCreated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issueCreated.js","sourceRoot":"","sources":["../../src/triggers/issueCreated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/triggers/issueCreated.ts"],"names":["z","teamId","webhookTrigger","issueCreated","slug","action","resourceType","input","object"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC,eAAeD,eAAe;IACzCE,MAAM;IACNC,QAAQ;IACRC,cAAc;IACdC,OAAOP,EAAEQ,MAAM,CAAC;QAAEP;IAAO;AAC3B,GAAG","file":"issueCreated.js"}
@@ -5,6 +5,9 @@ export const issueRemoved = webhookTrigger({
5
5
  slug: 'issueRemoved',
6
6
  action: 'remove',
7
7
  resourceType: 'Issue',
8
- input: z.object({ teamId }),
8
+ input: z.object({
9
+ teamId
10
+ })
9
11
  });
12
+
10
13
  //# sourceMappingURL=issueRemoved.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issueRemoved.js","sourceRoot":"","sources":["../../src/triggers/issueRemoved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/triggers/issueRemoved.ts"],"names":["z","teamId","webhookTrigger","issueRemoved","slug","action","resourceType","input","object"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC,eAAeD,eAAe;IACzCE,MAAM;IACNC,QAAQ;IACRC,cAAc;IACdC,OAAOP,EAAEQ,MAAM,CAAC;QAAEP;IAAO;AAC3B,GAAG","file":"issueRemoved.js"}
@@ -5,6 +5,9 @@ export const issueUpdated = webhookTrigger({
5
5
  slug: 'issueUpdated',
6
6
  action: 'update',
7
7
  resourceType: 'Issue',
8
- input: z.object({ teamId: teamId.optional() }),
8
+ input: z.object({
9
+ teamId: teamId.optional()
10
+ })
9
11
  });
12
+
10
13
  //# sourceMappingURL=issueUpdated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issueUpdated.js","sourceRoot":"","sources":["../../src/triggers/issueUpdated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;IACzC,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;CAC/C,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/triggers/issueUpdated.ts"],"names":["z","teamId","webhookTrigger","issueUpdated","slug","action","resourceType","input","object","optional"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC,eAAeD,eAAe;IACzCE,MAAM;IACNC,QAAQ;IACRC,cAAc;IACdC,OAAOP,EAAEQ,MAAM,CAAC;QAAEP,QAAQA,OAAOQ,QAAQ;IAAG;AAC9C,GAAG","file":"issueUpdated.js"}
@@ -4,6 +4,7 @@ export const projectCreated = webhookTrigger({
4
4
  slug: 'projectCreated',
5
5
  action: 'create',
6
6
  resourceType: 'Project',
7
- input: z.object({}),
7
+ input: z.object({})
8
8
  });
9
+
9
10
  //# sourceMappingURL=projectCreated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectCreated.js","sourceRoot":"","sources":["../../src/triggers/projectCreated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;IAC3C,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CACpB,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/triggers/projectCreated.ts"],"names":["z","webhookTrigger","projectCreated","slug","action","resourceType","input","object"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC,iBAAiBD,eAAe;IAC3CE,MAAM;IACNC,QAAQ;IACRC,cAAc;IACdC,OAAON,EAAEO,MAAM,CAAC,CAAC;AACnB,GAAG","file":"projectCreated.js"}
@@ -4,6 +4,7 @@ export const projectRemoved = webhookTrigger({
4
4
  slug: 'projectRemoved',
5
5
  action: 'remove',
6
6
  resourceType: 'Project',
7
- input: z.object({}),
7
+ input: z.object({})
8
8
  });
9
+
9
10
  //# sourceMappingURL=projectRemoved.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectRemoved.js","sourceRoot":"","sources":["../../src/triggers/projectRemoved.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;IAC3C,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CACpB,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/triggers/projectRemoved.ts"],"names":["z","webhookTrigger","projectRemoved","slug","action","resourceType","input","object"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC,iBAAiBD,eAAe;IAC3CE,MAAM;IACNC,QAAQ;IACRC,cAAc;IACdC,OAAON,EAAEO,MAAM,CAAC,CAAC;AACnB,GAAG","file":"projectRemoved.js"}
@@ -6,10 +6,9 @@ export const projectUpdated = webhookTrigger({
6
6
  resourceType: 'Project',
7
7
  input: z.object({
8
8
  teamIds: z.array(z.string()).optional(),
9
- projectStatus: z.string().optional(),
9
+ projectStatus: z.string().optional()
10
10
  }),
11
- matches: (delivery, input) => Boolean(delivery.updatedFrom?.statusId) &&
12
- (!input.teamIds?.length || input.teamIds.some((id) => delivery.data?.teamIds?.includes(id))) &&
13
- (!input.projectStatus || input.projectStatus === delivery.data?.status?.name),
11
+ matches: (delivery, input)=>Boolean(delivery.updatedFrom?.statusId) && (!input.teamIds?.length || input.teamIds.some((id)=>delivery.data?.teamIds?.includes(id))) && (!input.projectStatus || input.projectStatus === delivery.data?.status?.name)
14
12
  });
13
+
15
14
  //# sourceMappingURL=projectUpdated.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectUpdated.js","sourceRoot":"","sources":["../../src/triggers/projectUpdated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;IAC3C,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,SAAS;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;IACF,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;QACvC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5F,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;CAChF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/triggers/projectUpdated.ts"],"names":["z","webhookTrigger","projectUpdated","slug","action","resourceType","input","object","teamIds","array","string","optional","projectStatus","matches","delivery","Boolean","updatedFrom","statusId","length","some","id","data","includes","status","name"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,MAAMC,iBAAiBD,eAAe;IAC3CE,MAAM;IACNC,QAAQ;IACRC,cAAc;IACdC,OAAON,EAAEO,MAAM,CAAC;QACdC,SAASR,EAAES,KAAK,CAACT,EAAEU,MAAM,IAAIC,QAAQ;QACrCC,eAAeZ,EAAEU,MAAM,GAAGC,QAAQ;IACpC;IACAE,SAAS,CAACC,UAAUR,QAClBS,QAAQD,SAASE,WAAW,EAAEC,aAC7B,CAAA,CAACX,MAAME,OAAO,EAAEU,UAAUZ,MAAME,OAAO,CAACW,IAAI,CAAC,CAACC,KAAON,SAASO,IAAI,EAAEb,SAASc,SAASF,IAAG,KACzF,CAAA,CAACd,MAAMM,aAAa,IAAIN,MAAMM,aAAa,KAAKE,SAASO,IAAI,EAAEE,QAAQC,IAAG;AAC/E,GAAG","file":"projectUpdated.js"}
@@ -1,53 +1,53 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { defineWebhookTrigger } from '../define.js';
3
- export function webhookTrigger({ slug, action, resourceType, input, matches, }) {
3
+ export function webhookTrigger({ slug, action, resourceType, input, matches }) {
4
4
  return defineWebhookTrigger({
5
5
  slug,
6
6
  description: `Trigger when a Linear ${resourceType.toLowerCase()} is ${action}d.`,
7
7
  type: 'webhook',
8
8
  input,
9
- async onEnable({ client, input, webhookUrl, options }) {
9
+ async onEnable ({ client, input, webhookUrl, options }) {
10
10
  if (!options.webhookSecret) {
11
11
  throw new Error(`Linear ${slug} webhook requires createLinear({ webhookSecret }).`);
12
12
  }
13
- const team = typeof input === 'object' &&
14
- input !== null &&
15
- 'teamId' in input &&
16
- typeof input.teamId === 'string'
17
- ? input.teamId
18
- : undefined;
13
+ const team = typeof input === 'object' && input !== null && 'teamId' in input && typeof input.teamId === 'string' ? input.teamId : undefined;
19
14
  const response = await client.createWebhook({
20
15
  label: `FrogBot ${slug}`,
21
16
  url: webhookUrl,
22
17
  secret: options.webhookSecret,
23
- resourceTypes: [resourceType],
24
- ...(team ? { teamId: team } : { allPublicTeams: true }),
18
+ resourceTypes: [
19
+ resourceType
20
+ ],
21
+ ...team ? {
22
+ teamId: team
23
+ } : {
24
+ allPublicTeams: true
25
+ }
25
26
  });
26
27
  const webhook = response.success ? await response.webhook : undefined;
27
28
  if (!webhook) {
28
29
  throw new Error(`Linear failed to create the ${slug} webhook.`);
29
30
  }
30
- return { webhookId: webhook.id };
31
+ return {
32
+ webhookId: webhook.id
33
+ };
31
34
  },
32
- async onDisable({ client, state }) {
35
+ async onDisable ({ client, state }) {
33
36
  const response = await client.deleteWebhook(state.webhookId);
34
37
  if (!response.success) {
35
38
  throw new Error(`Linear failed to delete the ${slug} webhook '${state.webhookId}'.`);
36
39
  }
37
40
  },
38
- async run({ input, req }) {
41
+ async run ({ input, req }) {
39
42
  const delivery = req.data;
40
- return delivery?.type === resourceType &&
41
- delivery.action === action &&
42
- (!matches || matches(delivery, input))
43
- ? [
44
- {
45
- dedupeKey: createHash('sha256').update(JSON.stringify(delivery)).digest('hex'),
46
- data: delivery,
47
- },
48
- ]
49
- : [];
50
- },
43
+ return delivery?.type === resourceType && delivery.action === action && (!matches || matches(delivery, input)) ? [
44
+ {
45
+ dedupeKey: createHash('sha256').update(JSON.stringify(delivery)).digest('hex'),
46
+ data: delivery
47
+ }
48
+ ] : [];
49
+ }
51
50
  });
52
51
  }
52
+
53
53
  //# sourceMappingURL=webhook.js.map