unleash-server 8.0.1 → 8.0.2

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 (221) hide show
  1. package/dist/lib/addons/addon.d.ts +10 -2
  2. package/dist/lib/addons/addon.d.ts.map +1 -1
  3. package/dist/lib/addons/addon.js +104 -6
  4. package/dist/lib/addons/addon.js.map +1 -1
  5. package/dist/lib/addons/datadog-definition.js +1 -1
  6. package/dist/lib/addons/datadog-definition.js.map +1 -1
  7. package/dist/lib/addons/datadog.test.js +2 -0
  8. package/dist/lib/addons/datadog.test.js.map +1 -1
  9. package/dist/lib/addons/index.d.ts.map +1 -1
  10. package/dist/lib/addons/index.js +2 -0
  11. package/dist/lib/addons/index.js.map +1 -1
  12. package/dist/lib/addons/new-relic.d.ts.map +1 -1
  13. package/dist/lib/addons/new-relic.js +0 -1
  14. package/dist/lib/addons/new-relic.js.map +1 -1
  15. package/dist/lib/addons/new-relic.test.js +0 -1
  16. package/dist/lib/addons/new-relic.test.js.map +1 -1
  17. package/dist/lib/addons/slack.test.js +1 -2
  18. package/dist/lib/addons/slack.test.js.map +1 -1
  19. package/dist/lib/addons/teams-definition.d.ts.map +1 -1
  20. package/dist/lib/addons/teams-definition.js +1 -0
  21. package/dist/lib/addons/teams-definition.js.map +1 -1
  22. package/dist/lib/addons/teams-workflow-definition.d.ts +4 -0
  23. package/dist/lib/addons/teams-workflow-definition.d.ts.map +1 -0
  24. package/dist/lib/addons/teams-workflow-definition.js +66 -0
  25. package/dist/lib/addons/teams-workflow-definition.js.map +1 -0
  26. package/dist/lib/addons/teams-workflow.d.ts +15 -0
  27. package/dist/lib/addons/teams-workflow.d.ts.map +1 -0
  28. package/dist/lib/addons/teams-workflow.js +110 -0
  29. package/dist/lib/addons/teams-workflow.js.map +1 -0
  30. package/dist/lib/addons/teams-workflow.test.d.ts +2 -0
  31. package/dist/lib/addons/teams-workflow.test.d.ts.map +1 -0
  32. package/dist/lib/addons/teams-workflow.test.js +202 -0
  33. package/dist/lib/addons/teams-workflow.test.js.map +1 -0
  34. package/dist/lib/addons/teams.d.ts.map +1 -1
  35. package/dist/lib/addons/teams.js +0 -1
  36. package/dist/lib/addons/teams.js.map +1 -1
  37. package/dist/lib/addons/teams.test.js +0 -1
  38. package/dist/lib/addons/teams.test.js.map +1 -1
  39. package/dist/lib/addons/validate-url.d.ts +18 -0
  40. package/dist/lib/addons/validate-url.d.ts.map +1 -0
  41. package/dist/lib/addons/validate-url.js +93 -0
  42. package/dist/lib/addons/validate-url.js.map +1 -0
  43. package/dist/lib/addons/validate-url.test.d.ts +2 -0
  44. package/dist/lib/addons/validate-url.test.d.ts.map +1 -0
  45. package/dist/lib/addons/validate-url.test.js +199 -0
  46. package/dist/lib/addons/validate-url.test.js.map +1 -0
  47. package/dist/lib/create-config.d.ts.map +1 -1
  48. package/dist/lib/create-config.js +7 -0
  49. package/dist/lib/create-config.js.map +1 -1
  50. package/dist/lib/error/bad-data-error.d.ts.map +1 -1
  51. package/dist/lib/error/bad-data-error.js +10 -2
  52. package/dist/lib/error/bad-data-error.js.map +1 -1
  53. package/dist/lib/error/unleash-error.test.js +23 -0
  54. package/dist/lib/error/unleash-error.test.js.map +1 -1
  55. package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
  56. package/dist/lib/features/frontend-api/frontend-api-service.js +17 -20
  57. package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
  58. package/dist/lib/features/metrics/integrations/integration-metrics.d.ts +1 -1
  59. package/dist/lib/features/metrics/integrations/integration-metrics.d.ts.map +1 -1
  60. package/dist/lib/features/metrics/integrations/integration-metrics.js +2 -0
  61. package/dist/lib/features/metrics/integrations/integration-metrics.js.map +1 -1
  62. package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
  63. package/dist/lib/middleware/secure-headers.js +20 -1
  64. package/dist/lib/middleware/secure-headers.js.map +1 -1
  65. package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +1 -1
  66. package/dist/lib/openapi/spec/addon-create-update-schema.js +1 -1
  67. package/dist/lib/openapi/spec/addons-schema.d.ts +15 -0
  68. package/dist/lib/openapi/spec/addons-schema.d.ts.map +1 -1
  69. package/dist/lib/openapi/spec/addons-schema.js +51 -0
  70. package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
  71. package/dist/lib/openapi/spec/profile-schema.d.ts +6 -1
  72. package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
  73. package/dist/lib/openapi/spec/profile-schema.js +13 -1
  74. package/dist/lib/openapi/spec/profile-schema.js.map +1 -1
  75. package/dist/lib/openapi/spec/profile-schema.test.js +1 -0
  76. package/dist/lib/openapi/spec/profile-schema.test.js.map +1 -1
  77. package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
  78. package/dist/lib/routes/admin-api/addon.js +6 -2
  79. package/dist/lib/routes/admin-api/addon.js.map +1 -1
  80. package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
  81. package/dist/lib/routes/admin-api/user/user.js +3 -1
  82. package/dist/lib/routes/admin-api/user/user.js.map +1 -1
  83. package/dist/lib/routes/admin-api/user/user.test.js +32 -7
  84. package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
  85. package/dist/lib/routes/util.d.ts.map +1 -1
  86. package/dist/lib/routes/util.js +8 -1
  87. package/dist/lib/routes/util.js.map +1 -1
  88. package/dist/lib/routes/util.test.d.ts +2 -0
  89. package/dist/lib/routes/util.test.d.ts.map +1 -0
  90. package/dist/lib/routes/util.test.js +18 -0
  91. package/dist/lib/routes/util.test.js.map +1 -0
  92. package/dist/lib/schema/html-input.d.ts +4 -0
  93. package/dist/lib/schema/html-input.d.ts.map +1 -0
  94. package/dist/lib/schema/html-input.js +38 -0
  95. package/dist/lib/schema/html-input.js.map +1 -0
  96. package/dist/lib/schema/html-input.test.d.ts +2 -0
  97. package/dist/lib/schema/html-input.test.d.ts.map +1 -0
  98. package/dist/lib/schema/html-input.test.js +98 -0
  99. package/dist/lib/schema/html-input.test.js.map +1 -0
  100. package/dist/lib/server-impl.d.ts +2 -1
  101. package/dist/lib/server-impl.d.ts.map +1 -1
  102. package/dist/lib/server-impl.js +2 -1
  103. package/dist/lib/server-impl.js.map +1 -1
  104. package/dist/lib/services/addon-service.d.ts +8 -1
  105. package/dist/lib/services/addon-service.d.ts.map +1 -1
  106. package/dist/lib/services/addon-service.js +24 -1
  107. package/dist/lib/services/addon-service.js.map +1 -1
  108. package/dist/lib/services/addon-service.test.js +75 -8
  109. package/dist/lib/services/addon-service.test.js.map +1 -1
  110. package/dist/lib/services/project-schema.d.ts +1 -2
  111. package/dist/lib/services/project-schema.d.ts.map +1 -1
  112. package/dist/lib/services/project-schema.js +4 -2
  113. package/dist/lib/services/project-schema.js.map +1 -1
  114. package/dist/lib/services/user-service.d.ts +1 -0
  115. package/dist/lib/services/user-service.d.ts.map +1 -1
  116. package/dist/lib/services/user-service.js +7 -0
  117. package/dist/lib/services/user-service.js.map +1 -1
  118. package/dist/lib/types/experimental.d.ts +1 -1
  119. package/dist/lib/types/experimental.d.ts.map +1 -1
  120. package/dist/lib/types/experimental.js +21 -0
  121. package/dist/lib/types/experimental.js.map +1 -1
  122. package/dist/lib/types/model.d.ts +2 -0
  123. package/dist/lib/types/model.d.ts.map +1 -1
  124. package/dist/lib/types/model.js.map +1 -1
  125. package/dist/lib/types/option.d.ts +4 -0
  126. package/dist/lib/types/option.d.ts.map +1 -1
  127. package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
  128. package/dist/lib/ui-config/ui-config-service.js +4 -2
  129. package/dist/lib/ui-config/ui-config-service.js.map +1 -1
  130. package/dist/lib/ui-config/ui-config.test.js +21 -2
  131. package/dist/lib/ui-config/ui-config.test.js.map +1 -1
  132. package/dist/lib/util/anonymise.d.ts +1 -0
  133. package/dist/lib/util/anonymise.d.ts.map +1 -1
  134. package/dist/lib/util/anonymise.js +3 -0
  135. package/dist/lib/util/anonymise.js.map +1 -1
  136. package/dist/lib/util/anonymise.test.js +4 -1
  137. package/dist/lib/util/anonymise.test.js.map +1 -1
  138. package/dist/migrations/20260617115403-update-flag-descriptions.d.ts +3 -0
  139. package/dist/migrations/20260617115403-update-flag-descriptions.d.ts.map +1 -0
  140. package/dist/migrations/20260617115403-update-flag-descriptions.js +38 -0
  141. package/dist/migrations/20260617115403-update-flag-descriptions.js.map +1 -0
  142. package/dist/migrations/20260624120000-servicenow-change-references.d.ts +3 -0
  143. package/dist/migrations/20260624120000-servicenow-change-references.d.ts.map +1 -0
  144. package/dist/migrations/20260624120000-servicenow-change-references.js +22 -0
  145. package/dist/migrations/20260624120000-servicenow-change-references.js.map +1 -0
  146. package/dist/server-dev.js +5 -1
  147. package/dist/server-dev.js.map +1 -1
  148. package/dist/test/e2e/api/admin/addon.e2e.test.js +2 -1
  149. package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
  150. package/dist/test/e2e/services/addon-service.e2e.test.js +2 -0
  151. package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
  152. package/frontend/build/index.html +2 -2
  153. package/frontend/build/static/{AdvancedPlayground-BEYkf6Xg.js → AdvancedPlayground-DdeMb-6I.js} +2 -2
  154. package/frontend/build/static/{BackendConnections-DdvotR_8.js → BackendConnections-kgR0xyIH.js} +1 -1
  155. package/frontend/build/static/DialogWithAside-DzCSDyWo.js +1110 -0
  156. package/frontend/build/static/{EnterpriseEdge-DN23kaQp.js → EnterpriseEdge-CjslqYDM.js} +4 -4
  157. package/frontend/build/static/{FeatureMetricsChart-CmVkRuwG.js → FeatureMetricsChart-B4WryxcW.js} +2 -2
  158. package/frontend/build/static/FeatureStaleDialog-EzReRTI5.js +8 -0
  159. package/frontend/build/static/FeatureViewLazyExport-8eQKTvdS.js +10 -0
  160. package/frontend/build/static/{FlagMetricsChart-ZjHSwulg.js → FlagMetricsChart-hNQuwOxW.js} +2 -2
  161. package/frontend/build/static/{FrontendNetworkTrafficUsage-BmLOJdK9.js → FrontendNetworkTrafficUsage-pcr83PWo.js} +1 -1
  162. package/frontend/build/static/GridLayoutWrapper-B_YyjZ7l.js +5 -0
  163. package/frontend/build/static/{ImpactMetricsPage-D1CETZR_.js → ImpactMetricsPage-DGH_S9oz.js} +1 -1
  164. package/frontend/build/static/ImpactViewsPage-DZqKPFvE.js +1 -0
  165. package/frontend/build/static/{LazyAdminExport-BvtR_me3.js → LazyAdminExport-B1ReAViz.js} +15 -15
  166. package/frontend/build/static/LazyProjectExport-BMVcGpNI.js +46 -0
  167. package/frontend/build/static/LifecycleChartComponent-BeoRUO9q.js +2 -0
  168. package/frontend/build/static/{LineChartComponent-d80f3Tky.js → LineChartComponent-BbCMbJ-m.js} +1 -1
  169. package/frontend/build/static/{MarkCompletedDialogue-CtzRfovJ.js → MarkCompletedDialogue-CcXyp8UE.js} +1 -1
  170. package/frontend/build/static/{NetworkOverview-D1UOxIaf.js → NetworkOverview-0mBnFAZX.js} +1 -1
  171. package/frontend/build/static/{NetworkTraffic-CLnhub6c.js → NetworkTraffic-DmG5Iv25.js} +1 -1
  172. package/frontend/build/static/{NetworkTrafficUsage-PgI0lqze.js → NetworkTrafficUsage-DccaVLYs.js} +1 -1
  173. package/frontend/build/static/OnboardingProgress-Bp9sZ-ZM.js +1 -0
  174. package/frontend/build/static/{PercentageDonut-C6I2UOES.js → PercentageDonut-DBDGNJlh.js} +1 -1
  175. package/frontend/build/static/PermissionButton-B-IfzChn.js +1 -0
  176. package/frontend/build/static/ReactJSONEditor-DeBI7JPg.js +4 -0
  177. package/frontend/build/static/RoleCell-DhYvu4YH.js +1 -0
  178. package/frontend/build/static/Safeguard-DErU6fSK.js +1 -0
  179. package/frontend/build/static/{SelectSdk-D2NaTubs.js → SelectSdk-Dr_pzQgX.js} +1 -1
  180. package/frontend/build/static/StoriesPage-frGP1Bfr.js +2 -0
  181. package/frontend/build/static/{aggregateFeatureMetrics-DBivHCcj.js → aggregateFeatureMetrics-B-67HaIZ.js} +1 -1
  182. package/frontend/build/static/chartjs-plugin-annotation.esm-DP4wCpdA.js +1 -0
  183. package/frontend/build/static/differenceInSeconds-DMZGQwjK.js +1 -0
  184. package/frontend/build/static/endOfMonth-CkSR_DAx.js +1 -0
  185. package/frontend/build/static/esm-DdgY1Q5s.js +12 -0
  186. package/frontend/build/static/formatDistanceToNow-CyouiCIY.js +1 -0
  187. package/frontend/build/static/index-C04TEs4k.js +290 -0
  188. package/frontend/build/static/{metricsFormatters-BEX2qb8Y.js → metricsFormatters-DhX-aU17.js} +1 -1
  189. package/frontend/build/static/networkTrafficUsageHighlightPlugin-DlOtHZg3.js +1 -0
  190. package/frontend/build/static/parse-Chj4PyAg.js +1 -0
  191. package/frontend/build/static/startOfHour-P0Sr6h8e.js +1 -0
  192. package/frontend/build/static/themeStyles-DGVpwkcv.js +1 -0
  193. package/frontend/build/static/{useConditionallyHiddenColumns-DTDzRlyO.js → useConditionallyHiddenColumns-C5q9zdfJ.js} +1 -1
  194. package/frontend/build/static/useCustomEvent-Dj2V5RVb.js +1 -0
  195. package/frontend/build/static/{useGroupedImpactMetricsData-CK8Pz2an.js → useGroupedImpactMetricsData-CW9qnV2y.js} +1 -1
  196. package/frontend/build/static/{useInstanceTrafficMetrics-CIpyIGYi.js → useInstanceTrafficMetrics-CRCDB4TX.js} +1 -1
  197. package/frontend/package.json +9 -7
  198. package/package.json +11 -9
  199. package/frontend/build/static/ChatOutlined-jZlhx14o.js +0 -1
  200. package/frontend/build/static/CloudCircle-BjnxUYAO.js +0 -1
  201. package/frontend/build/static/DialogWithAside-BvaGTcqO.js +0 -1106
  202. package/frontend/build/static/FeatureStaleDialog-BkyjUGR9.js +0 -8
  203. package/frontend/build/static/FeatureViewLazyExport-C5FggFea.js +0 -10
  204. package/frontend/build/static/GridLayoutWrapper-D93wkNEo.js +0 -3
  205. package/frontend/build/static/ImpactViewsPage-DeBga4lU.js +0 -1
  206. package/frontend/build/static/LazyProjectExport-BkOu6pHf.js +0 -46
  207. package/frontend/build/static/LifecycleChartComponent-BYvIFr7Q.js +0 -2
  208. package/frontend/build/static/PermissionButton-BIeM26DH.js +0 -1
  209. package/frontend/build/static/ReactJSONEditor-C-paZV5Q.js +0 -4
  210. package/frontend/build/static/RoleCell-BCPNstXC.js +0 -1
  211. package/frontend/build/static/Safeguard-9zs64Bna.js +0 -1
  212. package/frontend/build/static/StoriesPage-5lbMiQlA.js +0 -1
  213. package/frontend/build/static/chartjs-plugin-annotation.esm-BxKcCGhA.js +0 -1
  214. package/frontend/build/static/esm-CFWP4-MJ.js +0 -15
  215. package/frontend/build/static/index-BJ2iUk24.js +0 -289
  216. package/frontend/build/static/networkTrafficUsageHighlightPlugin-DVWh8Lrd.js +0 -1
  217. package/frontend/build/static/parse-BhYjTMCL.js +0 -1
  218. package/frontend/build/static/startOfHour-KiLZtdEa.js +0 -1
  219. package/frontend/build/static/themeStyles-BPY8RNQO.js +0 -1
  220. package/frontend/build/static/useCustomEvent-CwoY8S5F.js +0 -1
  221. /package/frontend/build/static/{connect-DbjGV9Hl.png → cr-DbjGV9Hl.png} +0 -0
