@microsoft/teams.apps 0.2.7

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 (132) hide show
  1. package/README.md +35 -0
  2. package/dist/api.d.ts +21 -0
  3. package/dist/api.js +66 -0
  4. package/dist/app.d.ts +1137 -0
  5. package/dist/app.embed.d.ts +24 -0
  6. package/dist/app.embed.js +83 -0
  7. package/dist/app.events.d.ts +14 -0
  8. package/dist/app.events.js +51 -0
  9. package/dist/app.js +411 -0
  10. package/dist/app.oauth.d.ts +13 -0
  11. package/dist/app.oauth.js +106 -0
  12. package/dist/app.plugins.d.ts +24 -0
  13. package/dist/app.plugins.js +96 -0
  14. package/dist/app.process.d.ts +11 -0
  15. package/dist/app.process.js +141 -0
  16. package/dist/app.routing.d.ts +22 -0
  17. package/dist/app.routing.js +40 -0
  18. package/dist/container/container.d.ts +37 -0
  19. package/dist/container/container.js +46 -0
  20. package/dist/container/index.d.ts +2 -0
  21. package/dist/container/index.js +19 -0
  22. package/dist/container/provider.d.ts +9 -0
  23. package/dist/container/provider.js +11 -0
  24. package/dist/contexts/activity-error.d.ts +8 -0
  25. package/dist/contexts/activity-error.js +3 -0
  26. package/dist/contexts/activity-signin.d.ts +8 -0
  27. package/dist/contexts/activity-signin.js +3 -0
  28. package/dist/contexts/activity.d.ts +117 -0
  29. package/dist/contexts/activity.js +133 -0
  30. package/dist/contexts/client.d.ts +53 -0
  31. package/dist/contexts/client.js +3 -0
  32. package/dist/contexts/function.d.ts +17 -0
  33. package/dist/contexts/function.js +3 -0
  34. package/dist/contexts/index.d.ts +5 -0
  35. package/dist/contexts/index.js +22 -0
  36. package/dist/events/activity-response.d.ts +16 -0
  37. package/dist/events/activity-response.js +3 -0
  38. package/dist/events/activity-sent.d.ts +16 -0
  39. package/dist/events/activity-sent.js +3 -0
  40. package/dist/events/activity.d.ts +20 -0
  41. package/dist/events/activity.js +3 -0
  42. package/dist/events/error.d.ts +16 -0
  43. package/dist/events/error.js +3 -0
  44. package/dist/events/index.d.ts +18 -0
  45. package/dist/events/index.js +21 -0
  46. package/dist/index.d.ts +7 -0
  47. package/dist/index.js +47 -0
  48. package/dist/manifest.d.ts +1241 -0
  49. package/dist/manifest.js +3 -0
  50. package/dist/middleware/entra-token-validator.d.ts +75 -0
  51. package/dist/middleware/entra-token-validator.js +169 -0
  52. package/dist/middleware/index.d.ts +3 -0
  53. package/dist/middleware/index.js +22 -0
  54. package/dist/middleware/strip-mentions-text.d.ts +3 -0
  55. package/dist/middleware/strip-mentions-text.js +48 -0
  56. package/dist/middleware/with-client-auth.d.ts +13 -0
  57. package/dist/middleware/with-client-auth.js +40 -0
  58. package/dist/oauth.d.ts +9 -0
  59. package/dist/oauth.js +7 -0
  60. package/dist/plugins/http/index.d.ts +2 -0
  61. package/dist/plugins/http/index.js +19 -0
  62. package/dist/plugins/http/plugin.d.ts +986 -0
  63. package/dist/plugins/http/plugin.js +238 -0
  64. package/dist/plugins/http/stream.d.ts +956 -0
  65. package/dist/plugins/http/stream.js +128 -0
  66. package/dist/plugins/index.d.ts +1 -0
  67. package/dist/plugins/index.js +18 -0
  68. package/dist/router.d.ts +34 -0
  69. package/dist/router.js +91 -0
  70. package/dist/routes/activity.d.ts +8 -0
  71. package/dist/routes/activity.js +3 -0
  72. package/dist/routes/conversation-update.d.ts +6 -0
  73. package/dist/routes/conversation-update.js +3 -0
  74. package/dist/routes/event.d.ts +17 -0
  75. package/dist/routes/event.js +11 -0
  76. package/dist/routes/index.d.ts +20 -0
  77. package/dist/routes/index.js +24 -0
  78. package/dist/routes/install.d.ts +8 -0
  79. package/dist/routes/install.js +3 -0
  80. package/dist/routes/invoke/file-consent.d.ts +6 -0
  81. package/dist/routes/invoke/file-consent.js +3 -0
  82. package/dist/routes/invoke/index.d.ts +39 -0
  83. package/dist/routes/invoke/index.js +45 -0
  84. package/dist/routes/invoke/message-extension-submit.d.ts +6 -0
  85. package/dist/routes/invoke/message-extension-submit.js +3 -0
  86. package/dist/routes/invoke/message-submit.d.ts +10 -0
  87. package/dist/routes/invoke/message-submit.js +3 -0
  88. package/dist/routes/message-delete.d.ts +6 -0
  89. package/dist/routes/message-delete.js +3 -0
  90. package/dist/routes/message-update.d.ts +6 -0
  91. package/dist/routes/message-update.js +3 -0
  92. package/dist/types/constructor.d.ts +7 -0
  93. package/dist/types/constructor.js +3 -0
  94. package/dist/types/event-handler.d.ts +1 -0
  95. package/dist/types/event-handler.js +3 -0
  96. package/dist/types/event.d.ts +11 -0
  97. package/dist/types/event.js +3 -0
  98. package/dist/types/index.d.ts +7 -0
  99. package/dist/types/index.js +24 -0
  100. package/dist/types/plugin/decorators/dependency.d.ts +135 -0
  101. package/dist/types/plugin/decorators/dependency.js +49 -0
  102. package/dist/types/plugin/decorators/event.d.ts +18 -0
  103. package/dist/types/plugin/decorators/event.js +24 -0
  104. package/dist/types/plugin/decorators/index.d.ts +3 -0
  105. package/dist/types/plugin/decorators/index.js +12 -0
  106. package/dist/types/plugin/decorators/plugin.d.ts +25 -0
  107. package/dist/types/plugin/decorators/plugin.js +23 -0
  108. package/dist/types/plugin/index.d.ts +8 -0
  109. package/dist/types/plugin/index.js +25 -0
  110. package/dist/types/plugin/plugin-activity-event.d.ts +20 -0
  111. package/dist/types/plugin/plugin-activity-event.js +3 -0
  112. package/dist/types/plugin/plugin-activity-response-event.d.ts +20 -0
  113. package/dist/types/plugin/plugin-activity-response-event.js +3 -0
  114. package/dist/types/plugin/plugin-activity-sent-event.d.ts +16 -0
  115. package/dist/types/plugin/plugin-activity-sent-event.js +3 -0
  116. package/dist/types/plugin/plugin-error-event.d.ts +20 -0
  117. package/dist/types/plugin/plugin-error-event.js +3 -0
  118. package/dist/types/plugin/plugin-start-event.d.ts +11 -0
  119. package/dist/types/plugin/plugin-start-event.js +3 -0
  120. package/dist/types/plugin/plugin.d.ts +74 -0
  121. package/dist/types/plugin/plugin.js +3 -0
  122. package/dist/types/plugin/sender.d.ts +18 -0
  123. package/dist/types/plugin/sender.js +3 -0
  124. package/dist/types/prefixed.d.ts +3 -0
  125. package/dist/types/prefixed.js +3 -0
  126. package/dist/types/route-handler.d.ts +2 -0
  127. package/dist/types/route-handler.js +3 -0
  128. package/dist/types/streamer.d.ts +31 -0
  129. package/dist/types/streamer.js +3 -0
  130. package/dist/types/suffixed.d.ts +3 -0
  131. package/dist/types/suffixed.js +3 -0
  132. package/package.json +70 -0
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HttpStream = void 0;
4
+ const teams_common_1 = require("@microsoft/teams.common");
5
+ const teams_api_1 = require("@microsoft/teams.api");
6
+ class HttpStream {
7
+ events = new teams_common_1.EventEmitter();
8
+ client;
9
+ ref;
10
+ index = 0;
11
+ id;
12
+ text = '';
13
+ attachments = [];
14
+ channelData = {};
15
+ entities = [];
16
+ queue = [];
17
+ _timeout;
18
+ _failures = 0;
19
+ constructor(client, ref) {
20
+ this.client = client;
21
+ this.ref = ref;
22
+ }
23
+ emit(activity) {
24
+ if (this._timeout) {
25
+ clearTimeout(this._timeout);
26
+ this._timeout = undefined;
27
+ }
28
+ if (typeof activity === 'string') {
29
+ activity = {
30
+ type: 'message',
31
+ text: activity,
32
+ };
33
+ }
34
+ this.queue.push(activity);
35
+ this._timeout = setTimeout(this.flush.bind(this), 200);
36
+ }
37
+ async close() {
38
+ if (!this.queue.length)
39
+ return;
40
+ while (!this.id || this.queue.length) {
41
+ await new Promise((resolve) => setTimeout(resolve, 200));
42
+ }
43
+ const activity = new teams_api_1.MessageActivity(this.text)
44
+ .withId(this.id)
45
+ .addAttachments(...this.attachments)
46
+ .addEntities(...this.entities)
47
+ .addStreamFinal();
48
+ const res = await this.send(activity);
49
+ this.events.emit('close', res);
50
+ this.index = 0;
51
+ this.id = undefined;
52
+ this.text = '';
53
+ this.attachments = [];
54
+ this.channelData = {};
55
+ this.entities = [];
56
+ }
57
+ async flush() {
58
+ try {
59
+ if (!this.queue.length)
60
+ return;
61
+ if (this._timeout) {
62
+ clearTimeout(this._timeout);
63
+ this._timeout = undefined;
64
+ }
65
+ const size = Math.round(this.queue.length / 10);
66
+ let i = 0;
67
+ while (this.queue.length && i <= size) {
68
+ const activity = this.queue.shift();
69
+ if (!activity)
70
+ continue;
71
+ if (activity.text) {
72
+ this.text += activity.text;
73
+ }
74
+ if (activity.attachments) {
75
+ this.attachments = [...(this.attachments || []), ...activity.attachments];
76
+ }
77
+ if (activity.channelData) {
78
+ this.channelData = {
79
+ ...this.channelData,
80
+ ...activity.channelData,
81
+ };
82
+ }
83
+ if (activity.entities) {
84
+ this.entities = [...(this.entities || []), ...activity.entities];
85
+ }
86
+ i++;
87
+ }
88
+ this.index++;
89
+ const activity = new teams_api_1.TypingActivity({ id: this.id })
90
+ .withText(this.text)
91
+ .addStreamUpdate(this.index);
92
+ const res = await this.send(activity);
93
+ this.events.emit('chunk', res);
94
+ if (!this.id) {
95
+ this.id = res.id;
96
+ }
97
+ this._failures = 0;
98
+ if (this.queue.length) {
99
+ this._timeout = setTimeout(this.flush.bind(this), 500);
100
+ }
101
+ }
102
+ catch (err) {
103
+ this._failures += 2;
104
+ if (this.queue.length) {
105
+ this._timeout = setTimeout(this.flush.bind(this), (this._failures + 1) * 500);
106
+ }
107
+ }
108
+ }
109
+ async send(activity) {
110
+ activity = {
111
+ ...activity,
112
+ from: this.ref.bot,
113
+ conversation: this.ref.conversation,
114
+ };
115
+ if (activity.id && !(activity.entities?.some((e) => e.type === 'streaminfo') || false)) {
116
+ const res = await this.client.conversations
117
+ .activities(this.ref.conversation.id)
118
+ .update(activity.id, activity);
119
+ return { ...activity, ...res };
120
+ }
121
+ const res = await this.client.conversations
122
+ .activities(this.ref.conversation.id)
123
+ .create(activity);
124
+ return { ...activity, ...res };
125
+ }
126
+ }
127
+ exports.HttpStream = HttpStream;
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvaHR0cC9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXVEO0FBQ3ZELG9EQVU4QjtBQUk5QixNQUFhLFVBQVU7SUFDWixNQUFNLEdBQUcsSUFBSSwyQkFBWSxFQUFtQixDQUFDO0lBRTVDLE1BQU0sQ0FBUztJQUNmLEdBQUcsQ0FBd0I7SUFDM0IsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNWLEVBQUUsQ0FBVTtJQUNaLElBQUksR0FBVyxFQUFFLENBQUM7SUFDbEIsV0FBVyxHQUFpQixFQUFFLENBQUM7SUFDL0IsV0FBVyxHQUFnQixFQUFFLENBQUM7SUFDOUIsUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUN4QixLQUFLLEdBQXFDLEVBQUUsQ0FBQztJQUUvQyxRQUFRLENBQWtCO0lBQzFCLFNBQVMsR0FBVyxDQUFDLENBQUM7SUFFOUIsWUFBWSxNQUFjLEVBQUUsR0FBMEI7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksQ0FBQyxRQUE0QztRQUMvQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLFFBQVEsR0FBRztnQkFDVCxJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsUUFBUTthQUNmLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQ2YsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUNuQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzdCLGNBQWMsRUFBRSxDQUFDO1FBRXBCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFUyxLQUFLLENBQUMsS0FBSztRQUNuQixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDL0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1lBQzVCLENBQUM7WUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUVwQyxJQUFJLENBQUMsUUFBUTtvQkFBRSxTQUFTO2dCQUV4QixJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUM3QixDQUFDO2dCQUVELElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVFLENBQUM7Z0JBRUQsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUc7d0JBQ2pCLEdBQUcsSUFBSSxDQUFDLFdBQVc7d0JBQ25CLEdBQUcsUUFBUSxDQUFDLFdBQVc7cUJBQ3hCLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO2dCQUVELENBQUMsRUFBRSxDQUFDO1lBQ04sQ0FBQztZQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLE1BQU0sUUFBUSxHQUFHLElBQUksMEJBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7aUJBQ2pELFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNuQixlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBRW5CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFFcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDaEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUF3QjtRQUMzQyxRQUFRLEdBQUc7WUFDVCxHQUFHLFFBQVE7WUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO1lBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVk7U0FDcEMsQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYTtpQkFDeEMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztpQkFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDakMsT0FBTyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhO2FBQ3hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7YUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQWpKRCxnQ0FpSkMifQ==
@@ -0,0 +1 @@
1
+ export * from './http';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./http"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCIn0=
@@ -0,0 +1,34 @@
1
+ import { Activity } from '@microsoft/teams.api';
2
+ import { IRoutes } from './routes';
3
+ import { RouteHandler } from './types';
4
+ import { IActivityContext } from './contexts';
5
+ type Route<Name extends keyof IRoutes = keyof IRoutes> = {
6
+ readonly name?: Name;
7
+ readonly select: (activity: Activity) => boolean;
8
+ readonly callback: IRoutes[Name];
9
+ };
10
+ export declare class Router {
11
+ protected readonly routes: Route[];
12
+ /**
13
+ * select routes that match the inbound activity
14
+ * @param activity the inbound activity
15
+ */
16
+ select(activity: Activity): RouteHandler<IActivityContext<Activity>, any>[];
17
+ /**
18
+ * register a new route
19
+ * @param route the route to register
20
+ */
21
+ register<Name extends keyof IRoutes>(route: Route<Name>): this;
22
+ /**
23
+ * register a middleware
24
+ * @param callback the callback to invoke
25
+ */
26
+ use(callback: RouteHandler<IActivityContext, any>): this;
27
+ /**
28
+ * register an activity route
29
+ * @param event event to subscribe to
30
+ * @param callback the callback to invoke
31
+ */
32
+ on<Name extends keyof IRoutes>(event: Name, callback: Exclude<IRoutes[Name], undefined>): this;
33
+ }
34
+ export {};
package/dist/router.js ADDED
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Router = void 0;
4
+ const routes_1 = require("./routes");
5
+ class Router {
6
+ routes = [];
7
+ /**
8
+ * select routes that match the inbound activity
9
+ * @param activity the inbound activity
10
+ */
11
+ select(activity) {
12
+ return this.routes
13
+ .filter((r) => r.select(activity))
14
+ .map((r) => r.callback);
15
+ }
16
+ /**
17
+ * register a new route
18
+ * @param route the route to register
19
+ */
20
+ register(route) {
21
+ this.routes.push(route);
22
+ return this;
23
+ }
24
+ /**
25
+ * register a middleware
26
+ * @param callback the callback to invoke
27
+ */
28
+ use(callback) {
29
+ this.register({
30
+ select: () => true,
31
+ callback,
32
+ });
33
+ return this;
34
+ }
35
+ /**
36
+ * register an activity route
37
+ * @param event event to subscribe to
38
+ * @param callback the callback to invoke
39
+ */
40
+ on(event, callback) {
41
+ this.register({
42
+ name: event,
43
+ select: (activity) => {
44
+ if (event === 'activity') {
45
+ return true;
46
+ }
47
+ if (event === activity.type) {
48
+ return true;
49
+ }
50
+ if (activity.type === 'conversationUpdate') {
51
+ return event === activity.channelData?.eventType;
52
+ }
53
+ if (activity.type === 'installationUpdate') {
54
+ return event === `install.${activity.action}`;
55
+ }
56
+ if (activity.type === 'messageDelete') {
57
+ return event === activity.channelData?.eventType;
58
+ }
59
+ if (activity.type === 'messageUpdate') {
60
+ return event === activity.channelData?.eventType;
61
+ }
62
+ if (activity.type === 'event') {
63
+ return event === routes_1.EVENT_ALIASES[activity.name];
64
+ }
65
+ if (activity.type === 'invoke') {
66
+ if (event === routes_1.INVOKE_ALIASES[activity.name]) {
67
+ return true;
68
+ }
69
+ if (activity.name === 'fileConsent/invoke') {
70
+ return event === `file.consent.${activity.value.action}`;
71
+ }
72
+ if (activity.name === 'composeExtension/submitAction') {
73
+ return event === `message.ext.${activity.value.botMessagePreviewAction}`;
74
+ }
75
+ if (activity.name === 'message/submitAction') {
76
+ return event === `message.submit.${activity.value.actionName}`;
77
+ }
78
+ }
79
+ // custom routes
80
+ if (event === 'mention' && activity.entities?.some((e) => e.type === 'mention')) {
81
+ return (activity.entities?.find((e) => e.type === 'mention' && e.mentioned.id === activity.recipient.id) !== undefined);
82
+ }
83
+ return false;
84
+ },
85
+ callback,
86
+ });
87
+ return this;
88
+ }
89
+ }
90
+ exports.Router = Router;
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxQ0FBa0U7QUFVbEUsTUFBYSxNQUFNO0lBQ0UsTUFBTSxHQUFZLEVBQUUsQ0FBQztJQUV4Qzs7O09BR0c7SUFDSCxNQUFNLENBQUMsUUFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUErQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBNkIsS0FBa0I7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLFFBQTZDO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDWixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUNsQixRQUFRO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEVBQUUsQ0FBNkIsS0FBVyxFQUFFLFFBQTJDO1FBQ3JGLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDWixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDekIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFFRCxJQUFJLEtBQUssS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzVCLE9BQU8sSUFBSSxDQUFD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
@@ -0,0 +1,8 @@
1
+ import { Activity } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../types';
3
+ import { IActivityContext } from '../contexts';
4
+ export type ActivityRoutes = {
5
+ [K in Activity['type']]?: RouteHandler<IActivityContext<Extract<Activity, {
6
+ type: K;
7
+ }>>>;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL2FjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,6 @@
1
+ import { IConversationUpdateActivity } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../types';
3
+ import { IActivityContext } from '../contexts';
4
+ export type ConversationUpdateActivityRoutes = {
5
+ [K in IConversationUpdateActivity['channelData']['eventType'] as K]?: RouteHandler<IActivityContext<IConversationUpdateActivity>, void>;
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLXVwZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3V0ZXMvY29udmVyc2F0aW9uLXVwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,17 @@
1
+ import { EventActivity } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../types';
3
+ import { IActivityContext } from '../contexts';
4
+ export type EventActivityRoutes = {
5
+ [K in EventActivity['name'] as EventAliases[K]]?: RouteHandler<IActivityContext<Extract<EventActivity, {
6
+ name: K;
7
+ }>>, void>;
8
+ };
9
+ type EventAliases = {
10
+ 'application/vnd.microsoft.readReceipt': 'readReceipt';
11
+ 'application/vnd.microsoft.meetingStart': 'meetingStart';
12
+ 'application/vnd.microsoft.meetingEnd': 'meetingEnd';
13
+ 'application/vnd.microsoft.meetingParticipantJoin': 'meetingParticipantJoin';
14
+ 'application/vnd.microsoft.meetingParticipantLeave': 'meetingParticipantLeave';
15
+ };
16
+ export declare const EVENT_ALIASES: EventAliases;
17
+ export {};
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EVENT_ALIASES = void 0;
4
+ exports.EVENT_ALIASES = {
5
+ 'application/vnd.microsoft.readReceipt': 'readReceipt',
6
+ 'application/vnd.microsoft.meetingStart': 'meetingStart',
7
+ 'application/vnd.microsoft.meetingEnd': 'meetingEnd',
8
+ 'application/vnd.microsoft.meetingParticipantJoin': 'meetingParticipantJoin',
9
+ 'application/vnd.microsoft.meetingParticipantLeave': 'meetingParticipantLeave',
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL2V2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9CYSxRQUFBLGFBQWEsR0FBaUI7SUFDekMsdUNBQXVDLEVBQUUsYUFBYTtJQUN0RCx3Q0FBd0MsRUFBRSxjQUFjO0lBQ3hELHNDQUFzQyxFQUFFLFlBQVk7SUFDcEQsa0RBQWtELEVBQUUsd0JBQXdCO0lBQzVFLG1EQUFtRCxFQUFFLHlCQUF5QjtDQUMvRSxDQUFDIn0=
@@ -0,0 +1,20 @@
1
+ import { IActivityContext } from '../contexts';
2
+ import { RouteHandler } from '../types';
3
+ import { ActivityRoutes } from './activity';
4
+ import { InvokeActivityRoutes } from './invoke';
5
+ import { InstallActivityRoutes } from './install';
6
+ import { ConversationUpdateActivityRoutes } from './conversation-update';
7
+ import { MessageUpdateActivityRoutes } from './message-update';
8
+ import { MessageDeleteActivityRoutes } from './message-delete';
9
+ import { EventActivityRoutes } from './event';
10
+ export interface IRoutes extends ActivityRoutes, InvokeActivityRoutes, InstallActivityRoutes, ConversationUpdateActivityRoutes, MessageUpdateActivityRoutes, MessageDeleteActivityRoutes, EventActivityRoutes {
11
+ mention?: RouteHandler<IActivityContext>;
12
+ activity?: RouteHandler<IActivityContext>;
13
+ }
14
+ export * from './activity';
15
+ export * from './install';
16
+ export * from './invoke';
17
+ export * from './conversation-update';
18
+ export * from './message-update';
19
+ export * from './message-delete';
20
+ export * from './event';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./activity"), exports);
18
+ __exportStar(require("./install"), exports);
19
+ __exportStar(require("./invoke"), exports);
20
+ __exportStar(require("./conversation-update"), exports);
21
+ __exportStar(require("./message-update"), exports);
22
+ __exportStar(require("./message-delete"), exports);
23
+ __exportStar(require("./event"), exports);
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkEsNkNBQTJCO0FBQzNCLDRDQUEwQjtBQUMxQiwyQ0FBeUI7QUFDekIsd0RBQXNDO0FBQ3RDLG1EQUFpQztBQUNqQyxtREFBaUM7QUFDakMsMENBQXdCIn0=
@@ -0,0 +1,8 @@
1
+ import { InstallUpdateActivity } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../types';
3
+ import { IActivityContext } from '../contexts';
4
+ export type InstallActivityRoutes = {
5
+ [K in InstallUpdateActivity['action'] as `install.${K}`]?: RouteHandler<IActivityContext<Extract<InstallUpdateActivity, {
6
+ action: K;
7
+ }>>, void>;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3V0ZXMvaW5zdGFsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,6 @@
1
+ import { IFileConsentInvokeActivity, InvokeResponse } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../../types';
3
+ import { IActivityContext } from '../../contexts';
4
+ export type FileConsentActivityRoutes = {
5
+ [K in IFileConsentInvokeActivity['value']['action'] as `file.consent.${K}`]?: RouteHandler<IActivityContext<IFileConsentInvokeActivity>, InvokeResponse<'fileConsent/invoke'> | InvokeResponse<'fileConsent/invoke'>['body']>;
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb25zZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRlcy9pbnZva2UvZmlsZS1jb25zZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,39 @@
1
+ import { InvokeActivity, InvokeResponse } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../../types';
3
+ import { IActivityContext } from '../../contexts';
4
+ import { FileConsentActivityRoutes } from './file-consent';
5
+ import { MessageExtensionSubmitActivityRoutes } from './message-extension-submit';
6
+ import { MessageSubmitActivityRoutes } from './message-submit';
7
+ export type InvokeActivityRoutes = {
8
+ [K in InvokeActivity['name'] as InvokeAliases[K]]?: RouteHandler<IActivityContext<Extract<InvokeActivity, {
9
+ name: K;
10
+ }>>, InvokeResponse<K> | InvokeResponse<K>['body']>;
11
+ } & FileConsentActivityRoutes & MessageExtensionSubmitActivityRoutes & MessageSubmitActivityRoutes;
12
+ type InvokeAliases = {
13
+ 'config/fetch': 'config.open';
14
+ 'config/submit': 'config.submit';
15
+ 'fileConsent/invoke': 'file.consent';
16
+ 'actionableMessage/executeAction': 'message.execute';
17
+ 'composeExtension/queryLink': 'message.ext.query-link';
18
+ 'composeExtension/anonymousQueryLink': 'message.ext.anon-query-link';
19
+ 'composeExtension/query': 'message.ext.query';
20
+ 'composeExtension/selectItem': 'message.ext.select-item';
21
+ 'composeExtension/submitAction': 'message.ext.submit';
22
+ 'composeExtension/fetchTask': 'message.ext.open';
23
+ 'composeExtension/querySettingUrl': 'message.ext.query-settings-url';
24
+ 'composeExtension/setting': 'message.ext.setting';
25
+ 'composeExtension/onCardButtonClicked': 'message.ext.card-button-clicked';
26
+ 'task/fetch': 'dialog.open';
27
+ 'task/submit': 'dialog.submit';
28
+ 'tab/fetch': 'tab.open';
29
+ 'tab/submit': 'tab.submit';
30
+ 'message/submitAction': 'message.submit';
31
+ 'handoff/action': 'handoff.action';
32
+ 'signin/tokenExchange': 'signin.token-exchange';
33
+ 'signin/verifyState': 'signin.verify-state';
34
+ 'adaptiveCard/action': 'card.action';
35
+ };
36
+ export declare const INVOKE_ALIASES: InvokeAliases;
37
+ export * from './file-consent';
38
+ export * from './message-extension-submit';
39
+ export * from './message-submit';
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.INVOKE_ALIASES = void 0;
18
+ exports.INVOKE_ALIASES = {
19
+ 'config/fetch': 'config.open',
20
+ 'config/submit': 'config.submit',
21
+ 'fileConsent/invoke': 'file.consent',
22
+ 'actionableMessage/executeAction': 'message.execute',
23
+ 'composeExtension/queryLink': 'message.ext.query-link',
24
+ 'composeExtension/anonymousQueryLink': 'message.ext.anon-query-link',
25
+ 'composeExtension/query': 'message.ext.query',
26
+ 'composeExtension/selectItem': 'message.ext.select-item',
27
+ 'composeExtension/submitAction': 'message.ext.submit',
28
+ 'composeExtension/fetchTask': 'message.ext.open',
29
+ 'composeExtension/querySettingUrl': 'message.ext.query-settings-url',
30
+ 'composeExtension/setting': 'message.ext.setting',
31
+ 'composeExtension/onCardButtonClicked': 'message.ext.card-button-clicked',
32
+ 'task/fetch': 'dialog.open',
33
+ 'task/submit': 'dialog.submit',
34
+ 'tab/fetch': 'tab.open',
35
+ 'tab/submit': 'tab.submit',
36
+ 'message/submitAction': 'message.submit',
37
+ 'handoff/action': 'handoff.action',
38
+ 'signin/tokenExchange': 'signin.token-exchange',
39
+ 'signin/verifyState': 'signin.verify-state',
40
+ 'adaptiveCard/action': 'card.action',
41
+ };
42
+ __exportStar(require("./file-consent"), exports);
43
+ __exportStar(require("./message-extension-submit"), exports);
44
+ __exportStar(require("./message-submit"), exports);
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVzL2ludm9rZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQTJDYSxRQUFBLGNBQWMsR0FBa0I7SUFDM0MsY0FBYyxFQUFFLGFBQWE7SUFDN0IsZUFBZSxFQUFFLGVBQWU7SUFDaEMsb0JBQW9CLEVBQUUsY0FBYztJQUNwQyxpQ0FBaUMsRUFBRSxpQkFBaUI7SUFDcEQsNEJBQTRCLEVBQUUsd0JBQXdCO0lBQ3RELHFDQUFxQyxFQUFFLDZCQUE2QjtJQUNwRSx3QkFBd0IsRUFBRSxtQkFBbUI7SUFDN0MsNkJBQTZCLEVBQUUseUJBQXlCO0lBQ3hELCtCQUErQixFQUFFLG9CQUFvQjtJQUNyRCw0QkFBNEIsRUFBRSxrQkFBa0I7SUFDaEQsa0NBQWtDLEVBQUUsZ0NBQWdDO0lBQ3BFLDBCQUEwQixFQUFFLHFCQUFxQjtJQUNqRCxzQ0FBc0MsRUFBRSxpQ0FBaUM7SUFDekUsWUFBWSxFQUFFLGFBQWE7SUFDM0IsYUFBYSxFQUFFLGVBQWU7SUFDOUIsV0FBVyxFQUFFLFVBQVU7SUFDdkIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsc0JBQXNCLEVBQUUsZ0JBQWdCO0lBQ3hDLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxzQkFBc0IsRUFBRSx1QkFBdUI7SUFDL0Msb0JBQW9CLEVBQUUscUJBQXFCO0lBQzNDLHFCQUFxQixFQUFFLGFBQWE7Q0FDckMsQ0FBQztBQUVGLGlEQUErQjtBQUMvQiw2REFBMkM7QUFDM0MsbURBQWlDIn0=
@@ -0,0 +1,6 @@
1
+ import { IMessageExtensionSubmitActionInvokeActivity, InvokeResponse } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../../types';
3
+ import { IActivityContext } from '../../contexts';
4
+ export type MessageExtensionSubmitActivityRoutes = {
5
+ [K in IMessageExtensionSubmitActionInvokeActivity['value']['botMessagePreviewAction'] as `message.ext.${K}`]?: RouteHandler<IActivityContext<IMessageExtensionSubmitActionInvokeActivity>, InvokeResponse<'composeExtension/submitAction'> | InvokeResponse<'composeExtension/submitAction'>['body']>;
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1leHRlbnNpb24tc3VibWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRlcy9pbnZva2UvbWVzc2FnZS1leHRlbnNpb24tc3VibWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,10 @@
1
+ import { IMessageSubmitActionInvokeActivity, InvokeResponse } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../../types';
3
+ import { IActivityContext } from '../../contexts';
4
+ export type MessageSubmitActivityRoutes = {
5
+ [K in IMessageSubmitActionInvokeActivity['value']['actionName'] as `message.submit.${K}`]?: RouteHandler<IActivityContext<Extract<IMessageSubmitActionInvokeActivity, {
6
+ value: {
7
+ actionName: K;
8
+ };
9
+ }>>, InvokeResponse<'message/submitAction'> | InvokeResponse<'message/submitAction'>['body']>;
10
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zdWJtaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVzL2ludm9rZS9tZXNzYWdlLXN1Ym1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,6 @@
1
+ import { IMessageDeleteActivity } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../types';
3
+ import { IActivityContext } from '../contexts';
4
+ export type MessageDeleteActivityRoutes = {
5
+ [K in IMessageDeleteActivity['channelData']['eventType'] as K]?: RouteHandler<IActivityContext<IMessageDeleteActivity>, void>;
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1kZWxldGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL21lc3NhZ2UtZGVsZXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,6 @@
1
+ import { IMessageUpdateActivity } from '@microsoft/teams.api';
2
+ import { RouteHandler } from '../types';
3
+ import { IActivityContext } from '../contexts';
4
+ export type MessageUpdateActivityRoutes = {
5
+ [K in IMessageUpdateActivity['channelData']['eventType'] as K]?: RouteHandler<IActivityContext<IMessageUpdateActivity>, void>;
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS11cGRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL21lc3NhZ2UtdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,7 @@
1
+ /**
2
+ * any type that has a
3
+ * constructor()
4
+ */
5
+ export type Constructor<T> = {
6
+ new (...args: any[]): T;
7
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvY29uc3RydWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1 @@
1
+ export type EventHandler<In, Out = void> = (value: In) => Out | Promise<Out>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9ldmVudC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,11 @@
1
+ import { IPlugin } from './plugin';
2
+ /**
3
+ * some event emitted from
4
+ * either the App or a Plugin
5
+ */
6
+ export interface IEvent {
7
+ /**
8
+ * the sender of the event
9
+ */
10
+ sender?: IPlugin;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,7 @@
1
+ export * from './plugin';
2
+ export * from './streamer';
3
+ export * from './event-handler';
4
+ export * from './event';
5
+ export * from './route-handler';
6
+ export * from './prefixed';
7
+ export * from './suffixed';