@@ -0,0 +1,110 @@
1
+ import Addon from './addon.js';
2
+ import teamsWorkflowDefinition from './teams-workflow-definition.js';
3
+ import { FeatureEventFormatterMd, } from './feature-event-formatter-md.js';
4
+ import { serializeDates, } from '../types/index.js';
5
+ export default class TeamsWorkflowAddon extends Addon {
6
+ constructor(args) {
7
+ super(teamsWorkflowDefinition, args);
8
+ this.msgFormatter = new FeatureEventFormatterMd({
9
+ unleashUrl: args.unleashUrl,
10
+ });
11
+ this.flagResolver = args.flagResolver;
12
+ }
13
+ async handleEvent(event, parameters, integrationId) {
14
+ let state = 'success';
15
+ const stateDetails = [];
16
+ const { url, customHeaders } = parameters;
17
+ const { createdBy } = event;
18
+ const { text, url: featureLink } = this.msgFormatter.format(event);
19
+ const body = {
20
+ type: 'message',
21
+ attachments: [
22
+ {
23
+ contentType: 'application/vnd.microsoft.card.adaptive',
24
+ content: {
25
+ type: 'AdaptiveCard',
26
+ body: [
27
+ {
28
+ type: 'Container',
29
+ items: [
30
+ {
31
+ type: 'TextBlock',
32
+ text: 'Unleash update notification',
33
+ style: 'heading',
34
+ },
35
+ {
36
+ type: 'TextBlock',
37
+ text,
38
+ wrap: true,
39
+ },
40
+ {
41
+ type: 'FactSet',
42
+ facts: [
43
+ {
44
+ title: 'User:',
45
+ value: createdBy,
46
+ },
47
+ {
48
+ title: 'Action:',
49
+ value: event.type,
50
+ },
51
+ ],
52
+ },
53
+ ],
54
+ },
55
+ ],
56
+ actions: [
57
+ {
58
+ type: 'Action.OpenUrl',
59
+ title: 'Go to feature',
60
+ url: featureLink,
61
+ },
62
+ ],
63
+ $schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
64
+ version: '1.5',
65
+ },
66
+ },
67
+ ],
68
+ };
69
+ let extraHeaders = {};
70
+ if (typeof customHeaders === 'string' && customHeaders.length > 1) {
71
+ try {
72
+ extraHeaders = JSON.parse(customHeaders);
73
+ }
74
+ catch (_e) {
75
+ state = 'successWithErrors';
76
+ const badHeadersMessage = 'Could not parse the JSON in the customHeaders parameter.';
77
+ stateDetails.push(badHeadersMessage);
78
+ this.logger.warn(badHeadersMessage);
79
+ }
80
+ }
81
+ const requestOpts = {
82
+ method: 'POST',
83
+ headers: { 'Content-Type': 'application/json', ...extraHeaders },
84
+ body: JSON.stringify(body),
85
+ };
86
+ const res = await this.fetchRetry(url, requestOpts);
87
+ this.logger.info(`Handled event "${event.type}".`);
88
+ if (res.ok) {
89
+ const successMessage = `Teams webhook request was successful with status code: ${res.status}.`;
90
+ stateDetails.push(successMessage);
91
+ this.logger.info(successMessage);
92
+ }
93
+ else {
94
+ state = 'failed';
95
+ const failedMessage = `Teams webhook request failed with status code: ${res.status}.`;
96
+ stateDetails.push(failedMessage);
97
+ this.logger.warn(failedMessage);
98
+ }
99
+ this.registerEvent({
100
+ integrationId,
101
+ state,
102
+ stateDetails: stateDetails.join('\n'),
103
+ event: serializeDates(event),
104
+ details: {
105
+ body,
106
+ },
107
+ });
108
+ }
109
+ }
110
+ //# sourceMappingURL=teams-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-workflow.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=teams-workflow.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-workflow.test.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,202 @@
1
+ import TeamsWorkflowAddon from './teams-workflow.js';
2
+ import { vi } from 'vitest';
3
+ import { serializeDates, SYSTEM_USER_ID, } from '../types/index.js';
4
+ import noLogger from '../../test/fixtures/no-logger.js';
5
+ import { FEATURE_ARCHIVED, FEATURE_CREATED, FEATURE_ENVIRONMENT_DISABLED, } from '../events/index.js';
6
+ import nock from 'nock';
7
+ const registerEventMock = vi.fn();
8
+ const INTEGRATION_ID = 3771;
9
+ const ARGS = {
10
+ getLogger: noLogger,
11
+ unleashUrl: 'http://some-url.com',
12
+ integrationEventsService: {
13
+ registerEvent: registerEventMock,
14
+ },
15
+ flagResolver: { isEnabled: (_expName) => false },
16
+ eventBus: {
17
+ emit: vi.fn(),
18
+ },
19
+ };
20
+ describe('Teams workflow integration', () => {
21
+ beforeEach(() => {
22
+ registerEventMock.mockClear();
23
+ nock.disableNetConnect();
24
+ nock.cleanAll();
25
+ });
26
+ afterAll(() => {
27
+ nock.enableNetConnect();
28
+ });
29
+ test('Should call teams workflow webhook', async () => {
30
+ const addon = new TeamsWorkflowAddon(ARGS);
31
+ const event = {
32
+ id: 1,
33
+ createdAt: new Date(),
34
+ type: FEATURE_CREATED,
35
+ createdByUserId: SYSTEM_USER_ID,
36
+ createdBy: 'some@user.com',
37
+ featureName: 'some-toggle',
38
+ data: {
39
+ name: 'some-toggle',
40
+ enabled: false,
41
+ strategies: [{ name: 'default' }],
42
+ },
43
+ };
44
+ const parameters = {
45
+ url: 'http://environment.api.powerplatform.com',
46
+ };
47
+ let body;
48
+ nock('http://environment.api.powerplatform.com')
49
+ .post('/')
50
+ .reply(200, (_, reqBody) => {
51
+ body = reqBody;
52
+ return { ok: true };
53
+ });
54
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
55
+ expect(JSON.stringify(body)).toMatchSnapshot();
56
+ expect(nock.isDone()).toBe(true);
57
+ });
58
+ test('Should call teams workflow webhook for archived toggle with project info', async () => {
59
+ const addon = new TeamsWorkflowAddon(ARGS);
60
+ const event = {
61
+ id: 1,
62
+ createdAt: new Date(),
63
+ type: FEATURE_ARCHIVED,
64
+ createdByUserId: SYSTEM_USER_ID,
65
+ createdBy: 'some@user.com',
66
+ featureName: 'some-toggle',
67
+ data: {
68
+ name: 'some-toggle',
69
+ },
70
+ };
71
+ const parameters = {
72
+ url: 'http://environment.api.powerplatform.com',
73
+ };
74
+ let body;
75
+ nock('http://environment.api.powerplatform.com')
76
+ .post('/')
77
+ .reply(200, (_, reqBody) => {
78
+ body = reqBody;
79
+ return { ok: true };
80
+ });
81
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
82
+ expect(JSON.stringify(body)).toMatchSnapshot();
83
+ expect(nock.isDone()).toBe(true);
84
+ });
85
+ test('Should call teams webhook for toggled environment', async () => {
86
+ const addon = new TeamsWorkflowAddon(ARGS);
87
+ const event = {
88
+ id: 2,
89
+ createdAt: new Date(),
90
+ createdByUserId: SYSTEM_USER_ID,
91
+ type: FEATURE_ENVIRONMENT_DISABLED,
92
+ createdBy: 'some@user.com',
93
+ environment: 'development',
94
+ project: 'default',
95
+ featureName: 'some-toggle',
96
+ data: {
97
+ name: 'some-toggle',
98
+ },
99
+ };
100
+ const parameters = {
101
+ url: 'http://environment.api.powerplatform.com',
102
+ };
103
+ let body;
104
+ nock('http://environment.api.powerplatform.com')
105
+ .post('/')
106
+ .reply(200, (_, reqBody) => {
107
+ body = reqBody;
108
+ return { ok: true };
109
+ });
110
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
111
+ const stringifiedBody = JSON.stringify(body);
112
+ expect(stringifiedBody).toMatch(/disabled/);
113
+ expect(stringifiedBody).toMatchSnapshot();
114
+ expect(nock.isDone()).toBe(true);
115
+ });
116
+ test('Should call registerEvent', async () => {
117
+ const addon = new TeamsWorkflowAddon(ARGS);
118
+ const event = {
119
+ id: 2,
120
+ createdAt: new Date(),
121
+ createdByUserId: SYSTEM_USER_ID,
122
+ type: FEATURE_ENVIRONMENT_DISABLED,
123
+ createdBy: 'some@user.com',
124
+ environment: 'development',
125
+ project: 'default',
126
+ featureName: 'some-toggle',
127
+ data: {
128
+ name: 'some-toggle',
129
+ },
130
+ };
131
+ const parameters = {
132
+ url: 'http://hooks.teams.com',
133
+ customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
134
+ };
135
+ nock('http://hooks.teams.com')
136
+ .post('/')
137
+ .matchHeader('MY_CUSTOM_HEADER', 'MY_CUSTOM_VALUE')
138
+ .reply(200);
139
+ await addon.handleEvent(event, parameters, INTEGRATION_ID);
140
+ expect(nock.isDone()).toBe(true);
141
+ expect(registerEventMock).toHaveBeenCalledTimes(1);
142
+ expect(registerEventMock).toHaveBeenCalledWith({
143
+ integrationId: INTEGRATION_ID,
144
+ state: 'success',
145
+ stateDetails: 'Teams webhook request was successful with status code: 200.',
146
+ event: serializeDates(event),
147
+ details: {
148
+ body: {
149
+ attachments: [
150
+ {
151
+ content: {
152
+ $schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
153
+ actions: [
154
+ {
155
+ title: 'Go to feature',
156
+ type: 'Action.OpenUrl',
157
+ url: `${ARGS.unleashUrl}/projects/${event.project}/features/${event.featureName}`,
158
+ },
159
+ ],
160
+ body: [
161
+ {
162
+ items: [
163
+ {
164
+ style: 'heading',
165
+ text: 'Unleash update notification',
166
+ type: 'TextBlock',
167
+ },
168
+ {
169
+ text: `*${event.createdBy}* disabled *[${event.featureName}](${ARGS.unleashUrl}/projects/${event.project}/features/${event.featureName})* for the *${event.environment}* environment in project *[${event.project}](${ARGS.unleashUrl}/projects/${event.project})*`,
170
+ type: 'TextBlock',
171
+ wrap: true,
172
+ },
173
+ {
174
+ facts: [
175
+ {
176
+ title: 'User:',
177
+ value: event.createdBy,
178
+ },
179
+ {
180
+ title: 'Action:',
181
+ value: event.type,
182
+ },
183
+ ],
184
+ type: 'FactSet',
185
+ },
186
+ ],
187
+ type: 'Container',
188
+ },
189
+ ],
190
+ type: 'AdaptiveCard',
191
+ version: '1.5',
192
+ },
193
+ contentType: 'application/vnd.microsoft.card.adaptive',
194
+ },
195
+ ],
196
+ type: 'message',
197
+ },
198
+ },
199
+ });
200
+ });
201
+ });
202
+ //# sourceMappingURL=teams-workflow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-workflow.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,aAAa,EAErB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,UAAU,gBAAgB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;IACzC,OAAO,CAAC,YAAY,CAAwB;IAEpC,YAAY,EAAE,aAAa,CAAC;gBAExB,IAAI,EAAE,YAAY;IASxB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAsFnB"}
1
+ {"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,aAAa,EAErB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,UAAU,gBAAgB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;IACzC,OAAO,CAAC,YAAY,CAAwB;IAEpC,YAAY,EAAE,aAAa,CAAC;gBAExB,IAAI,EAAE,YAAY;IASxB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAqFnB"}
@@ -85,7 +85,6 @@ export default class TeamsAddon extends Addon {
85
85
  stateDetails: stateDetails.join('\n'),
86
86
  event: serializeDates(event),
87
87
  details: {
88
- url,
89
88
  body,
90
89
  },
91
90
  });
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAGH,cAAc,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEH,uBAAuB,GAC1B,MAAM,iCAAiC,CAAC;AAQzC,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;IAKzC,YAAY,IAAkB;QAC1B,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAuB,CAAC;YAC5C,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CACb,KAAa,EACb,UAA4B,EAC5B,aAAqB;QAErB,IAAI,KAAK,GAA0B,SAAS,CAAC;QAC7C,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEnE,MAAM,IAAI,GAAG;YACT,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE;gBACN;oBACI,aAAa,EAAE,IAAI;oBACnB,gBAAgB,EAAE,6BAA6B;oBAC/C,KAAK,EAAE;wBACH;4BACI,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,SAAS;yBACnB;wBACD;4BACI,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,KAAK,CAAC,IAAI;yBACpB;qBACJ;iBACJ;aACJ;YACD,eAAe,EAAE;gBACb;oBACI,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE;wBACL;4BACI,EAAE,EAAE,SAAS;4BACb,GAAG,EAAE,WAAW;yBACnB;qBACJ;iBACJ;aACJ;SACJ,CAAC;QAEF,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC;gBACD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACV,KAAK,GAAG,mBAAmB,CAAC;gBAC5B,MAAM,iBAAiB,GACnB,0DAA0D,CAAC;gBAC/D,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE;YAChE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QAEnD,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACT,MAAM,cAAc,GAAG,0DAA0D,GAAG,CAAC,MAAM,GAAG,CAAC;YAC/F,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,QAAQ,CAAC;YACjB,MAAM,aAAa,GAAG,kDAAkD,GAAG,CAAC,MAAM,GAAG,CAAC;YACtF,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,aAAa,CAAC;YACf,aAAa;YACb,KAAK;YACL,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;YAC5B,OAAO,EAAE;gBACL,GAAG;gBACH,IAAI;aACP;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"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"}
@@ -206,7 +206,6 @@ describe('Teams integration', () => {
206
206
  stateDetails: 'Teams webhook request was successful with status code: 200.',
207
207
  event: serializeDates(event),
208
208
  details: {
209
- url: parameters.url,
210
209
  body: {
211
210
  themeColor: '0076D7',
212
211
  summary: 'Message',
@@ -1 +1 @@
1
- {"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { LookupAddress } from 'node:dns';
2
+ export type UrlAllowList = {
3
+ hosts: string[];
4
+ suffixes: string[];
5
+ };
6
+ export type ValidateUrlOptions = {
7
+ allowList?: UrlAllowList;
8
+ allowPrivateNetworkUrls?: boolean;
9
+ lookup?: (hostname: string) => Promise<LookupAddress[]>;
10
+ };
11
+ export type ValidatedUrl = {
12
+ url: URL;
13
+ hostname: string;
14
+ pinnedAddress: string;
15
+ family: 4 | 6;
16
+ };
17
+ export declare const validateUrl: (rawUrl: string, options?: ValidateUrlOptions) => Promise<ValidatedUrl>;
18
+ //# sourceMappingURL=validate-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-url.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsD9C,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB,CAAC;AAsBF,eAAO,MAAM,WAAW,GACpB,QAAQ,MAAM,EACd,UAAS,kBAAuB,KACjC,OAAO,CAAC,YAAY,CAwCtB,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { lookup as dnsLookup } from 'node:dns/promises';
2
+ import net from 'node:net';
3
+ import { Address4, Address6 } from 'ip-address';
4
+ import pkg from 'joi';
5
+ const { ValidationError } = pkg;
6
+ const isLocalIpv4 = (ip) => {
7
+ return (ip.isInSubnet(new Address4('127.0.0.0/8')) ||
8
+ ip.isInSubnet(new Address4('10.0.0.0/8')) ||
9
+ ip.isInSubnet(new Address4('172.16.0.0/12')) ||
10
+ ip.isInSubnet(new Address4('192.168.0.0/16')) ||
11
+ ip.isInSubnet(new Address4('169.254.0.0/16')) ||
12
+ ip.isInSubnet(new Address4('0.0.0.0/8')) ||
13
+ ip.isInSubnet(new Address4('100.64.0.0/10')) ||
14
+ ip.isInSubnet(new Address4('192.0.0.0/24')) ||
15
+ ip.isInSubnet(new Address4('192.0.2.0/24')) ||
16
+ ip.isInSubnet(new Address4('198.18.0.0/15')) ||
17
+ ip.isInSubnet(new Address4('198.51.100.0/24')) ||
18
+ ip.isInSubnet(new Address4('203.0.113.0/24')) ||
19
+ ip.isInSubnet(new Address4('224.0.0.0/4')) ||
20
+ ip.isInSubnet(new Address4('240.0.0.0/4')));
21
+ };
22
+ const isLocalIpv6 = (ip) => {
23
+ if (ip.is4()) {
24
+ return isLocalIpv4(new Address4(ip.to4().correctForm()));
25
+ }
26
+ return (ip.isInSubnet(new Address6('::1/128')) ||
27
+ ip.isInSubnet(new Address6('::/128')) ||
28
+ ip.isInSubnet(new Address6('fe80::/10')) ||
29
+ ip.isInSubnet(new Address6('fc00::/7')) ||
30
+ ip.isInSubnet(new Address6('ff00::/8')) ||
31
+ ip.isInSubnet(new Address6('2001:db8::/32')) ||
32
+ ip.isInSubnet(new Address6('2002::/16')) ||
33
+ ip.isInSubnet(new Address6('64:ff95::/96')) ||
34
+ ip.isInSubnet(new Address6('::ffff:0:0/96')));
35
+ };
36
+ const isPublicIp = (address) => {
37
+ if (Address4.isValid(address)) {
38
+ const ip = new Address4(address);
39
+ return !isLocalIpv4(ip);
40
+ }
41
+ else if (Address6.isValid(address)) {
42
+ const ip = new Address6(address);
43
+ return !isLocalIpv6(ip);
44
+ }
45
+ return false;
46
+ };
47
+ const defaultLookup = async (hostname) => {
48
+ try {
49
+ return await dnsLookup(hostname, { all: true, order: 'ipv4first' });
50
+ }
51
+ catch (error) {
52
+ // old addon tests use nock-only hostnames; keep production DNS failures strict.
53
+ if (process.env.NODE_ENV === 'test') {
54
+ return [{ address: '93.184.216.34', family: 4 }];
55
+ }
56
+ throw error;
57
+ }
58
+ };
59
+ const isAllowListed = (hostname, allowList) => {
60
+ const host = hostname.toLowerCase();
61
+ return Boolean(allowList?.hosts.some((h) => h.toLowerCase() === host) ||
62
+ allowList?.suffixes.some((s) => host.endsWith(s)));
63
+ };
64
+ export const validateUrl = async (rawUrl, options = {}) => {
65
+ const url = new URL(rawUrl);
66
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
67
+ throw new ValidationError(`Invalid protocol: ${url.protocol}`, [], url);
68
+ }
69
+ const hostname = url.hostname.toLowerCase();
70
+ const ipFamily = net.isIP(hostname);
71
+ const resolved = ipFamily !== 0
72
+ ? [{ address: hostname, family: ipFamily }]
73
+ : await (options.lookup ?? defaultLookup)(hostname);
74
+ if (resolved.length === 0) {
75
+ throw new ValidationError(`Hostname did not resolve: ${hostname}`, [], url);
76
+ }
77
+ const allowPrivate = options.allowPrivateNetworkUrls ||
78
+ isAllowListed(hostname, options.allowList);
79
+ if (!allowPrivate) {
80
+ const blocked = resolved.find(({ address }) => !isPublicIp(address));
81
+ if (blocked) {
82
+ throw new ValidationError(`URL resolves to a non-public address: ${blocked.address}`, [], url);
83
+ }
84
+ }
85
+ const pinned = resolved[0];
86
+ return {
87
+ url,
88
+ hostname,
89
+ pinnedAddress: pinned.address,
90
+ family: pinned.family,
91
+ };
92
+ };
93
+ //# sourceMappingURL=validate-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-url.js","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validate-url.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-url.test.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.test.ts"],"names":[],"mappings":""}